锁定 auditd 需从三方面加固:规则文件设为444权限并属主root:root;启用内核级锁定(-e 2)且加载生效;屏蔽systemctl操作(mask auditd);同时加固auditd.conf和日志目录权限。

锁定 auditd 配置文件,核心是让规则不可修改、服务不可干扰、日志不可覆盖——不是只设个权限就完事,而是从文件属性、加载机制、运行时控制三方面堵死篡改路径。
把规则文件设为只读且属主严格管控
所有永久规则必须放在 /etc/audit/rules.d/ 下,且每个 .rules 文件都要固化:
- 执行 sudo chmod 444 /etc/audit/rules.d/*.rules,禁止任何人(包括 root)写入或删除
- 执行 sudo chown root:root /etc/audit/rules.d/*.rules,避免组用户误操作
- 检查是否存在非 .rules 后缀的配置文件(如 .bak、.old),一并设为只读或删除,防止被意外加载
启用内核级审计锁定(auditctl -e 2)
这是最关键的一步:一旦启用,任何用户(含 root)都无法动态增删规则、无法关闭审计,只能重启生效。
- 在任意 .rules 文件末尾追加一行:-e 2,例如写入 /etc/audit/rules.d/lock.rules
- 执行 sudo augenrules --load 加载全部规则(含 -e 2)
- 验证是否生效:sudo auditctl -s | grep "enabled" 应显示 enabled 2;再运行 sudo auditctl -D 会报错 “Operation not permitted”
防止 auditd 服务被停用或重载
攻击者获得 root 后常通过 systemctl 干扰 auditd,需切断该入口:
- 执行 sudo systemctl mask auditd,这会创建指向 /dev/null 的软链接,彻底禁用 stop/restart/reload 操作
- 确认状态:systemctl is-enabled auditd 应返回 masked;sudo systemctl status auditd 中应无 “Active: inactive” 字样
- 注意:mask 后若需临时调试,必须先 sudo systemctl unmask auditd,操作完立即重新 mask,并记录该动作
加固 auditd 主配置与日志路径
主配置 /etc/audit/auditd.conf 和日志文件本身也需防护:
- 对 /etc/audit/auditd.conf 同样执行 chmod 444 && chown root:root
- 日志文件 /var/log/audit/audit.log 设为仅 root 可读写:sudo chmod 600 /var/log/audit/audit.log
- 整个 /var/log/audit/ 目录权限设为 700,防止新建日志或覆盖行为绕过











