温馨提示×

如何利用centos日志监控安全事件

小樊
45
2025-12-07 17:32:18
栏目: 智能运维

CentOS 日志监控安全事件实操指南

一 关键日志与定位

  • 优先关注以下日志源:/var/log/secure(认证与授权,如 SSH 登录)、/var/log/messages(系统与服务消息)、/var/log/audit/audit.log(内核与系统调用审计,需启用 auditd)、/var/log/wtmp(登录/注销历史,用 last 读取)、以及服务日志如 /var/log/httpd//var/log/nginx/
  • 快速查看与过滤:
    • 实时查看 SSH 登录日志:journalctl -u sshd -f
    • 过滤认证失败:grep ‘failed’ /var/log/secure
    • 登录历史与来源:last -f /var/log/wtmp
      这些文件与命令覆盖了大多数常见安全事件的第一手证据来源。

二 本地实时监测与告警

  • 认证失败与爆破识别:统计失败登录的 IP 与次数
    • 命令:grep “Failed password for” /var/log/secure | awk ‘{print $11}’ | sort | uniq -c | sort -nr
  • 实时跟踪关键日志:
    • SSH 实时:journalctl -u sshd -f
    • 系统消息实时:tail -f /var/log/messages
  • 周期性巡检脚本(示例:每 5 分钟统计一次失败登录并输出前 10 个来源 IP)
    • 脚本:
      #!/usr/bin/env bash
      LOG=/var/log/secure
      OUT=/var/log/failed_ssh_top10.log
      ts=$(date '+%F %T')
      echo "[$ts] Top 10 failed SSH sources:" > "$OUT"
      grep "Failed password for" "$LOG" 2>/dev/null \
        | awk '{print $11}' \
        | sort | uniq -c | sort -nr | head -10 >> "$OUT"
      
    • 定时任务:执行 crontab -e,加入
      • */5 * * * * /usr/bin/bash /root/ssh_failed_top10.sh
        以上方法能在本地快速发现异常登录与暴力破解迹象。

三 集中化与可视化

  • 远程日志汇聚(Syslog 到日志服务器):
    • 在服务端启用 UDP/TCP 514:编辑 /etc/rsyslog.conf,取消注释并配置
      • module(load=“imudp”) input(type=“imudp” port=“514”)
      • module(load=“imtcp”) input(type=“imtcp” port=“514”)
    • 在客户端发送所有日志:echo “. @LOG_SERVER_IP” >> /etc/rsyslog.d/remote.conf
    • 重启服务:systemctl restart rsyslog
  • 集中分析与可视化:部署 ELK Stack(Elasticsearch + Logstash + Kibana)Splunk,对 /var/log/secure、/var/log/messages、/var/log/audit/audit.log 等进行采集、索引、搜索与仪表盘展示,便于 7×24 监测与溯源。

四 启用审计审计关键文件与命令

  • 安装与启动:
    • 安装:sudo yum install -y audit audit-libs
    • 启动:sudo systemctl start auditd && sudo systemctl enable auditd
  • 常用审计规则(写入 /etc/audit/rules.d/audit.rules/etc/audit/rules.d/myrules.rules):
    • 监控关键账户文件:-w /etc/passwd -p wa -k passwd_changes
    • 监控 sudo 使用:-a always,exit -F path=/usr/bin/sudo -F perm=x -k sudo_usage
    • 监控 SSH 关键目录:-w /var/log/secure -p wa -k sshd_log
  • 使规则生效并查询:
    • 重载:sudo augenrules --load(或重启 auditd)
    • 查询某文件相关事件:sudo ausearch -f /etc/passwd
      审计日志默认位于 /var/log/audit/audit.log,可精细还原关键文件访问与提权行为。

五 日志轮转与加固

  • 日志轮转:使用 logrotate 管理 /var/log/secure、/var/log/messages、/var/log/audit/audit.log 等,控制单文件大小与保留周期,防止磁盘被占满并便于取证。
  • 访问控制与完整性:
    • 限制日志文件访问权限,仅允许 root 与必要的系统账户读取;
    • 启用 SELinuxAppArmor 对日志与关键目录实施最小权限策略;
    • 定期更新系统与组件,降低已知漏洞被利用的风险。
      这些措施能提升日志的可用性与抗篡改能力,保障长期可审计性。

0