Auditd是CentOS系统自带的强制访问控制(MAC)审计工具,用于记录系统调用、文件操作、用户登录等安全事件,是日志安全审计的核心组件。
sudo yum install auditd -y。/etc/audit/auditd.conf文件,调整以下关键设置:
log_file = /var/log/audit/audit.log(默认路径,需确保磁盘空间充足);max_log_file = 8(单位:MB,超过则轮转);num_logs = 4(保留最近4个日志文件);admin_space_left_action = email(磁盘空间不足时发送邮件告警)。sudo systemctl start auditd启动服务,sudo systemctl enable auditd设置开机自动启动。审计规则决定了auditd记录哪些事件,需优先覆盖关键文件、目录、系统调用,避免记录无用信息导致性能损耗。
auditctl命令添加,例如:
/etc/passwd文件的写(w)和属性更改(a)操作:sudo auditctl -w /etc/passwd -p wa -k passwd_modify(-k为自定义标签,便于后续检索);/etc/shadow文件的读取(r)操作:sudo auditctl -w /etc/shadow -p r -k shadow_access。/etc/audit/rules.d/audit.rules文件中(CentOS 7及以上版本),例如:-w /etc/passwd -p wa -k passwd_modify
-w /etc/shadow -p r -k shadow_access
-w /var/log/secure -p wa -k auth_log # 监控认证日志文件
sudo auditctl -l可列出所有已加载的审计规则。Auditd生成的日志存储在/var/log/audit/audit.log中,需通过专用工具解析,提取有价值的事件信息。
ausearch命令按标签(-k)、用户(-ui)、时间(-ts)等条件检索,例如:
passwd_modify标签相关的事件:sudo ausearch -k passwd_modify -i(-i表示将事件ID转换为可读信息);root近7天的登录事件:sudo ausearch -ui root -ts today -te 7d。aureport命令生成各类审计报告,例如:
sudo aureport --login -ts today -te 7d(显示近7天登录成功/失败次数、用户信息);sudo aureport -f -i(显示所有文件访问事件,包括操作类型、路径、用户)。日志文件长期积累会导致磁盘空间耗尽,需通过logrotate工具定期轮转、压缩、删除旧日志。
/etc/logrotate.d/auditd文件(若不存在则创建),添加以下内容:/var/log/audit/audit.log {
daily # 每天轮转
rotate 30 # 保留30个旧日志文件
missingok # 若日志文件不存在也不报错
notifempty # 若日志为空则不轮转
compress # 压缩旧日志(节省空间)
delaycompress # 延迟压缩(保留最近一个日志文件不解压)
sharedscripts # 所有日志轮转完成后执行脚本
postrotate # 轮转后执行的命令
systemctl kill -s HUP auditd.service # 重新加载auditd配置,避免日志中断
endscript
}
sudo logrotate -vf /etc/logrotate.d/auditd可强制立即轮转,验证配置是否正确。除auditd外,可通过以下工具补充日志审计范围,提升安全性:
/var/log/messages、/var/log/secure),并转发到远程日志服务器(编辑/etc/rsyslog.conf添加*.* @remote_server_ip:514,开启UDP/TCP转发),防止本地日志被篡改。sudo lynis audit system,生成详细报告供管理员修复。安全审计需动态调整,以应对新的威胁:
/var/log/audit/audit.log或ausearch输出,关注异常事件(如频繁的/etc/passwd修改、非工作时间的登录尝试);通过以上步骤,可构建完整的CentOS日志安全审计体系,实现对系统活动的全面记录、精准分析、及时预警,有效提升系统安全性。