新手可从/var/log/auth.log或/var/log/secure入手,聚焦“failed password”关键词筛选爆破痕迹,按ip、用户名、端口变化量化分析攻击强度,并交叉验证“accepted password”确认是否已失守。

新手可以从 /var/log/auth.log(Ubuntu/Debian)或 /var/log/secure(CentOS/RHEL)入手,聚焦几个关键线索,不用看全篇日志就能快速判断是否正在被爆破、用什么方式、谁在干。
盯住“Failed password”这行关键词
这是SSH爆破最直接的信号。执行这条命令就能筛出来:
grep "Failed password" /var/log/auth.log | head -20
看到类似这样的记录,基本可以确认是暴力破解:
May 1 12:45:22 server sshd[1892]: Failed password for root from 203.124.56.78 port 52102 ssh2
重点看三点:
- 用户名:是不是 root、admin、test、hello 这类高频试探名
- IP地址:同一IP反复出现,且时间间隔短(比如每2–5秒一条)
- 端口变化:每次连接的port数字不同,说明攻击者在复用连接池,不是手动输密码
统计攻击源IP和频率
光看几条不够,要量化判断强度。用下面命令快速汇总攻击最猛的前5个IP:
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | head -5
输出类似:
472 192.168.200.2
189 203.124.56.78
93 114.115.116.117
如果单个IP失败次数超过50次/分钟,基本就是自动化工具在跑;超过200次,大概率已启用字典+多线程组合爆破。
顺藤摸瓜查用户名字典特征
攻击者不会乱试,他们有固定套路。提取所有被尝试过的用户名,能反推出他们针对哪类环境:
grep "Failed password" /var/log/auth.log | perl -ne'print "$1\n" if /for (.*?) from/' | sort | uniq -c | sort -nr | head -10
常见结果包括:
- root:默认超级账户,必试项
- test、test1、test3:指向开发测试服务器
- admin、administrator:混用Windows思维的攻击者
- hello、guest、demo:轻量级设备或IoT固件常见默认账号
看到这类组合,就知道对方不是随机扫,而是有备而来。
交叉验证有没有成功登录
爆破只是手段,登进去才算真正危险。立刻检查有没有“Accepted”记录:
grep "Accepted password" /var/log/auth.log | tail -10
如果发现某IP在大量失败后突然出现一条Accepted,尤其用户名还是root或低权限账号,必须立即封IP、改密、查操作历史——极可能已被控制。
注意:有些攻击者会先爆破一个普通账号(如www),再用它提权或横向移动,所以不能只盯着root。










