新手识别SSH暴力破解需紧盯/var/log/auth.log或/var/log/secure中的“Failed password”和“Invalid user”记录,用grep+awk+sort+uniq命令统计高频攻击IP,再查“Accepted”记录与last日志确认是否已失守。

新手识别SSH暴力破解来源,核心是盯住/var/log/auth.log(Ubuntu/Debian)或/var/log/secure(CentOS/RHEL)里的失败登录记录,快速定位高频攻击IP。不需要懂编程,一条命令就能筛出可疑地址。
看日志里最典型的两行线索
打开日志文件,搜索关键词就能发现攻击痕迹:
-
“Failed password”:表示密码输错,但用户名存在,比如
Failed password for root from 203.0.113.50 port 42187 ssh2 -
“Invalid user”:表示用户名根本不存在,比如
Invalid user admin from 192.168.1.100 port 54322
这两种记录大量集中出现,尤其是同一IP反复出现,基本就是暴力破解在进行。
用命令快速统计攻击源IP
不用手动翻日志,终端里运行这一行即可列出失败次数最多的IP:
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
-
$11对应日志中第11个字段,通常是源IP(注意不同系统日志格式略有差异,可先head -1 /var/log/auth.log确认字段位置) -
uniq -c统计重复次数,sort -nr按数字倒序排列,排在最上面的就是最可疑的IP - 如果某IP失败次数达20次以上,且集中在几分钟内,大概率是自动化工具在扫
别漏掉“Invalid user”的攻击线索
有些攻击者会先试探一堆常见用户名(如admin、test、ftp),这时Failed password可能不出现,但Invalid user会密集刷屏:
grep "Invalid user" /var/log/auth.log | awk '{print $8}' | sort | uniq -c | sort -nr
- 这里
$8通常是用户名字段,可配合$10或$11提取IP(视日志格式而定) - 如果看到像
admin、mysql、www这类非你创建的账户被频繁尝试,说明攻击者在扩大扫描范围
顺手检查有没有已经得手的痕迹
爆破的目的不是刷日志,而是登录成功。所以紧接着要查有没有异常的“Accepted”记录:
grep "Accepted" /var/log/auth.log | tail -20
- 重点关注非工作时间(如凌晨2–5点)、非常用IP、或root账户的成功登录
- 如果某陌生IP刚试了几十次失败,紧接着又出现一次
Accepted password for root from 203.0.113.50,那很可能已失守 - 再用
last -a | head -15看最近登录用户和来源IP,交叉验证

















