每分钟遭受上百次 SSH 异常登录:一次日志观察
无意间翻了下服务器的 SSHD 日志,发现异常登录的频率比我想象的要高。截取的这段记录,足够反映一次典型的自动化扫描行为,从来源、方式到特征,都有迹可循。
... ...
17:10:03: Invalid user test from 139.59.0.116 port 56962
17:10:03: Connection closed by invalid user test 139.59.0.116 port 56962 [preauth]
17:10:04: Invalid user pi from 139.59.0.116 port 56968
17:10:04: Connection closed by invalid user pi 139.59.0.116 port 56968 [preauth]
17:10:06: Invalid user cs2 from 139.59.0.116 port 56984
17:10:06: Connection closed by invalid user cs2 139.59.0.116 port 56984 [preauth]
17:10:07: Invalid user kali from 139.59.0.116 port 56994
17:10:08: Connection closed by invalid user kali 139.59.0.116 port 56994 [preauth]
17:10:09: Invalid user esuser from 139.59.0.116 port 56996
17:10:09: Connection closed by invalid user esuser 139.59.0.116 port 56996 [preauth]
... ...攻击来源
日志显示,多数尝试来自一个 IP:139.59.0.116。它的活跃度明显高于其他来源,占了绝大部分登录尝试。除此之外,还有几个零散的 IP:217.154.69.208、164.92.153.1、45.148.10.151、167.99.214.41、203.146.127.165 等。结合它们的注册信息,这些大多是海外云服务节点。换句话说,这并非针对我个人的精准攻击,而是广泛扫描的一部分。
攻击方式
从日志可以看到几种行为模式。攻击者会尝试各种无效用户名:test、root、pi、kali、ubuntu、minecraft、postgres 等。用户名覆盖了系统默认账户、开发工具账户,以及开源应用默认账户。几乎每秒都有尝试,而且端口不断变化,显示扫描脚本在快速轮询,目标显然是找到弱口令或者默认账户。
服务器已有配置禁止 root 登录,日志里 not allowed because listed in DenyUsers 多次出现。尽管如此,攻击者并没有停手,依旧尝试 root 和其他敏感账户。每次连接都很短暂,几乎立即关闭,说明脚本不会维持长连接,而是快速轮询尝试。
攻击特征
自动化特征非常明显:同一 IP 两分钟就有上百次登录尝试,用户名覆盖广泛,端口随机化。多个零散 IP 的存在,也显示出一定分布式趋势。整体来看,这是一种暴力穷举的行为,而非精确的渗透行动。攻击者的目标很清楚:寻找容易突破的账户,可能用于部署恶意软件、挖矿或僵尸网络。
分析与观察
从日志可以推测,攻击者很可能使用海外云服务租用或被控制的节点。他们不针对特定目标,而是在互联网范围内寻找易受攻击的服务器。攻击者意图明显:弱密码和默认账户是入口。
无论如何,这类日志提醒我们,服务器安全必须持续关注:禁止弱账户、限制登录尝试、强化认证。偶尔翻日志,像这次一样,会发现许多被忽略的风险信号。