识别暴力破解行为需聚焦auth.log或secure中的“失败—成功”节奏和IP聚集性:同一IP短时高频失败(如5分钟内超10次)或失败后立即成功即为高危信号,须结合历史日志与基线对比分析。

识别暴力破解行为,关键不是翻遍所有日志,而是盯住认证日志里的“失败—成功”节奏和IP聚集性。Syslog 本身不直接检测攻击,但它把每次登录尝试都忠实地记下来,只要你会读,线索就藏在每一行里。
盯紧 auth.log 或 secure 这两个核心日志文件
Debian/Ubuntu 系统默认把 SSH 登录事件记在 /var/log/auth.log;RHEL/CentOS/Fedora 则写入 /var/log/secure。这是分析暴力破解的第一现场,其他日志(如 syslog、messages)只作辅助验证。
典型失败记录长这样:
Jul 8 03:22:17 server sshd[19842]: Failed password for root from 203.0.113.45 port 56789 ssh2
典型成功记录是:
Jul 8 03:23:02 server sshd[19845]: Accepted password for admin from 203.0.113.45 port 56791 ssh2
- 失败记录中,“Failed password”后面紧跟的 IP 地址,就是重点监控对象
- 同一 IP 在短时间(比如 5 分钟内)出现 10 次以上失败,基本可判定为扫描或爆破
- 如果某 IP 先密集失败,紧接着出现一次成功,极大概率已被攻破——要立刻响应
用命令快速筛出可疑 IP
不用打开文件逐行看,一条命令就能揪出高频攻击者:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 统计失败次数最多的前 5 个 IP:
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -5 - 查某个 IP 的全部登录行为(含成功与失败):
grep "203.0.113.45" /var/log/auth.log | grep -E "(Failed|Accepted)" - 找“失败后立刻成功”的组合(高危信号):
awk '/Failed password/{ip=$(NF-3); fail[ip]++} /Accepted password/{ip=$(NF-3); acc[ip]++} END{for (i in fail) if (acc[i]) print i, fail[i], acc[i]}' /var/log/auth.log
注意伪装和绕过行为
攻击者未必只走标准 SSH 路径。Syslog 记录会暴露更多入口:
- PAM 认证失败也记在 auth.log 里,比如 authentication failure,可能来自 su、sudo、图形登录等
- 查看是否有人用无效用户名爆破:grep "invalid user" /var/log/auth.log —— 这比针对 root 的爆破更隐蔽、更常见
- 检查是否有异常的登录来源:比如从内部网段(10.x、192.168.x)来的 root 登录,但该网段本不该有管理权限
- 留意时间异常:凌晨 2–4 点集中出现的登录尝试,尤其是跨时区 IP,值得标记
别只看当前日志,结合时间维度判断
Syslog 默认按天轮转,/var/log/auth.log.1、auth.log.2.gz 里可能藏着前几天的攻击痕迹。暴力破解常是持续数天的试探过程。
- 查压缩日志里的失败记录:
zgrep "Failed password" /var/log/auth.log.*.gz | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -3 - 用 journalctl 查 systemd 环境下的完整 SSH 行为:
journalctl -u sshd --since "3 days ago" | grep -E "(Failed|Accepted)" - 对比历史基线:如果平时每天失败登录不到 5 次,今天突然飙到 200+,哪怕没成功,也说明系统已被盯上

















