audit.rules规则文件应存于/etc/audit/rules.d/目录下,该目录是唯一推荐的持久化规则源码位置;/etc/audit/audit.rules由augenrules自动生成,不可手动编辑。

auditd 的“库位”不是标准术语,实际想问的通常是 审计规则的持久化位置 或 审计日志的存储路径。CentOS 7 中这两处都可修改,但目的、影响和操作方式完全不同,容易混淆甚至误配。
audit.rules 规则文件到底存在哪?
/etc/audit/rules.d/ 是唯一推荐的持久化规则存放目录,不是“库位”,而是规则源码目录。/etc/audit/audit.rules 是运行时生效的规则文件,它由 augenrules 自动生成,不应手动编辑。
-
augenrules会按字母序读取/etc/audit/rules.d/*.rules中所有文件,合并成/etc/audit/audit.rules - 修改规则后,必须执行
sudo augenrules --load(或重启auditd),否则新规则不生效 - 如果直接改
/etc/audit/audit.rules,下次augenrules运行或系统重启就会被覆盖
常见错误:
- 把规则写进
/etc/audit/audit.rules→ 重启后消失 - 在
/etc/audit/rules.d/下放非.rules后缀文件 →augenrules忽略 - 文件名含空格或特殊字符(如
my rules.rules)→ 加载失败且无提示
建议做法:
- 新建
/etc/audit/rules.d/99-custom.rules - 写入规则,例如:
-w /etc/shadow -p wa -k shadow-modify - 执行
sudo augenrules --load && sudo auditctl -l验证是否加载成功
audit.log 日志文件能换到别的路径吗?
可以,但需同时改两处,缺一不可:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 修改
/etc/audit/auditd.conf中的log_file参数,例如:log_file = /data/audit/audit.log - 确保目标目录存在、权限正确、SELinux 允许(如果启用):
sudo mkdir -p /data/auditsudo chown root:root /data/auditsudo chmod 0700 /data/auditsudo semanage fcontext -a -t auditd_log_t "/data/audit(/.*)?"(若 SELinux enforcing)sudo restorecon -Rv /data/audit
注意:
-
auditd不支持 NFS 或 FUSE 挂载点作为日志路径(内核写入要求低延迟+原子性) - 若路径所在分区空间不足,
auditd可能触发disk_full_action(默认是暂停审计),导致漏记 - 不要只改
log_file却忽略目录权限或 SELinux 上下文,否则服务启动失败,systemctl status auditd会报Failed to open log file
为什么改了规则却没记录任何事件?
最常踩的坑不是路径问题,而是规则本身没匹配上:
-
-p wa监控的是“写+属性修改”,但修改/etc/passwd实际常走renameat或open(O_TMPFILE)+linkat,-w规则捕获不到 - 64 位系统需明确指定架构:
-F arch=b64,否则execve类规则可能不生效(尤其混合架构环境) -
uid=0匹配 root,但某些服务以root启动却降权运行(如sshd子进程 uid≠0),需用-F auid!=4294967295捕获登录会话 -
auditctl -l显示的规则是已加载的,但ausearch -k xxx查不到日志,可能是日志被轮转、磁盘满、或max_log_file_action=ignore导致丢弃
验证技巧:
- 手动触发一次操作(如
sudo touch /etc/testflag) - 立即执行
sudo ausearch -m SYSCALL -ts recent | grep testflag - 若无输出,再查
sudo auditctl -s | grep "enabled"确认审计已启用(非 0)
规则路径和日志路径都可改,但改错一处就全盘失效。真正关键的不是“换位置”,而是让规则精准命中行为、日志可靠落盘、且不被后续机制覆盖或丢弃。










