应聚焦高价值目标、设置精准规则、用对权限标记,而非全量监控文件;优先监控身份凭证类、权限控制类、密钥证书类路径;使用-auditctl -w指定绝对路径配合-p wa,避免通配符和递归;通过失败访问(exit=-13)捕获非法读取;规则需持久化至/etc/audit/rules.d/并用augenrules加载;查日志优先用ausearch而非直接读audit.log。

不能也不该监控“任何文件”的全量访问行为。
auditd 是内核级审计工具,能力强大,但设计初衷不是做全盘扫描式日志记录。盲目监控所有文件会迅速耗尽磁盘、拖慢系统响应、淹没关键线索——这不是安全加固,是自我干扰。
真正有效的做法是:聚焦高价值目标 + 设置精准规则 + 用对权限标记。
明确哪些文件值得监控
优先锁定三类敏感目标:
-
身份凭证类:
/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow -
权限控制类:
/etc/sudoers、/etc/sudoers.d/、/etc/ssh/sshd_config、~/.ssh/authorized_keys -
密钥证书类:
/etc/ssl/private/、/etc/pki/tls/private/、/var/lib/kubelet/pki/
这些路径修改一次就可能引发严重风险,必须被捕捉。
用 -w 规则监控具体路径(不是通配符)
auditd 的 -w 只支持已存在的绝对路径,不解析 * 或 ?,也不递归子目录。
错误写法(无效):
auditctl -w /etc/ssl/certs/*.pem -p r auditctl -w /etc/ -p rw
正确写法(按需逐个或按目录粒度):
auditctl -w /etc/shadow -p wa -k shadow_mod auditctl -w /etc/sudoers -p wa -k sudoers_mod auditctl -w /etc/ssl/private/ -p wa -k ssl_private_mod
说明:
-
-p wa表示监控写入(w)和属性变更(a),比单纯-p r更实用且低噪 - 目录级监控捕获的是对该目录自身的
openat,mkdir,rename,chmod等操作,能覆盖复制、重命名、权限篡改等常见攻击手法 - 不要加
-p r到高访问目录(如/proc,/sys,/tmp),否则日志爆炸
想知道“谁读了敏感文件”?抓失败访问更可靠
攻击者读私钥时通常无权限,内核返回 EACCES(exit=-13),auditd 仍会记录该 open 或 openat 调用。
例如监控非授权读取 /etc/ssl/private/ 下文件:
auditctl -w /etc/ssl/private/ -p wa -k ssl_access
查异常尝试:
ausearch -k ssl_access -m open,openat -i | grep "exit=-13"
这比开 -p r 抓海量合法读取,效率高得多,也更贴近真实威胁场景。
规则必须持久化,否则重启即失效
临时规则仅用于调试:
sudo auditctl -w /etc/shadow -p wa -k shadow_mod
生产环境务必写入 /etc/audit/rules.d/:
echo "-w /etc/shadow -p wa -k shadow_mod" | sudo tee /etc/audit/rules.d/10-shadow.rules sudo chmod 600 /etc/audit/rules.d/10-shadow.rules sudo augenrules --load
验证是否生效:
sudo auditctl -l | grep shadow_mod
注意:文件名以 .rules 结尾,权限设为 600,augenrules 会自动合并全部规则并重载。
查日志别翻 audit.log,用 ausearch 快速定位
-
查某次 shadow 修改:
ausearch -k shadow_mod -i
-
查某个 UID 的所有敏感操作:
ausearch -ui 1001 -k shadow_mod,sudoers_mod -i
-
查最近一小时所有失败的敏感访问:
ausearch --start recent --failed -k shadow_mod,sudoers_mod -i
-i 参数自动将 UID/GID/系统调用号等转为可读名称,大幅降低分析门槛。
不复杂但容易忽略。


















