温馨提示×

centos message如何进行安全审计

小樊
47
2025-10-26 02:54:55
栏目: 智能运维

CentOS系统安全审计实施指南(聚焦message及相关日志)

一、启用核心审计服务

CentOS的安全审计依赖auditd(审计守护进程)和rsyslog(日志服务),需确保二者正常运行:

  • 检查服务状态systemctl status auditd(审计服务)、systemctl status rsyslog(日志服务)。
  • 设置开机自启systemctl enable auditdsystemctl enable rsyslog
  • 启动服务systemctl start auditdsystemctl start rsyslog

二、配置详细审计规则

通过auditd配置规则,覆盖“message”相关的关键事件(如系统消息生成、服务状态变更、用户操作):

  1. 监控系统日志文件
    /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文件的访问
    
  2. 监控关键服务状态变更
    若“message”涉及服务启动/停止(如sshdhttpd),可监控服务配置文件或进程:
    auditctl -w /usr/sbin/sshd -p x -k sshd_service        # 监控sshd服务的执行
    auditctl -w /etc/init.d/httpd -p rwxa -k httpd_service # 监控httpd服务的配置变更
    
  3. 监控用户操作
    记录用户执行的“message”相关命令(如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,可使用以下工具解析:

  1. 实时查看日志
    tail -f /var/log/audit/audit.log  # 实时监控新日志条目
    
  2. 查询特定事件
    • 使用ausearch按关键词(如key)或时间范围查询:
      ausearch -k system_messages       # 查询与system_messages相关的事件
      ausearch -ts today -k sshd_service # 查询今日sshd服务相关的事件
      
    • 使用aureport生成汇总报告:
      aureport --login                  # 用户登录事件报告
      aureport --file                   # 文件访问事件报告
      aureport --summary                # 审计事件统计摘要
      
    日志条目关键字段说明:
    • type=SYSCALL:系统调用(如openwrite);
    • auid:用户身份(实际用户ID);
    • uid:执行进程的用户ID;
    • comm:进程名称(如sshdbash);
    • success:事件是否成功(yes/no)。

四、保护审计日志完整性

防止攻击者篡改或删除审计日志,需采取以下措施:

  1. 设置日志文件权限
    chown root:root /var/log/audit/audit.log  # 仅root可读写
    chmod 600 /var/log/audit/audit.log        # 限制权限
    
  2. 启用SELinux
    SELinux提供强制访问控制,防止未授权进程访问审计日志:
    setenforce 1                            # 临时启用SELinux
    sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config  # 永久启用
    
  3. 日志备份与异地存储
    使用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
    }
    

五、定期审计与监控

  1. 自动化审计检查
    使用cron定期执行审计脚本(如检查审计服务状态、日志文件大小):
    crontab -e
    # 添加每日0点检查审计服务的任务
    0 0 * * * systemctl is-active --quiet auditd || systemctl start auditd
    
  2. 设置报警阈值
    通过fail2ban或自定义脚本监控审计日志中的异常事件(如频繁的登录失败、未授权的文件修改),触发邮件或短信报警:
    # 示例:监控secure文件中的失败登录尝试
    ausearch -k secure_events | grep "Failed password" | mail -s "SSH Failed Login Alert" admin@example.com
    

通过以上步骤,可实现对CentOS系统“message”及相关安全事件的全面审计,满足安全合规(如等保)要求,并及时发现潜在威胁。

0