最直接有效的方式是使用 auditctl -l 命令查看当前内核中已加载并处于活动状态的安全审计规则,该命令仅显示已生效的规则,不包含被删除或未成功加载的规则。

要实时查看当前内核中已加载并处于活动状态的安全审计规则,最直接有效的方式是使用 auditctl -l 命令。
查看所有已加载的审计规则
运行以下命令即可列出当前内核中所有活跃的审计规则(包括系统启动时由 audit.rules 加载的和运行时手动添加的):
-
sudo auditctl -l—— 显示所有规则,每条规则对应一条-a或-w添加的监控项 - 输出示例:
-w /etc/passwd -p wa -k identity-a always,exit -F arch=b64 -S openat -F path=/tmp/ -k tmp_access - 注意:该命令只显示“已生效”的规则,不包含被删除或未成功加载的规则
确认 auditd 服务正在运行且规则已加载
如果 auditctl -l 返回为空或报错,说明审计子系统可能未启用或服务未运行:
- 检查 auditd 状态:
sudo systemctl status auditd(常见于 RHEL/CentOS/Fedora)或sudo service auditd status - 若未运行,启动它:
sudo systemctl start auditd - 验证内核模块已加载:
lsmod | grep audit应显示audit和audit_watch等模块
查看规则是否真正触发(实时观察审计事件)
仅看规则列表还不够,可配合 ausearch 或 audispd 实时捕获匹配事件:
- 监听最近几秒的审计日志:
sudo ausearch -m SYSCALL --start recent --raw | aureport -f -i - 持续跟踪新事件(类似 tail):
sudo tail -f /var/log/audit/audit.log | aureport -f -i - 按关键字过滤(如刚添加的规则 key):
sudo ausearch -k identity --start today
补充:规则持久化与配置文件位置
系统重启后规则会丢失,除非写入配置文件。常见路径有:
-
/etc/audit/rules.d/*.rules(推荐,用于 systemd-based 系统) -
/etc/audit/audit.rules(传统路径,部分发行版仍使用) - 修改后需重载:
sudo augenrules --load或sudo service auditd restart











