服务器系统日志分析技巧,快速捕获入侵行为
服务器被入侵后,系统日志往往留下最直接的证据。
本文面向零基础运维,教你如何通过分析 Linux 系统日志,在几分钟内定位异常登录、提权操作和恶意进程,快速捕获入侵行为。
先认识几个关键日志文件
Linux 系统日志主要存放在 /var/log 目录下。
不同发行版略有差异,但以下文件在 CentOS、Ubuntu、Debian 中基本通用:
/var/log/secure:记录认证和授权信息,包括 SSH 登录、su/sudo 提权。RedHat 系重点看这个。/var/log/auth.log:Debian/Ubuntu 系的认证日志,作用同secure。/var/log/wtmp:记录所有成功登录的用户和来源 IP,用last命令读取。/var/log/btmp:记录失败登录尝试,用lastb命令读取。/var/log/cron:定时任务执行记录,入侵者常利用 cron 持久化。/var/log/syslog或/var/log/messages:系统综合日志,包含服务启动、内核消息等。
如果日志被清理或轮转,可以检查 /var/log/ 下是否有 .1、.gz 等归档文件,用 zcat 或 zgrep 查看。
快速筛选异常登录行为
第一步:查看失败登录次数最多的 IP。 暴力破解是最常见的入侵入口。
# Debian/Ubuntu 系统
sudo grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -20
# CentOS/RedHat 系统
sudo grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -20
如果某个 IP 失败次数超过 100 次,基本可以判定为恶意扫描。
立即用防火墙封禁该 IP。