auditd需精准配置规则才能有效审计,先用auditctl临时验证,再写入/etc/audit/rules.d/并augenrules--load加载;聚焦账号权限、特权命令、敏感目录三类高价值目标,用ausearch/aureport高效查日志。

auditd不是装上就完事的工具,规则写得不准,等于没开。真正有用的审计,是让关键行为“一查就有、一看就懂”,而不是堆满日志却找不到线索。
先用 auditctl 快速验证规则是否生效
别急着改配置文件,所有新规则都该先用 auditctl 临时加一条试试。它不重启服务、不写磁盘,改错立刻删,适合新手反复调试。
-
-w 后必须填真实存在的路径,比如
/etc/shadow存在,但/etc/shad0w就不会触发任何事件 -
-p 权限标记要对得上动作:改密码会触发
-p wa(写+属性),只读文件则只需-p r -
-k 标签建议用小写字母+下划线,比如
-k ssh_login,后续用ausearch -k ssh_login就能精准捞出所有相关记录 - 执行后运行
auditctl -l确认规则已加载,再手动操作一次目标行为(如sudo useradd test),马上用ausearch -k account_passwd查看有没有捕获到
永久规则要写进 /etc/audit/rules.d/ 并重载
临时规则在 auditd 重启或系统重启后自动消失。要长期起作用,必须存为永久规则。
- 把规则写进
/etc/audit/rules.d/10-security.rules这类以数字开头的 .rules 文件里,每行一条,支持#注释 - 文件名带数字前缀可控制加载顺序,比如
00-base.rules放基础规则,99-custom.rules放业务定制规则 - 写完别忘了执行
sudo augenrules --load,这条命令会合并所有 .rules 文件并重载进内核 - 验证是否生效:
sudo auditctl -l | grep "your-keyword",有输出说明已加载成功
聚焦三类高价值监控目标,避免日志爆炸
全量监控既浪费资源又难排查。优先盯住真正影响安全边界的动作:
- 账号与权限核心文件:/etc/passwd、/etc/shadow、/etc/sudoers、/etc/ssh/sshd_config —— 每次修改都可能是提权或后门植入
-
特权命令执行:监控
/usr/bin/sudo、/bin/bash、/usr/bin/chmod的执行(-p x),比监控进程名更可靠 -
敏感目录变更:比如 Web 根目录
/var/www/html或业务数据目录/data,用-p rwxa捕获读、写、执行、属性四类动作
查日志不是翻文件,而是用 ausearch 和 aureport 定向挖
/var/log/audit/audit.log 是原始日志,直接 cat 或 less 很难定位。真正高效的方式是用配套工具过滤。
- 按关键词查:
sudo ausearch -k sudo_exec找所有 sudo 执行记录 - 按文件查:
sudo ausearch -f /etc/shadow查谁动过 shadow 文件 - 按用户查:
sudo ausearch -ui 1001查 UID 为 1001 的用户所有审计事件 - 生成登录汇总:
sudo aureport --login --summary快速看到成功/失败登录次数和来源 IP


















