11.6. 使用 auditctl 来定义和执行审计规则
审计系统根据一组规则进行操作,这些规则定义日志文件中所捕获的内容。使用 auditctl
工具,可以在命令行或 /etc/audit/rules.d/
目录中设置审计规则。
auditctl
命令使您能够控制审计系统的基本功能,并定义决定记录哪些审计事件的规则。
文件系统规则示例
要定义一条规则,记录对
/etc/passwd
文件的所有写访问和每个属性的修改:# auditctl -w /etc/passwd -p wa -k passwd_changes
要定义一条规则,记录对
/etc/selinux/
目录中所有文件的写访问和每个属性的修改:# auditctl -w /etc/selinux/ -p wa -k selinux_changes
系统调用规则示例
要定义一条规则,当程序每次使用
adjtimex
或settimeofday
系统调用时就创建一条日志,系统使用 64 位构架:# auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
定义一条规则,在 ID 为 1000 或以上的系统用户每次删除或重命名文件时创建一条日志:
# auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete
请注意,
-F auid!=4294967295
选项用于排除未设置登录 UID 的用户。
可执行文件规则
要定义一条规则,记录所有 /bin/id
程序的执行,请执行以下命令:
# auditctl -a always,exit -F exe=/bin/id -F arch=b64 -S execve -k execution_bin_id
其他资源
-
系统中
auditctl (8)
手册页