新手无需通读/var/log/auth.log,重点盯住“Invalid user”“Failed password”“Permission denied (publickey)”三类关键词即可识别扫描行为;Debian/Ubuntu查/auth.log,RHEL/CentOS查/secure,需用sudo权限查看,并通过grep、awk、lastb和journalctl交叉验证攻击IP与时间分布。

新手看 /var/log/auth.log 不用从头读完,重点盯住三类关键词就能快速识别扫描行为:无效用户、密码失败、密钥拒绝。这些不是误报,而是攻击者在“试钥匙”的明确信号。
先确认日志路径和权限
Debian/Ubuntu 系统默认用 /var/log/auth.log;RHEL/CentOS 用 /var/log/secure。运行以下命令确认:
-
cat /etc/os-release | grep PRETTY_NAME看系统类型 -
ls -l /var/log/auth.log /var/log/secure 2>/dev/null看哪个文件存在且可读 - 必须用
sudo查看,例如:sudo tail -10 /var/log/auth.log
一眼识别常见扫描痕迹
直接用 grep 提取高频攻击模式,每条命令都对应一种典型行为:
-
sudo grep "Invalid user" /var/log/auth.log | tail -10—— 出现大量不同用户名(如admin、test、oracle),基本是字典扫描 -
sudo grep "Failed password" /var/log/auth.log | tail -10—— 同一 IP 在短时间内反复失败,说明在爆破已知账户 -
sudo grep "Permission denied (publickey)" /var/log/auth.log | tail -10—— 攻击者尝试用密钥登录但失败,同样属于主动探测
统计攻击源IP,快速定位重点目标
光看几条不够,要看出谁在集中打你。用这一行命令提取并排序最活跃的攻击IP:
sudo awk '/Failed password|Invalid user/ {print $11}' /var/log/auth.log | sort | uniq -c | sort -nr | head -5- 输出形如
42 203.0.113.88,表示该IP触发了42次失败尝试 - 数值超过10就值得立刻封禁;超过30大概率是自动化工具
辅助验证:别只信日志表面
有些扫描会伪装成合法流量,需交叉检查:
- 查
lastb(二进制失败记录):sudo lastb | head -10,它比grep更难被日志轮转干扰 - 看时间分布:
sudo grep "Failed password" /var/log/auth.log | awk '{print $1,$2,$3}' | sort | uniq -c | sort -nr | head -3,如果集中在某分钟内爆发,基本可断定是扫描 - 结合
journalctl补漏:sudo journalctl -u sshd --since "2 hours ago" | grep "Failed",防止某些事件没写入 auth.log


















