审计日志容量控制
auditd.conf 决定审计日志的单文件大小、轮转保留份数,以及磁盘压力达到阈值时采取什么动作。配置要同时满足两个目标:留存量足够长以便事后取证,又不至于把磁盘写满拖垮业务。容量配置必须与磁盘水位监控配套,否则要么证据被轮转冲掉,要么审计自己先把系统拖死。
基本信息
| 配置文件 | /etc/audit/auditd.conf |
|---|---|
| 适用平台 | Linux(auditd) |
| 风险等级 | 中 |
| 关键日志 | /var/log/audit/audit.log |
| 基线要求 | 容量与磁盘动作配置合理,并有水位监控 |
典型使用场景
- 等保或合规核查中确认审计留存期是否达标
- 审计日志把分区写满导致业务异常后的整改
- 规划日志服务器,把审计日志同时转发到远端
- 调整轮转份数前核算磁盘余量
- 排查取证时发现日志记录已缺失的问题
关键配置核查
关键配置核查
grep -E 'max_log_file|num_logs|max_log_file_action|space_left|disk_full_action' /etc/audit/auditd.conf # 查看当前策略
# 参考值:max_log_file = 50(单文件 50MB)、num_logs = 10(保留 10 份)
# max_log_file_action = ROTATE、space_left = 200(剩余 200MB 告警)、disk_full_action = SUSPEND容量核算
容量核算
du -sh /var/log/audit/ # 当前审计目录占用
df -h /var/log | tail -1 # 所在分区的剩余空间
awk -F= '/max_log_file|num_logs/ {gsub(/ /,"",$1); print $1,$2}' /etc/audit/auditd.conf # 估算单文件大小与份数的乘积配置项读法
| 配置项 | 含义 | 注意点 |
|---|---|---|
| max_log_file | 单个日志文件上限,单位 MB | 太大轮转慢,太小频繁切换 |
| num_logs | 保留的轮转份数 | 决定留存量,调大前先看分区余量 |
| max_log_file_action | 单文件写满时的动作 | ROTATE 轮转覆盖,KEEP_LOGS 不覆盖 |
| space_left | 剩余空间告警阈值 | 需配套监控采集与告警 |
| disk_full_action | 磁盘写满时的动作 | SUSPEND 暂停审计,风险最高 |
disk_full_action 设为 SUSPEND 时磁盘写满会直接停止审计,这段时间发生的操作没有任何记录,必须有磁盘水位监控兜底。
留存量要覆盖监管要求的留存期;单机容量不足时正确做法是转发到远端日志服务器,而不是把轮转份数偷偷改小。
轮转生效后 /var/log/audit/ 下应出现 audit.log.1 这类历史文件;配合 ausearch 才能回溯到指定时间段的记录,历史文件缺失说明份数不足或轮转动作配置有误。