服务器审计日志需构建闭环机制:先启动auditd服务,再配置关键文件与行为监控规则,用ausearch/aureport解析分析,最后调优auditd.conf防磁盘占满。

服务器审计日志不是“开了就行”的开关,而是需要明确监控目标、合理配置规则、持续分析验证的一套闭环机制。核心在于用最小开销捕获最关键行为,让日志真正可查、可溯、可用。
auditd服务必须先跑起来
服务没启动,再好的规则也等于零。不同系统安装命令略有差异,但验证逻辑一致:
- Ubuntu/Debian:
sudo apt install auditd audispd-plugins,然后sudo systemctl start auditd && sudo systemctl enable auditd - CentOS/RHEL:
sudo yum install audit audit-libs(7)或sudo dnf install audit audit-libs(8+),同样执行启停与开机自启 - 运行
sudo systemctl status auditd,确认输出中含active (running)且Main PID正常,才算基础就绪
关键文件和行为要加“盯梢”规则
默认auditd不记录任何具体事件,必须手动添加规则。优先保护以下三类目标:
-
身份凭证类:如
-w /etc/passwd -p wa -k identity、-w /etc/shadow -p wa -k identity,监控写入和属性变更 -
权限控制类:如
-w /etc/sudoers -p wa -k privileged-actions、-w /var/log/audit/ -p wa -k audit-log-access -
高危操作类:如
-a always,exit -F arch=b64 -S execve -S unlink -S rmdir -k suspicious-exec,捕获程序执行与删文件动作
规则建议统一写入/etc/audit/rules.d/audit.rules,再执行sudo augenrules --load使其永久生效,避免重启丢失。
日志不能堆着不管,得能快速定位问题
原始日志/var/log/audit/audit.log是二进制结构,直接cat几乎不可读。必须用专用工具解析:
- 查某用户所有操作:
sudo ausearch -u username - 查某关键词触发的事件(比如之前设的
-k identity):sudo ausearch -k identity - 查某时间段内的登录行为:
sudo ausearch --start today --event login - 生成统计报告:
sudo aureport --login --summary或sudo aureport -f --summary看文件访问汇总
别让日志自己撑爆磁盘
auditd默认配置极易导致/var/log/audit/占满空间。必须提前调优/etc/audit/auditd.conf:
-
max_log_file = 50:单个日志上限设为50MB,防突发写入失控 -
num_logs = 10:保留最多10个轮转日志,兼顾追溯与空间 -
max_log_file_action = ROTATE:到上限自动轮转,不暂停记录 -
space_left = 100和admin_space_left = 50:分别设警告与紧急阈值(单位MB),配合disk_full_action = SYSLOG发通知

















