Linux怎么排查SSH爆破攻击并查看当前受到攻击的次数

冬丽姑娘_7761

冬丽姑娘_7761

2026-11-04

491人浏览

原创

SSH爆破攻击应直接分析/var/log/auth.log或/var/log/secure,用grep "Failed password"提取失败记录,以awk '{print $11}'或awk -F'from ' '{print $2}' | awk '{print $1}'提取源IP,结合时间过滤(如最近10分钟)统计活跃攻击,lastb因信息不全不可靠。

linux怎么排查ssh爆破攻击并查看当前受到攻击的次数

直接看日志统计,别等报警——SSH爆破攻击的次数和IP就在 /var/log/auth.log 或 /var/log/secure 里,实时可查,5秒内就能定位主力攻击源。

查失败登录记录用 grep "Failed password" 而不是 lastb

虽然 lastb 看起来方便,但它只读 /var/log/btmp,而这个文件默认不记录完整 IP(尤其在某些发行版或日志轮转后),且无法区分 root 和普通用户尝试。真正可靠、带完整上下文的日志来源是 SSH 守护进程写入的系统认证日志:

  • /var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(RHEL/CentOS)才是权威源头,每条记录含时间、用户名、源 IP、端口、协议版本
  • 攻击者用 Hydra 或 Medusa 扫描时,Failed password for root 和 Failed password for invalid user admin 会密集出现,grep "Failed password" 能一次捕获全部
  • 注意:如果服务器启用了 UsePAM yes 且配置了其他认证模块,部分失败可能走 PAM 日志路径,但绝大多数暴力破解仍落在 sshd 自己写的日志行里

按 IP 统计攻击次数必须用 awk '{print $11}',别信 $9 或 $10

日志字段位置不是固定的,取决于时间格式和系统 locale。在多数标准配置下,源 IP 稳定出现在第 11 列(空格分隔),但以下情况会偏移:

  • 如果日志开头是 Oct 2 05:18:22(双空格分隔月份和日期),字段索引不变;如果是 2026-10-02T05:18:22(ISO 格式),则 IP 通常在第 12 或 13 列
  • 更稳妥的做法是用 awk -F'from ' '{print $2}' | awk '{print $1}' 提取 from 后第一个单词,绕过列数依赖
  • 执行前先用 sudo head -3 /var/log/auth.log | grep "Failed password" 看一眼实际结构,再决定切哪一列

查“当前”受攻次数得加时间过滤,否则统计的是历史总量

不做时间限制的 grep | wc -l 只反映累计失败数,对判断“此刻是否正在被扫”毫无意义。真实应急中要盯的是活跃攻击窗口:

Linux Security Scanner
Linux Security Scanner

Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

下载
  • 查最近 10 分钟:sudo grep "Failed password" /var/log/auth.log | awk -v d="$(date -d '10 minutes ago' '+%b %d %H:%M')" '$0 > d' | wc -l
  • 查最近 1 小时内攻击最猛的 IP:sudo grep "Failed password" /var/log/auth.log | awk -v d="$(date -d '1 hour ago' '+%b %d %H:%M')" '$0 > d' | awk '{print $11}' | sort | uniq -c | sort -nr | head -5
  • 注意:date 命令输出格式需与日志前缀严格一致(如日志是 Oct 2,不能用 %m;有空格补零就用 %d 而非 %-d)

lastb 只能当辅助,千万别用它替代日志分析

lastb 本质是二进制 /var/log/btmp 的解析器,优点是快、不依赖文本格式;缺点是信息极简、无时间精度(只到分钟)、不记录用户名是否为无效用户(invalid user 类攻击会被合并归类),而且:

  • 一旦执行过 sudo truncate -s 0 /var/log/btmp(有人误操作清空),所有记录即丢失,不可恢复
  • 云服务器若启用日志集中采集(如 rsyslog + ELK),btmp 不会上报,而 auth.log 会
  • 想确认某个 IP 是否还在连,ss -tuln | grep ':22' | grep '192.168.1.100' 比翻 lastb 更直接——ESTABLISHED 连接说明正卡在密码输入环节

真正关键的不是“总共有多少次”,而是“哪个 IP 在最近 5 分钟内试了 47 次 root 密码,且还没被 fail2ban 封”。字段偏移、时间格式、日志轮转压缩(.gz 文件)这些细节,漏掉一个,查出来的数字就可能是错的。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4390

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3693

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2953

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

7310

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6942

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3973

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3465

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3699

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习