首页/安全/等保与合规速查/auditd:Linux 系统调用级审计配置

auditd:Linux 系统调用级审计配置

auditd 记录系统调用、文件访问与特权操作,是满足主机审计与溯源要求的基础组件;规则应聚焦账号、权限、敏感文件与拒绝事件。

等保与合规速查安全更新于 2026-10-13

auditd 管什么

auditd 是 Linux 内核审计子系统在用户态的守护进程,记录系统调用、文件访问与特权操作,是满足主机审计与溯源要求的基础组件。规则写在 /etc/audit/rules.d/ 下的 .rules 文件,聚焦账号与认证文件、提权执行、敏感文件与权限拒绝事件。规则过宽会写满磁盘,过窄又查不到证据,因此规则设计与容量规划要一起做。

基本信息

组件auditd(内核审计子系统 + 用户态守护进程)
规则位置/etc/audit/rules.d/ 下的 .rules 文件
生效命令augenrules --load
查询工具ausearch、aureport、auditctl
常见目标账号文件、sudoers、提权执行、权限拒绝
容量控制max_log_file、num_logs、磁盘占用评估

典型使用场景

  • 主机审计条款的整改与取证
  • 账号与权限变更的追溯
  • 安全事件后按 key 检索历史操作
  • 与集中日志平台的对接
  • 合规检查前的规则与日志留存自查

规则示例

规则示例
# 监控账号与认证关键文件的写入与属性变更
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k privilege
# 记录提权执行(有效用户 ID 与真实用户 ID 不一致)
-a always,exit -F arch=b64 -S execve -C uid!=euid -k privilege
# 记录权限被拒绝的访问
-a always,exit -F arch=b64 -S open,openat -F exit=-EACCES -k access_denied

生效与查询

生效与查询
# 查看当前已加载规则,确认写入生效
auditctl -l | head
# 加载 rules.d 下的规则集
augenrules --load
# 按 key 检索最近的身份相关事件
ausearch -k identity -ts recent
# 认证事件汇总统计
aureport -au --summary

常用查询命令

命令用途典型输出
auditctl -l列出当前生效规则规则清单与 key
ausearch -k identity按 key 检索事件时间、用户、操作结果
aureport -au认证事件汇总成功与失败次数
ausearch -k access_denied检索权限拒绝进程与文件路径
规则过宽会淹没日志并快速占用磁盘:上线前评估规则量与日均日志量,生产环境建议设置日志轮转与容量上限。
改完规则不加载不会生效,augenrules --load 是常用步骤;改动后建议用 auditctl -l 核对实际加载的规则。

覆盖范围建议

对象监控内容对应 key 示例
账号文件passwd、shadow、group 的写与属性变更identity
提权相关sudoers 变更与提权执行privilege
敏感目录配置、密钥与业务数据的访问sensitive
拒绝事件权限拒绝与失败访问access_denied
与集中日志平台对接时,建议把审计日志单独转发一份并保留本地副本:本地用于快速排查,集中侧用于长期留存与关联分析。

易错点

  • 改完规则不加载:augenrules --load 之后才生效,未加载等于没写
  • 只监控文件不管进程:提权与命令执行类事件同样需要覆盖
  • 规则未做容量评估:日志写满磁盘会影响生产
  • 审计日志无备份与保护:可被随意删除或覆盖,证据链断裂

数据来源与参考

  • Linux auditd 文档(man auditctl / audit.rules)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌