应先确认系统发行版再查对应日志:Debian/Ubuntu查/var/log/auth.log,RHEL/CentOS/Fedora查/var/log/secure;需用sudo权限查看,并通过cat /etc/os-release和ls命令验证路径与可读性。

查/var/log/auth.log还是/secure?先确认路径和权限
Debian/Ubuntu 系统日志在 /var/log/auth.log,RHEL/CentOS/Fedora 在 /var/log/secure。别猜,直接运行:cat /etc/os-release | grep PRETTY_NAME 看系统类型,再用 sudo ls -l /var/log/auth.log /var/log/secure 2>/dev/null 确认哪个文件存在且非空。
必须加 sudo 才能读,否则会提示 Permission denied。
grep "Invalid user" 为什么总漏掉关键IP?
单纯 grep "Invalid user" 容易被干扰:日志行里可能含大小写混写(如 invalid user)、前后有空格或换行截断,还可能被日志轮转切到旧文件(如 auth.log.1.gz)。
实操建议:
• 加 -i 忽略大小写:sudo grep -i "invalid user" /var/log/auth.log
• 检查压缩归档:zgrep -i "invalid user" /var/log/auth.log.*.gz 2>/dev/null | head -5
• 字段提取要稳:用 awk 定位第11字段(IPv4)或第12字段(IPv6),避免靠空格数错列:sudo awk '/Invalid user|invalid user/ {print $(NF-1)}' /var/log/auth.log | sort | uniq -c | sort -nr | head -5
统计出的IP频次多少才算危险?
数值不是绝对的,但可作快速阈值参考:
• 超过 10 次:值得记录并观察是否持续出现
• 超过 30 次:极大概率是自动化扫描器(如 Hydra、Medusa),建议立刻封禁
• 单IP在 5 分钟内触发 5+ 次:基本可判定为暴力探测,非人工行为
注意:如果同一IP反复出现,但用户名高度集中(如只试 admin、root、test),比随机扫100个名字更可疑——说明它在验证已知弱口令模式,而非纯字典爆破。
只看Invalid user够不够?必须交叉验证的三处
Invalid user 是强信号,但单独依赖它会漏掉完整攻击链:
• 对应的 Failed password 行是否存在?若某IP先试 Invalid user oracle,紧接着又试 Failed password for root,说明它已掌握部分账户信息,风险等级跃升
• 查 lastb(二进制失败记录):sudo lastb -i | head -10,它不依赖文本日志,难被覆盖,且时间精度更高
• 检查该IP是否已在 sshd 连接日志中留下其他痕迹:sudo journalctl -u sshd --since "2 hours ago" | grep "203.0.113.88"(替换为目标IP),看是否有 Connection closed 或密钥拒绝记录
真正麻烦的不是“大量 Invalid user”,而是这些请求背后没有失败密码日志、没有登录成功记录、却持续调用 sshd 子进程——这往往意味着攻击者在试探 SSH 版本漏洞或 PAM 配置缺陷,而不是单纯爆破。这种行为不会出现在 auth.log 的常规关键词里,得靠 journalctl -u sshd -o verbose 看原始消息字段才能捕获。











