文件 watch 规则做了什么
auditd 的文件监视规则(watch)为指定路径挂上审计钩子:一旦有人打开、写入或修改属性,内核就把事件写进审计日志。把 /etc/passwd、shadow、group、gshadow 与 sudoers 全部纳入监控,等于给「账号与权限」这条线装上摄像头:谁在什么时候动了哪个文件、以什么身份动,事后可以用 ausearch 一条命令拉全。
基本信息
| 加固项 | 关键身份与提权文件的审计 |
|---|---|
| 适用平台 | Linux(auditd,RHEL/CentOS/Debian/Ubuntu) |
| 风险等级 | 高 |
| 规则目录 | /etc/audit/rules.d/,文件名前缀数字决定加载顺序 |
| 关键参数 | -w 路径、-p 权限位、-k 检索标记 |
典型使用场景
- 账号异常排查:怀疑有人偷偷加账号,按标记检索即可定位到具体账号文件与操作
- 等保安全审计:要求审计覆盖到每个用户,身份文件的改动必须留痕
- 事件回溯:确认某次提权是走了 sudoers 修改还是直接改 passwd
- 合规留证:审计规则与检索结果一起作为整改证据提交
- 变更对照:运维改账号后可以反查是否有非授权的额外改动
写入规则并装载
写入规则并装载
cat >> /etc/audit/rules.d/10-identity.rules << 'EOF'
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/group -p wa -k identity
-w /etc/gshadow -p wa -k identity
-w /etc/sudoers -p wa -k identity
-w /etc/sudoers.d/ -p wa -k identity
EOF
augenrules --load && auditctl -l | grep identity # 装载并确认已生效watch 规则参数读法
| 参数 | 含义 | 注意事项 |
|---|---|---|
| -w 路径 | 监视目标文件或目录 | 目录要以斜杠结尾,否则匹配不到子项 |
| -p wa | 监视写入与属性变更 | 另有 r 读取、x 执行,按需增加,过多会产生噪声 |
| -k identity | 事件标记,用于检索 | 同类文件共用同一标记,一条命令即可全量拉取 |
| 规则文件顺序 | 前缀数字越小越先加载 | 关键规则放前面,避免被更早的规则干扰 |
事后查询
事后查询
ausearch -k identity --start this-week | head -40 # 按标记检索
aureport -k identity 2>/dev/null | head -20 # 汇总视图
ausearch -k identity -ts today | grep -E 'name=|comm=' | head -20检索标记的设计决定排查效率:身份文件统一用 identity、提权命令统一用 priv_cmd,需要时可以按文件、按时间、按用户三种维度组合过滤,不必翻全量日志。
规则要通过规则文件加 augenrules --load 装载,直接用 auditctl -w 添加的规则重启后消失。改动规则后用 auditctl -l 确认生效,并检查审计服务在运行,否则规则存在也不会产生记录。
规则的日常维护
watch 规则会产生持续写入量,长期运行要确认审计日志的轮转与留存配置跟得上,避免日志写满磁盘或覆盖过快导致关键记录丢失。建议把规则文件纳入配置管理,变更走一次评审:少一条规则可能造成审计盲区,多一条无关规则又会淹没真正有用的事件。