审计子系统怎么组成
Linux 审计由内核审计子系统与用户态 auditd 两部分组成:内核负责产生事件,auditd 负责接收并落盘到 /var/log/audit/audit.log,规则通过 auditctl 或 rules.d 目录下发给内核。等保与安全审计类要求基本都涉及它——只有 auditd 在线且规则覆盖到位,操作行为才有可回溯的证据。
基本信息
| 软件包 | audit(提供 auditd、auditctl、ausearch、aureport) |
|---|---|
| 主配置 | /etc/audit/auditd.conf(日志位置、轮转、空间告警) |
| 规则目录 | /etc/audit/rules.d/*.rules,由 augenrules --load 合并 |
| 运行规则 | /etc/audit/audit.rules |
| 日志位置 | /var/log/audit/audit.log |
| 查看状态 | systemctl status auditd、auditctl -s、auditctl -l |
典型使用场景
- 等保与合规要求记录账户、提权与关键文件访问行为
- 排查入侵事件时利用审计记录还原操作顺序
- 监控关键配置文件(如 sshd_config、passwd)的修改
- 评估审计覆盖范围是否满足内控要求
- 接管系统时确认审计服务是否一直在正常运行
安装与启用
安装与启用
dnf install -y audit # 安装审计工具集
systemctl enable --now auditd # 开机自启并立即启动
systemctl status auditd | head -5 # 确认运行状态
auditctl -s # 审计子系统状态:enabled 值表明是否生效
auditctl -l | head -20 # 查看已加载的审计规则
cat /etc/audit/auditd.conf | grep -vE '^#|^$' # 看关键配置项(日志路径、空间策略)规则与日志核查
规则与日志核查
ls /etc/audit/rules.d/ # 规则文件清单
augenrules --load 2>/dev/null # 合并并加载规则(部分版本用法)
ausearch -m USER_LOGIN -ts today | head # 按事件类型检索登录事件
aureport --summary # 审计摘要报告
systemctl is-enabled auditd # 确认自启状态,未启用等于重启后审计断档
df -h /var/log # 审计日志所在分区余量,写满会丢事件状态与配置要点
| 检查项 | 期望结果 | 异常含义 |
|---|---|---|
| systemctl status auditd | active (running) | 未运行则事件只在内核缓冲区,重启即丢 |
| auditctl -s 的 enabled | 1 或 2 表示生效 | 为 0 说明规则未生效 |
| auditctl -l | 能看到已加载规则 | 为空说明规则没下发 |
| auditd.conf 日志路径 | 指向实际落盘位置 | 路径错误会导致日志写入异常 |
| partition 余量 | 有足够空间 | 写满后会触发配置中的处置动作 |
| 自启状态 | enabled | disabled 时重启后审计中断 |
auditd 与 systemd-journald 相互独立:审计事件主要落在 audit.log,部分事件也会出现在 journal 中,排查时按需要两边都看。
auditd 自带日志轮转机制(auditd.conf 中的 num_logs、max_log_file 等):不要再让 logrotate 管理 audit.log,双写容易造成日志丢失或轮转冲突。