关键不是只盯“Failed password”,而是结合journalctl日志(比/var/log/secure更全准)、lastb二进制失败日志(不受rsyslog影响)、PAM模块特定提示(如pam_faillock、pam_access拒绝)及交叉验证成功记录,精准识别暴力破解痕迹。

排查PAM认证日志识别暴力破解,关键不是只盯“Failed password”,而是理解PAM如何记录失败、哪些字段真正可信、以及哪些日志路径和工具组合最可靠。
确认日志来源与格式差异
PAM本身不直接写日志,但sshd、login等服务调用PAM模块后,会把认证结果写入系统日志。不同发行版路径不同:
- RHEL/CentOS/Fedora → 默认写入 /var/log/secure
- Ubuntu/Debian/Pop!_OS → 默认写入 /var/log/auth.log
- 若启用journald且未配置rsyslog转发,部分PAM拒绝事件可能只在 journalctl -u sshd 中出现
执行 sudo head -1 /var/log/secure 2>/dev/null || sudo head -1 /var/log/auth.log 查看首行格式,确认IP是否在第11字段(常见)、第9或第10字段(某些精简镜像),避免awk取错列。
聚焦PAM相关的失败模式,不止于“Failed password”
PAM拒绝可能不触发标准sshd日志,尤其当攻击绕过密码验证阶段(如密钥格式错误、账户锁定、策略拦截)。需同时检查:
- “pam_faillock.so”拒绝:常见于启用了faillock的系统,日志含 pam_faillock(sshd:auth): user XXX not found or not locked out 或 maximum authentication attempts exceeded
- “pam_deny.so”或“pam_access.so”拦截:出现 access denied for user XXX by access.conf 或类似提示
- “Connection closed by authenticating user”:用户在输入密码前就断开,常是扫描器试探PAM响应时间或触发异常退出
- “Invalid user” + “pam_succeed_if”失败:说明PAM做了用户名白名单校验并拒绝了非常规账户
这些记录比单纯“Failed password”更隐蔽,却更能反映真实攻击强度和策略绕过尝试。
用lastb优先提取全量失败登录指纹
/var/log/btmp 是二进制格式的专用失败日志,由PAM底层直接写入,不受rsyslog配置、日志轮转或sshd日志开关影响。它覆盖所有认证方式(SSH、console、su、sudo):
- 查最近20条失败:sudo lastb -a -n 20(-a确保显示完整IP,防hostname混淆)
- 统计某IP失败次数:sudo lastb | awk '{print $3}' | grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' | sort | uniq -c | sort -nr
- 若lastb报“No such file or directory”,先运行 sudo truncate -s 0 /var/log/btmp && sudo chmod 600 /var/log/btmp,再等下次失败自动填充
注意:lastb中IP可能被截断为域名(如“host-192-168-1-100”),务必用 -a 参数强制显示原始地址。
交叉验证是否已失守,重点查PAM放行痕迹
暴力破解最终目标是让PAM返回成功。不能只看失败,更要确认PAM有没有悄悄放过异常请求:
- 查PAM成功认证记录:sudo grep -E "(pam_unix|pam_succeed_if|pam_permit)" /var/log/secure 2>/dev/null | grep -i "authentication success" | tail -15
- 匹配可疑IP是否在失败后立即成功:sudo awk '/Failed password|Accepted/ {print $1,$2,$3,$9,$11}' /var/log/auth.log | grep -A 5 -B 5 "203\.0\.113\.50"(替换为你怀疑的IP)
- 用last -ai查看最近登录IP和终端,对比lastb -ai,若同一IP在lastb里高频失败、在last里突然出现,高度可疑
如果发现某个IP在1分钟内有12次“Invalid user”,紧接着一条“Accepted password for backup from …”,基本可判定PAM策略存在漏洞或账户已被植入。


















