CentOS系统安全审计实施指南(聚焦message及相关日志)
CentOS的安全审计依赖auditd(审计守护进程)和rsyslog(日志服务),需确保二者正常运行:
systemctl status auditd(审计服务)、systemctl status rsyslog(日志服务)。systemctl enable auditd、systemctl enable rsyslog。systemctl start auditd、systemctl start rsyslog。通过auditd配置规则,覆盖“message”相关的关键事件(如系统消息生成、服务状态变更、用户操作):
/var/log/messages(系统内核与服务消息)、/var/log/secure(认证与授权事件)添加审计规则,记录读写操作:auditctl -w /var/log/messages -p rwxa -k system_messages # 监控messages文件的读写与执行
auditctl -w /var/log/secure -p rwxa -k secure_events # 监控secure文件的访问
sshd、httpd),可监控服务配置文件或进程:auditctl -w /usr/sbin/sshd -p x -k sshd_service # 监控sshd服务的执行
auditctl -w /etc/init.d/httpd -p rwxa -k httpd_service # 监控httpd服务的配置变更
echo写入系统日志、logger命令):auditctl -a always,exit -F path=/usr/bin/logger -F perm=x -k logger_commands # 监控logger命令
auditctl -a always,exit -F path=/bin/echo -F perm=w -k echo_to_system_logs # 监控写入系统日志的echo操作
规则保存至/etc/audit/rules.d/audit.rules(CentOS 7+)以实现永久生效。审计日志默认存储在/var/log/audit/audit.log,可使用以下工具解析:
tail -f /var/log/audit/audit.log # 实时监控新日志条目
ausearch按关键词(如key)或时间范围查询:ausearch -k system_messages # 查询与system_messages相关的事件
ausearch -ts today -k sshd_service # 查询今日sshd服务相关的事件
aureport生成汇总报告:aureport --login # 用户登录事件报告
aureport --file # 文件访问事件报告
aureport --summary # 审计事件统计摘要
type=SYSCALL:系统调用(如open、write);auid:用户身份(实际用户ID);uid:执行进程的用户ID;comm:进程名称(如sshd、bash);success:事件是否成功(yes/no)。防止攻击者篡改或删除审计日志,需采取以下措施:
chown root:root /var/log/audit/audit.log # 仅root可读写
chmod 600 /var/log/audit/audit.log # 限制权限
setenforce 1 # 临时启用SELinux
sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config # 永久启用
logrotate配置日志轮转(避免日志过大),并通过rsync或日志服务器(如ELK)备份到异地:vi /etc/logrotate.d/auditd # 编辑auditd日志轮转规则(如保留30天日志)
示例logrotate配置:/var/log/audit/audit.log {
daily
rotate 30
compress
missingok
notifempty
create 600 root root
}
cron定期执行审计脚本(如检查审计服务状态、日志文件大小):crontab -e
# 添加每日0点检查审计服务的任务
0 0 * * * systemctl is-active --quiet auditd || systemctl start auditd
fail2ban或自定义脚本监控审计日志中的异常事件(如频繁的登录失败、未授权的文件修改),触发邮件或短信报警:# 示例:监控secure文件中的失败登录尝试
ausearch -k secure_events | grep "Failed password" | mail -s "SSH Failed Login Alert" admin@example.com
通过以上步骤,可实现对CentOS系统“message”及相关安全事件的全面审计,满足安全合规(如等保)要求,并及时发现潜在威胁。