auditd 的角色
auditd 是 Linux 内核审计子系统的用户态组件:内核产生审计事件,auditd 负责接收并写入 /var/log/audit/audit.log,同时按配置做轮转。没有它,审计规则即使存在也没有落盘通道,等保里的安全审计条款就无从谈起。所以核查顺序是先确认服务安装、运行并开机自启,再谈规则内容,顺序颠倒会得出虚假的结论。
基本信息
| 加固项 | 审计服务可用性 |
|---|---|
| 适用平台 | Linux(RHEL/CentOS/Debian/Ubuntu) |
| 风险等级 | 高 |
| 基线 | 服务运行且开机自启,内核审计处于启用状态 |
| 日志位置 | /var/log/audit/audit.log,轮转由 auditd.conf 控制 |
典型使用场景
- 等保整改第一步:确认审计组件到位,再逐条配置监控规则
- 事件响应:判断主机是否存在可用的审计记录,决定取证路线
- 巡检:确认审计服务没有被停止,规则数量与预期一致
- 容量排查:审计日志增长导致分区吃紧时,评估轮转与留存参数
- 容器环境评估:确认审计覆盖范围,判断容器内取证是否可行
安装与状态核查
安装与状态核查
rpm -q audit || yum install -y audit # RHEL/CentOS 包名为 audit
apt list --installed 2>/dev/null | grep -i audit # Debian/Ubuntu
systemctl enable --now auditd # 启用并立即启动
systemctl status auditd --no-pager | head -12 # 查看运行状态与最近日志
auditctl -s # 关注 enabled 与 pid 字段
auditctl -l | wc -l # 当前已装载规则条数状态字段判读
| 字段 | 含义 | 正常与异常 |
|---|---|---|
| enabled | 内核审计开关状态 | 1 表示启用;0 表示关闭,需要排查原因 |
| pid | 审计服务进程号 | 为 0 说明用户态服务未运行,事件不会落盘 |
| lost | 内核丢弃的事件数 | 持续增长说明负载过高或缓冲区偏小 |
| backlog | 待处理事件队列长度 | 长期偏高会导致丢事件、影响回溯 |
| failure mode | 审计不可用时内核的处理方式 | 不同发行版取值不同,需按本机手册理解 |
容器内没有独立的内核审计子系统:在容器里运行 auditd 无法工作属正常限制。容器场景的审计要落在宿主机内核层面,或改用应用日志与编排平台的审计能力,不能把容器内「服务起不来」当成配置错误来处理。
审计组件的包名在多数发行版是 audit 而不是 auditd,安装命令要与包管理器一致。另外服务停止后 auditctl -s 可能仍显示上一次的状态,判断是否在运行应以服务状态与日志是否有新写入为准,两者交叉确认。
规则与服务的先后关系
规则写在 /etc/audit/rules.d/ 下,通过 augenrules --load 装载,重启后自动生效;用 auditctl 直接加的规则只存在于内存。配置顺序建议是:先让服务稳定运行并确认日志有写入,再逐条加规则并验证命中,最后把审计日志的轮转与留存参数调到位,避免出现「规则齐全但日志被快速覆盖」的假达标。