最有效方式是用auditctl -w加真实路径、精准权限(-p wa)、明确标签(-k)的永久规则;聚焦账号权限、服务配置、启动持久化三类高价值文件;须先临时验证再写入/etc/audit/rules.d/并augenrules --load生效。

直接用 auditctl -w 加路径规则是最有效的方式,重点是路径真实、权限精准、标签明确,并必须落盘为永久规则——临时加的规则重启就丢,生产环境不能依赖。
锁定三类高价值目标文件
别全量监控,聚焦真正影响系统安全边界的路径:
- 账号与权限类:/etc/passwd、/etc/shadow、/etc/group、/etc/sudoers、/etc/ssh/sshd_config
- 服务配置类:/etc/nginx/nginx.conf、/etc/httpd/conf/httpd.conf、/etc/my.cnf
- 启动与持久化类:/etc/profile、/etc/environment、/etc/crontab、/etc/cron.d/
写对规则三要素:路径、权限、标签
每条规则必须同时满足三个条件才真正生效:
-
路径必须存在且是真实 inode 路径:执行
ls -l /etc/shadow确认文件存在;若路径是软链接(如 /etc/shadow-),auditd 默认不跟随,要监控实际目标路径 -
-p 参数按需组合:
-p wa覆盖绝大多数篡改场景(写入内容 + 修改权限/属主);避免加-p r,读操作高频且无安全意义,极易导致日志爆炸 -
-k 标签要统一可读:例如
-k etc_shadow_mod,后续用ausearch -k etc_shadow_mod可秒级过滤,比-f /etc/shadow更准、更稳
分两步落地:先临时验证,再永久生效
跳过验证环节,90% 的规则在生产环境会静默失效:
-
临时加规则(调试用):
sudo auditctl -w /etc/shadow -p wa -k etc_shadow_mod,然后运行sudo auditctl -l | grep shadow确认已加载;手动改一次文件(如sudo vipw),立即执行sudo ausearch -k etc_shadow_mod -i | head -10查日志 -
永久保存(生产必需):新建文件
/etc/audit/rules.d/shadow.rules,写入规则(每行一条,无首空格):-w /etc/shadow -p wa -k etc_shadow_mod
再执行sudo augenrules --load加载,最后用sudo auditctl -l验证
查日志要用对命令和参数
audit.log 是二进制格式,直接 cat 看不懂,必须用专用工具:
- 查所有相关事件:
sudo ausearch -k etc_shadow_mod -i(-i是关键,还原用户、命令、路径等语义) - 只看写入操作:
sudo ausearch -k etc_shadow_mod -m SYSCALL -sc write -i - 过滤 root 用户行为:
sudo ausearch -k etc_shadow_mod -ui 0 - 查最近一小时:
sudo ausearch -k etc_shadow_mod --start recent
不复杂但容易忽略:路径得真实、-p wa 别多加 r、-k 标签要起好、规则必须进 rules.d/ 并 augenrules --load。











