温馨提示×

CentOS日志中的安全信息如何解读

小樊
45
2026-01-02 06:39:38
栏目: 智能运维

CentOS 安全日志解读与排查实操

一 核心日志文件与用途

  • 认证与授权:/var/log/secure(记录 SSH 登录、sudo 提权等)
  • 系统与服务:/var/log/messages(内核与多数服务的通用日志)
  • 审计子系统:/var/log/audit/audit.log(仅当启用 auditd 时有内容,细粒度系统调用与策略审计)
  • 登录与会话:/var/log/wtmp、/var/log/btmp、/var/run/utmp(配合 last、lastb、who/w/uptime 查看当前与历史会话)
  • Web 服务:/var/log/httpd/access_log、/var/log/httpd/error_log/var/log/nginx/access.log、/var/log/nginx/error.log
  • 计划任务:/var/log/cron(crond 执行与报错)
  • 邮件服务:/var/log/maillog
  • 说明:在 CentOS 7+ 可用 journalctl 统一查询(如:journalctl -u sshd);传统 syslog 日志由 rsyslog 管理(配置于 /etc/rsyslog.conf/etc/rsyslog.d/)。

二 快速定位安全事件的命令

  • 实时监控 SSH 认证:journalctl -u sshd -f
  • 搜索登录失败:grep ‘Failed password’ /var/log/secure
  • 统计失败来源 IP 与次数:
    • 失败密码:awk ‘/Failed password for/ {print $11}’ /var/log/secure | sort | uniq -c | sort -nr
    • 无效用户:awk ‘/Failed password for invalid user/ {print $13}’ /var/log/secure | sort | uniq -c | sort -nr
  • 查看最近成功/失败登录:last -n 20;lastb -n 20
  • 查看当前登录用户:who / w / users
  • 查看历史登录概况:lastlog
  • Web 侧高频 404/可疑路径:awk ‘{print $1}’ /var/log/nginx/access.log | sort | uniq -c | sort -nr;grep -E ‘(/wp-admin|/shell|.env|.bak)’ /var/log/nginx/access.log

三 日志字段与典型模式解读

  • Syslog 通用结构:PRI(Facility+ Severity)、HEADER(时间戳 + 主机名)、MESSAGE(TAG[PID]: 正文)。例如:
    • 示例:Oct 9 22:33:20 hlfedora auditd[1787]: The audit daemon is exiting.
    • 含义:Facility=daemon、Severity=info、进程=auditd、PID=1787,表示审计守护进程退出事件。
  • SSH 认证日志要点(/var/log/secure 或 journalctl -u sshd)
    • 成功密钥登录:Accepted publickey for <用户> from port <端口> ssh2
    • 失败密码(含无效用户):Failed password for <用户|invalid user> from port <端口> ssh2
    • 含义:从 对 <用户> 发起认证,结果“接受/拒绝”一目了然,便于统计与封禁。
  • Web 访问日志要点(以 Nginx/Apache 常见 Combined 格式为例)
    • 字段:客户端 IP、身份(通常为 -)、认证用户(- 或用户名)、时间、请求行、状态码、响应大小、Referer、User-Agent
    • 含义:如 404 高频可指示扫描探测;5xx 指示服务异常;异常的 User-Agent/Referer 可指示爬虫或资产测绘平台。

四 常见攻击信号与处置建议

  • 暴力破解 SSH
    • 信号:短时间内大量 “Failed password for root” 或 “invalid user”,来源 IP 多变或集中。
    • 处置:启用 Fail2ban 自动封禁;限制 root 远程登录(PermitRootLogin no);改用密钥登录并禁用密码;变更 SSH 端口仅作为“低优先级”辅助手段。
  • 可疑提权与横向移动
    • 信号:/var/log/secure 中大量 sudo 成功记录,或来自非常规终端/用户的提权行为。
    • 处置:审计 sudoers 与命令审计;收敛 sudo 权限;开启命令审计(auditd)回溯关键操作。
  • Web 扫描与探测
    • 信号:Nginx/Apache 访问日志中出现大量 404 指向 /wp-admin、/.env、/.git、/shell、/phpinfo.php 等;User-Agent 含 Shodan/Zoomeye/Censys/FOFA/IVRE 等特征;Referer 指向 shodan.io、zoomeye.org、search.censys.io、fofa.info 等。
    • 处置:WAF/IPS 规则拦截;限制敏感路径访问;隐藏版本信息;对异常 UA/来源 IP 限流或封禁。
  • 审计与取证
    • 信号:/var/log/audit/audit.log 中出现异常系统调用(如大量文件读写/执行、权限修改、网络连接)或策略违规。
    • 处置:保存现场(当前日志与关键文件快照);结合 auditd 规则回溯;必要时离线分析。

五 日志加固与运维要点

  • 集中与备份:在 rsyslog 中启用 UDP/TCP 514 将日志转发至远程日志服务器(如:. @<Syslog_Server_IP>),避免本地被清空;定期校验与归档。
  • 保留与轮转:使用 logrotate(配置于 /etc/logrotate.conf/etc/logrotate.d/)控制保留周期与压缩归档,防止磁盘被占满。
  • 访问控制与完整性:限制对 /var/log/ 的写权限,仅授权必要账户;启用 SELinux/AppArmor 保护日志文件与关键进程。
  • 可用性与告警:部署 ELK Stack(Elasticsearch/Logstash/Kibana)Splunk 做检索、可视化与阈值告警;结合 Logwatch 做日报摘要。
  • 审计能力:启用并保持 auditd 运行,按需配置规则以覆盖认证、sudo、关键目录与敏感命令的审计。

0