应监控 /etc/shadow 的写入与属性变更(-p wa),规则为 -w /etc/shadow -p wa -k passwd_change,持久化至 /etc/audit/rules.d/passwd.rules 并重载;查日志用 ausearch -k passwd_change -i,重点看 exe、auid 和 success=yes。

核心是监控 /etc/shadow 文件的写入与属性变更,规则必须用 -p wa 并打统一关键词,持久化到规则文件后重载,再通过 ausearch -k 结合 auid 字段精准溯源操作者。
必须监控 /etc/shadow 的写入和属性变更
所有密码修改行为(passwd、chpasswd、usermod -p、chage)最终都会触发对 /etc/shadow 的系统调用:
-
-p w捕获内容写入:如新设密码、更新哈希值 -
-p a捕获属性变更:如设置密码过期、锁定账号、修改最小/最大天数 - 只用
-p w不够——攻击者可能先chmod 600 /etc/shadow隐藏痕迹,这类操作不改内容,只改属性 - 不用
-p r或-p x:该文件不可执行,合法读取由 PAM 处理,不属于“密码修改”审计范畴
规则要持久化并验证生效
临时规则(auditctl -w)重启即失效,生产环境必须落盘:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 新建规则文件:
sudo tee /etc/audit/rules.d/passwd.rules - 写入规则:
-w /etc/shadow -p wa -k passwd_change - 保存后执行:
sudo augenrules --load - 验证是否加载:
sudo auditctl -l | grep passwd_change,应输出完整规则行
查日志要盯住三个关键字段
执行 sudo passwd root 后,立即检索:
-
sudo ausearch -k passwd_change --start recent -i(-i自动解析 UID/GID 为用户名) -
exe:实际执行程序路径,如
/usr/bin/passwd,确认是否为合法密码工具 -
auid:原始登录用户 ID,防
su/sudo混淆,比如auid=1001表示最初由普通用户登录后提权 - success=yes:过滤掉失败尝试,聚焦真实修改行为
提升溯源可靠性的补充动作
单靠 shadow 日志无法闭环,需配合基础配置:
- 检查
/etc/pam.d/sshd和/etc/pam.d/login是否含session required pam_loginuid.so,否则auid可能为4294967295(未登录态) - 可加一条辅助规则监控二进制执行:
-w /usr/bin/passwd -p x -k passwd_exec,捕获绕过 shadow 的直接调用(如某些容器环境) - 若需满足等保或 PCI-DSS 等合规要求,建议同步开启
/var/log/wtmp和/var/log/btmp审计,补全登录上下文链

















