Red Hat Training

A Red Hat training course is available for RHEL 8

12.6. 使用 auditctl 定义和执行审计规则

Audit 系统在一组规则上运行,这些规则定义日志文件中捕获的内容。可以使用 auditctl 实用程序在命令行中或使用 /etc/audit/rules.d/ 目录中设置审计规则。

auditctl 命令使您能够控制审计系统的基本功能,并定义决定记录哪些审计事件的规则。

文件系统规则示例

  1. 要定义一条规则,记录 /etc/passwd 文件的所有写入访问权限和每个属性更改:

    # auditctl -w /etc/passwd -p wa -k passwd_changes
  2. 要定义一条规则,记录对 /etc/selinux/ 目录中所有文件的写入访问和每个属性更改:

    # auditctl -w /etc/selinux/ -p wa -k selinux_changes

系统调用规则示例

  1. 要定义当程序每次使用 adjtimexsettimeofday 系统调用时创建日志条目的规则,系统使用 64 位构架:

    # auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
  2. 定义一个规则,在每次删除文件时创建一个日志条目,或者由 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

其它资源

  • audictl(8) 手册页.