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 |
与集中日志平台对接时,建议把审计日志单独转发一份并保留本地副本:本地用于快速排查,集中侧用于长期留存与关联分析。