我在 CentOS 7 上生成审核规则时遇到问题。
我的目录中有 2 个.rules
文件/etc/audit/rules.d/
。这两个文件都归 root 所有,并且只有 root 才有访问权限。当我使用augenrules --load
然后运行重新加载规则时auditctl -l
,它显示No rules
。但是,如果我查看它的内容,/etc/audit/audit.rules
它确实显示它是从 .rules 文件自动生成的,并且它确实包含来自这两个文件的所有规则。
如果我将其中一个.rules
文件移出该目录并重新加载规则,它就会正常工作。问题似乎只出现在我同时拥有两个文件的情况下。我以为目录的意义rules.d
在于您可以拥有多个规则集?您知道我遗漏了什么吗?
答案1
好的。为了完整起见,我认为问题是由于生成的 /etc/audit/audit.rules 中存在错误,因此当 auditd 尝试重新启动时,它会出现错误,并且如果第一个指令之一是删除所有先前的规则,那么您最终将没有规则。例如
[root@stroomfp0 audit]# cat /etc/audit/audit.rules
## This file is automatically generated from /etc/audit/rules.d
-w /etc/docker/daemon.json -p wa -k docker CIS-1.11
[root@stroomfp0 audit]#
[root@stroomfp0 audit]# service auditd restart
Stopping logging: [ OK ]
Redirecting start to /bin/systemctl start auditd.service
[root@stroomfp0 audit]# tail /var/log/messages
Jun 27 21:16:17 stroomfp0 systemd: Starting Security Auditing Service...
Jun 27 21:16:18 stroomfp0 auditd[10342]: Started dispatcher: /sbin/audispd pid: 10346
Jun 27 21:16:18 stroomfp0 audispd: No plugins found, exiting
Jun 27 21:16:18 stroomfp0 kernel: type=1305 audit(1498562178.008:701):
audit_enabled=1 old=1 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
Jun 27 21:16:18 stroomfp0 kernel: type=1305 audit(1498562178.010:702): audit_pid=10342 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
Jun 27 21:16:18 stroomfp0 augenrules: /sbin/augenrules: No change
Jun 27 21:16:18 stroomfp0 auditctl: parameter passed without an option given
Jun 27 21:16:18 stroomfp0 auditctl: There was an error in line 5 of /etc/audit/audit.rules
Jun 27 21:16:18 stroomfp0 auditd[10342]: Init complete, auditd 2.6.5 listening for events (startup state enable)
Jun 27 21:16:18 stroomfp0 systemd: Started Security Auditing Service.
[root@stroomfp0 audit]#
一旦您纠正了错误,重新生成规则文件并且随后的 auditd 重启表明一切正常。
故事的寓意是,一定要检查消息日志weird activity
:-)
答案2
它可能对排除故障有帮助。
您可以运行auditctl -R
基于文件的规则,如果有任何问题则返回错误。
auditctl -R /etc/audit/audit.rules