首页/安全/安全加固速查/auditctl 状态查看与临时规则

auditctl 状态查看与临时规则

auditctl -s 看内核审计开关与队列积压,auditctl -l 看当前生效规则;临时规则重启即失效,定位问题很方便。

安全加固速查安全更新于 2026-10-13

auditctl 的两个用途

auditctl 是审计子系统的命令行入口:-s 查看内核审计开关、缓冲区积压与丢失计数,-l 查看当前生效的规则集。它还能临时添加规则,这类规则重启即失效,用来定位问题和验证规则效果很方便。要长期生效则必须写进 /etc/audit/rules.d/ 下的规则文件。

基本信息

适用平台Linux(auditd)
风险等级中
基线要求规则可见、可解释、有来源
关键命令auditctl -s、-l、-w、-W、-D
持久化目录/etc/audit/rules.d/,配合 augenrules --load

典型使用场景

  • 排查审计是否真的在工作,看开关与积压情况
  • 查看当前生效规则,确认没有被悄悄删改
  • 临时加一条规则,验证能否捕捉到目标事件
  • 在写入持久化文件前先调试规则语法
  • 排查 lost 计数增长导致的证据缺失
  • 应急时快速观察某个文件或命令的访问行为

状态与临时规则

状态与临时规则
auditctl -s                     # 查看 enabled、backlog、lost 等状态
auditctl -l                     # 列出当前生效的全部规则
auditctl -w /etc/ssh/sshd_config -p wa -k sshd_config   # 临时监视文件写与属性变更
auditctl -W /etc/ssh/sshd_config -p wa -k sshd_config   # 删除该条临时规则
auditctl -D                     # 清空全部规则,仅调试时使用
augenrules --load               # 把 rules.d 下的规则重新载入内核

输出逐列读法

字段含义判读
enabled审计是否启用1 启用、0 关闭、2 规则只读
backlog待处理事件队列深度持续增长说明处理不过来
lost因缓冲区不足丢失的事件数不为 0 即存在记录缺失
rate_limit每秒允许的审计消息上限过低会丢掉高频事件
-l 输出当前生效的规则列表应与规则文件内容保持一致
auditctl 直接添加的规则重启就丢失:需要持久化时必须写进 /etc/audit/rules.d/ 下的规则文件,再执行 augenrules --load。
用 -W 删除规则时,参数必须与添加时完全一致,否则删不掉,最后只能靠 -D 清空后重来。
lost 计数持续增长说明内核审计缓冲区不足:可以调大 backlog_limit,或者减少高噪声规则,否则真正需要的记录会被丢掉。

易错点

  • 用 auditctl 加的临时规则以为会长期生效,重启后规则消失,审计出现空白
  • 删除规则时参数与添加时不一致导致删不掉,只能用 -D 清空全部规则重来
  • lost 计数不为 0 却没有处理,关键事件的记录已经在无声中丢失
  • 规则文件改了没有执行 augenrules 载入,还以为已经生效
  • 用 -D 清空规则后忘记恢复,审计长期处于无规则状态

数据来源与参考

  • auditctl(8) man page
  • CIS Linux Benchmark:审计规则

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌