CentOS系统安全审计实施指南(聚焦message及相关日志)
在开展安全审计前,需先强化系统基础安全,降低审计环境自身的风险:
setenforce 1临时启用,修改/etc/selinux/config中SELINUX=enforcing永久生效;若出现SELinux拒绝事件,可通过audit2allow生成自定义策略模块修复。firewalld限制对审计服务(如auditd的默认端口16161)和日志文件的访问,仅允许可信IP访问。例如,添加规则firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="16161" protocol="tcp" accept',然后firewall-cmd --reload。auditd、rsyslog),通过yum list installed检查并移除无用软件,减少潜在攻击面。auditd是CentOS官方提供的审计框架,专门用于收集、存储和分析安全相关事件(包括message日志中的关键操作):
sudo yum install auditd安装,启动服务并设置开机自启:sudo systemctl start auditd && sudo systemctl enable auditd。auditctl命令定义需监控的事件,常见场景包括:
/var/log/messages文件的读写操作(防止日志被篡改):sudo auditctl -w /var/log/messages -p rwxa -k log_message_modify;secure日志):sudo auditctl -w /var/log/secure -p rwxa -k user_login;execve,用于检测恶意程序执行):sudo auditctl -a always,exit -F arch=b64 -S execve -k system_exec。/etc/audit/rules.d/audit.rules(CentOS 7+),避免重启失效。例如添加-w /var/log/messages -p rwxa -k log_message_modify。审计日志的存储、轮转和分析是发现安全问题的关键:
logrotate防止日志文件过大,编辑/etc/logrotate.d/syslog(包含messages日志),设置按天轮转并保留30天:/var/log/messages {
daily
rotate 30
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
systemctl kill -s HUP rsyslog.service
endscript
}
```。
ausearch查询特定事件(如查找passwd文件修改记录):sudo ausearch -k passwd_change;使用aureport生成汇总报告(如每日登录报告):sudo aureport --login -ts today -te now。ELK Stack(Elasticsearch+Logstash+Kibana)实现日志集中化存储、实时搜索和可视化,适合大规模系统;或使用Logwatch自动生成每日日志摘要(邮件发送):sudo yum install logwatch && sudo systemctl enable logwatch。grep "error" /var/log/messages快速定位系统错误;结合auditd监控其修改行为,防止日志篡改。grep "Failed password" /var/log/secure检测暴力破解;将其纳入auditd监控,确保日志完整性。auditd规则是否覆盖关键事件(如新增服务、文件),调整规则以适应系统变化;审查日志分析报告,关注异常事件(如频繁的/etc/passwd修改、非工作时间的登录)。fail2ban设置阈值报警(如SSH失败次数超过3次,自动封禁IP),或使用auditd的-m选项发送邮件通知(需配置邮件服务)。通过以上步骤,可实现对CentOS系统message及相关日志的全面安全审计,及时发现并应对潜在威胁。