新手识别爆破ip需聚焦频率、用户名、时间集中度三要素:用grep提取failed password日志中倒数第4字段(源ip),排序统计top10;区分invalid user(用户枚举)与存在用户名的失败记录(真实爆破);结合时间戳确认是否短时高频;再交叉验证该ip是否有accepted成功登录记录。

新手识别爆破IP,关键不是找“所有失败记录”,而是快速筛出有攻击特征的异常IP。核心思路是:看频率、看用户名、看时间集中度,三者结合才能避开误报(比如员工输错密码)。
盯紧“Failed password”里的高频IP
暴力破解最典型的表现,就是同一IP在短时间内反复尝试登录。用这条命令直接揪出头号嫌疑IP:
- grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -10
说明:$(NF-3)能稳定提取日志中倒数第4个字段——绝大多数RHEL/CentOS系统里,它就是来源IP。排序后取前10,攻击次数过百的基本就可以重点观察了。
区分“用户枚举”和真实爆破
攻击者常先试探用户名是否存在,再集中爆破。这两类行为在日志里表现不同:
-
用户枚举:日志里出现 invalid user,比如
Failed password for invalid user admin,说明攻击者在猜用户名,IP本身可能还没开始密集爆破 - 真实爆破:日志里是 Failed password for root 或 Failed password for test 这类明确存在的用户名,且同一IP反复出现——这才是高风险目标
可单独统计这类记录:
grep "Failed password for root" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
结合时间窗口确认攻击节奏
单看总次数容易误判。比如某IP一天内失败20次,可能是运维误操作;但5分钟内失败50次,基本坐实为脚本攻击。试试这个命令看时间分布:
- grep "Failed password" /var/log/secure | awk '{print $1,$2,$3,$(NF-3)}' | head -20
它会输出“月 日 时间 IP”,一眼就能看出是否集中在几分钟内。若发现某IP在03:14:22、03:14:25、03:14:28连续出现,不用犹豫,立刻封禁。
交叉验证:看它有没有“成功过”
一个真正危险的IP,往往在大量失败后突然有一次成功登录。别只查失败记录,顺手查下它是否已得手:
- grep "Accepted" /var/log/secure | grep "192.168.1.100"(把IP换成你刚发现的可疑IP)
- 如果返回结果里有
Accepted password for root from 192.168.1.100,说明已失守,需立即响应
没查到成功记录也不代表安全——有些攻击者失败后会切换IP重试,所以高频失败IP本身已是高危信号。










