auditd 默认安装但规则为空,真正起效需 root 权限添加精准规则、确保持久化加载、再用 ausearch/aureport 查日志;三步检查缺一不可:服务启用运行、内核审计开启(enabled=1)、监控路径真实存在且为 inode 路径。

auditd 默认安装但规则为空,不配置规则就等于没开审计。真正起效的关键是:用 root 权限添加精准规则、确保持久化加载、再用配套工具查日志——不是装上服务就自动记录。
先确认服务状态和权限前提
执行以下三步检查,缺一不可:
-
服务必须启用且运行中:运行
systemctl status auditd,确认显示enabled: enabled和active: active (running) -
内核审计必须开启:运行
auditctl -s | grep enabled,输出的enabled字段必须是1(0表示关闭,2表示仅记录内核事件) -
路径必须真实存在且为 inode 路径:例如监控
/etc/shadow,需先ls -i /etc/shadow确认路径有效,不能写成软链接别名或不存在路径
用 -w 规则监控静态敏感文件
对固定路径的高敏文件(如账号、权限、配置类),优先使用 -w 方式,它自动覆盖 openat、write、truncate 等常见写入相关系统调用:
-
sudo auditctl -w /etc/shadow -p wa -k account_shadow:捕获密码哈希文件的写入与属性变更 -
sudo auditctl -w /etc/sudoers -p wa -k sudoers_modify:监控提权配置修改 -
sudo auditctl -w /var/log/secure -p wa -k ssh_login:跟踪 SSH 登录日志写入行为
注意:-p rw 适合读取类审计(如 cat /etc/shadow),-p wa 更适用于防篡改场景;所有规则务必带 -k 标签,否则后续检索困难。
把规则变永久:写进 rules.d 并 augenrules 加载
临时规则在重启或 systemctl restart auditd 后全部丢失。持久化必须走标准流程:
- 新建规则文件,如
/etc/audit/rules.d/10-security.rules,内容每行一条规则,支持#注释 - 写入后执行
sudo augenrules --load(不是systemctl restart auditd) - 验证是否生效:
sudo auditctl -l | grep account_shadow,有输出说明已进内核
若系统启用了 ProtectSystem=strict(部分云镜像默认开启),可能拒绝读取 /etc/audit/rules.d/,此时需先 sudo systemctl edit auditd 放宽限制。
查日志别翻 audit.log,用 ausearch 精准挖
原始日志难读,应使用配套工具定向过滤:
- 按标签查:
sudo ausearch -k account_shadow -i查所有匹配事件,含用户、进程、命令行、时间等完整上下文 - 按文件查:
sudo ausearch -f /etc/shadow快速定位访问该文件的所有记录 - 看统计报告:
sudo aureport -k -i | grep account_shadow汇总次数与高频操作者
重点字段包括:auid(登录用户ID)、uid(当前用户)、comm(命令名)、exe(执行路径)、success(是否成功)——这些比单纯看路径更有溯源价值。











