linux 安全审计audit 系统审计 记录root操作

安装审计包

yum install auditd  #centos 
sudo apt-get install auditd #Ubuntu

配置审计服务

审计守护进程可以在/etc/audit/auditd.conf

配置文件中进行配置。此文件包含修改审核守护进程行为的配置参数。任何空行或#后面的文本都将被忽略

配置auditd capp 环境

默认auditd配置应该适用于多数环境。但是,如果您的环境必须满足受控访问保护配置文件(CAPP)设置的标准

  • 保存审核日志文件的目录(通常为/var/log/audit)驻留在单独的分区上。这可以防止其他进程占用此目录中的空间,并为审计守护进程提供对剩余空间的准确检测
  • 该*max_log_file*参数指定单个审计日志文件的最大大小,必须设置为充分利用保存审计日志文件的分区上的的可用空间
  • 该*max_log_file_action*参数一旦max_log_file达到设置时采取的操作,应设置keep_logs为防止审计日志文件被覆盖

定义审计规则

审计系统根据一组审计规则运行,这些规则定义了日志文件中捕获的内容,可以指定三种类型的审计规则

  1. 控制规则--允许修改审计系统的行为以及某些配置
  2. 文件系统规则-也称为文件监视,允许审计对特定文件或目录的访问
  3. 系统调用规则--允许记录任何指定程序进行的系统调用

可以使用auditctl程序在命令行指定审计规则(请注意,这些规则在重新启动后不会持久),或写入/etc/audit/audit.rules文件

使用auditctl应用程序定义审计规则

与审计服务和审计日志文件交互的所有命令都需要root权限。确保以root用户执行这些命令

auditctl命令允许您控制审计系统的基本功能并决定记录哪些事件的规则

定义控制规则

以下是一些允许您修改审计系统行为的控制规则

  • -b 设置内核中现有审计缓存区的最大数值
  • auditctl -b 8192
  • -f  该选项允许确定希望内核如何处理关键错误,有0,1,2三个值,0是不输出日志,1位输出printk日志,2会大量输出日志信息。默认值位1
  • auditctl -f 2
  • -e 设置启用标志,有0,1,2三个值。当设置为0时,可以用来临时禁用审计;设置为1时,将启用审计。设置为2时,锁定审计,使其不能被更改
    auditctl -e 2
  •  -r 设置每秒生成消息的速率,设置为0时,表示没有设置限速
  • auditctl -r 0
  •  -s 报告审计系统的状态
  • -l 列出所有加载的审计规则
  • -D 删除所有当前加载的审计规则

定义文件系统规则


语法:

auditctl -w path_to_file -p permission -k key_name

解释:

  • path_to_file:被审计的文件或目录
  • 权限   

         • r 对文件或目录的读取权限

         •w 对文件或目录的写访问权限

         • x 执行对文件或目录的访问

        •a 更改文件或目录的属性

  • key_name:是一个可选字符串

例如:

  • 要记录对/etc/passwd 文件的所有写访问和每个写属性更改的规则,命令如下
  • auditctl -w /etc/passwd -p wa -k passwd_change

定义系统调用规则

语法:

auditctl -a action,filter -F filed=value -S system_call -k key_name

解释

  • action和fileter 指定如何记录某个事件。action 可以是never和always.而filter指定将哪个内核规则匹配过滤与此事件。规则的匹配过滤可以使以下找中的任意一个

             • task 添加规则到每个任务列表。只有在创建时就已知的字段(比如uuid,gid)才可以用这个                   列表

             • exclude 添加规则到事件排除过滤列表。使用此表来过滤不希望看到是事情

            • exit 添加规则到系统调用列表。退出系统时调用此列表用于确定是否建立审计事件

           • user 添加规则到用户消息过滤列表

  • system_call通名称指定系统调用。可以在/usr/include/asm/unistd_64.h文件中找到所有系统调用列表
  • filed=value 指定其他选项,这些选项进一步修改规则以个根据指定的体系架构、组ID、进程id等匹配事件

        filed 字段如下   

字段名描述
pid进程id
ppid父进程的进程id
uid用户id
euid有效用户id
suid保护的用户id
fsuid文件系统id
gid组群id
egid有效组群id
sgid保护的组群id
fgid文件系统组id
msgtype用来匹配事件的记录类型
pers操作系统个性编码
path查看文件的完整路径
arch系统调用的cpu架构
auid审计id,用户登录时使用的原始id
dir查看完成的路径
devmajor主设备号
devminor次设备号
inodeinode号
exit系统调用的返回值
success系统调用成功值。1表示成功,0表示失败
a0,a1,a2,a3分别表示系统调用的前4个参数,只能用数字表示
key 设置用来标记事件的审计日志事件消息的过滤关键字
perm文件操的权限过滤
obj_user对象的SELinux用户
obj_role对象的SELinux角色
obj_type对象的SELinux类型
obj_lev_low对象的SELinux低级别
obj_lev_high对象的SELinux高级别
subj_sen程序的SELinux敏感度
.subj_user程序的SELinux角色
subj_type程序的SELinux类型
subj_clr程序的SELinux清楚率
subj_role程序的SELinux角色
subj_sen程序的SELinux敏感度
filetype目标文件的类型

    例如:

  • 要定义一个规则,程序每次使用adjtime或settimeofday 系统调用时创建日志。并且使用64位
  • auditctl -a always,exit -F arch=b64 -S adjtime -S settimeofday -k time_change
  •  定义一个规则,,每次文件被ID为500或更大的系统用户删除或重命时创建一个日志条目(该-F auid!=4294967295选项用于排除未设置登录UID的用户)
  • auditctl -a always,exit -F 'auid>=500' -F  "auid!=4294967295" -S unlink -S rename -S renameat -k detele
  •  也可以使用系统调用规则语法定义文件系统规则
  • auditctl -a always,exit -F path=/etc/shadow -F perm=wa
  •  查看特定程序的所有系统调用
  • auditctl -a entry,always -S all -F pid=1008

 删除规则

语法:

audit -d action,filter -F filed=value -S sytem_call -k key_name

 每个选项的用法与添加规则的用法一样

 使用ausearch搜索审计日志文件 

  • 要在/var/log/audit/audit.log 文件中搜索失败的登录尝试
  • ausearch --message USER_LOGIN --success no --interpret
  •  要搜索所有账户、角色和角色更改,请使用以下命令
  • ausearch -m ADD_USER -m DEL_USER -m ADD_GROUP -m USER_CHAUTHTOK -m DEL_GROUP -m CHGRP_ID -m ROLE_ASSIGN -m ROLE_REMOVE -i
    
  •  要使用用户的登录ID(auid)搜索某个用户执行的所有记录操作
  • ausearch -ua 500 -i
  • 要搜索从昨天到现在所有失败的系统调用
  • ausearch --start yesterday --end now -m SYSCALL -sv no -i
    
  •  要搜索某个规则审计
  • ausearch -i -k my_key(与规则对应)

 auditd

 linux auditcl命令

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux安全审计和数据保护是Linux系统中非常重要的一部分,以下是一些相关的方法和步骤: 1. SELinuxLinux系统中的一个强制访问控制(MAC)系统,它可以限制进程只能访问它被授权的资源。可以通过以下命令来检查SELinux是否开启: ```shell sestatus ``` 如果SELinux处于enforcing模式,则表示它正在强制执行安全策略。如果SELinux处于permissive模式,则表示它只记录违规行为而不强制执行安全策略。如果SELinux处于disabled模式,则表示它已被完全禁用。 2. 可以使用Linux Audit框架来记录系统上发生的安全事件。可以使用以下命令来检查Linux Audit是否已安装: ```shell rpm -q audit ``` 如果未安装,则可以使用以下命令安装: ```shell yum install audit ``` 安装完成后,可以使用以下命令来启用Linux Audit: ```shell systemctl enable auditd.service systemctl start auditd.service ``` 然后,可以使用以下命令来查看Linux Audit日志: ```shell ausearch -m USER_AUTH ``` 这将显示所有与用户身份验证相关的事件。 3. 可以使用Linux系统中的加密文件系统来保护敏感数据。可以使用以下命令来创建一个加密文件系统: ```shell cryptsetup luksFormat /dev/sdb1 cryptsetup luksOpen /dev/sdb1 my_encrypted_fs mkfs.ext4 /dev/mapper/my_encrypted_fs mount /dev/mapper/my_encrypted_fs /mnt/my_encrypted_fs ``` 这将创建一个名为my_encrypted_fs的加密文件系统,并将其挂载到/mnt/my_encrypted_fs目录中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值