在这个“万物互联”的时代,只要你的服务器拥有公网 IP 并且开启了 SSH 端口,那么毫无疑问,你已经成为黑客脚本眼中的猎物。

最近我也检查了一台挂在网上很久的小服务器,日志里的数据让人触目惊心,但同时也验证了一个极其有效的安全防护方案。今天就借着这第一手的数据,跟大家聊聊如何低成本、高效率地保护好你的 VPS。

🛡️ 防御三板斧:我的部署方案

在展示数据之前,先交代一下这台服务器的安全配置。这也是我推荐给所有新手博主的“标配”方案:

  1. 修改默认端口:将 SSH 端口从 22 改为了 22222。虽然这属于“隐匿式安全”,但不能直接过滤掉大量针对默认端口的低级全网扫描。
  2. 强制密钥登录:完全禁用了密码登录功能。这在物理上杜绝了弱口令被暴力破解的可能性。
  3. 部署 Fail2ban:这是防爆破的核心工具,用于监控日志,自动拉黑那些多次尝试失败的 IP。

📊 触目惊心的实战数据

即便做了上述准备,恶意流量从未停止。以下是这台服务器的“战报”概况:

  • 累计发现失败次数:32,147 次
  • Fail2ban 累计封禁 IP:419 个
  • 当前被封禁中的 IP:419 个(满额封禁状态)

哪怕是在我截图的时刻(下午 13:22),依然有 4 个 IP 在不知疲倦地进行着暴力攻击。更有意思的是,即便已经被 Fail2ban 封禁,有些攻击源(如部分国内 IP)仍在尝试连接,仿佛不撞南墙不回头。

🎯 黑客都在怎么攻击?

透过日志分析,我们可以清晰地看到攻击者的画像和策略。

1. 攻击源分布

虽然我的服务器在国内,但攻击源遍布全球,最近的活跃 IP 包括来自美国和中国各地的节点。值得注意的是,攻击通常是自动化的僵尸网络发起的,所以并不局限于某个特定国家。

2. 疯狂的用户名猜测

攻击者并非随机乱猜,他们有一套固定的“热门用户名字典”。通过统计,被尝试次数最多的用户名如下:

  • ubuntu(749 次):显然,攻击者默认这很可能是一台 Ubuntu 服务器。
  • admin(272 次):永恒的管理员账户。
  • user(152 次) & test(94 次):常见的测试账户。
  • pi(80 次):针对树莓派或类似架构的常见用户名。
  • 数据库相关:postgres, ftpuser, oracle 等。

看到这里你应该明白,为什么永远不要使用这些默认的用户名作为你服务器的登录账号了。哪怕你用了密钥,让别人猜到用户名也会增加日志噪音。

3. “执着”的 TOP 攻击者

榜单上最夸张的一个 IP(45.198.224.141)单台机器就尝试了 1,353 次!这种强度的攻击如果没有 Fail2ban 拦截,光是日志就能把你的硬盘写满,更别提 CPU 资源的消耗了。

✅ 为什么这套方案最有效?

从目前的防御状态来看:

  1. 日志中全是 Invalid user / preauth:这说明任何试图连接的请求都在密码验证阶段之前就被切断,或者因为用户名不存在而被拒绝。禁用密码登录的配置生效了。
  2. 零非授权登录:截至目前,没有发生任何成功的入侵事件。
  3. 高位端口过滤了批量扫描:虽然修改端口不能挡住定向扫描(如端口扫描器全端口扫),但确实过滤掉了全网范围内只扫 22 端口的大量垃圾流量。

💡 进阶建议与总结

如果你也觉得自己服务器最近有点卡,或者日志刷屏太快,不妨检查一下 /var/log/auth.log(或 secure)。

除了上述提到的“三板斧”,还有一个补充方案非常适合个人博客或家用服务器——白名单策略

如果你是固定 IP 上网(比如公司专线或家庭宽带的固定 IP),直接在防火墙层面只允许自己的 IP 访问 SSH 端口,这才是真正的“无敌模式”。但对于经常移动办公或不定 IP 的用户,Fail2ban + 密钥 + 非默认端口 依然是性价比最高的平衡方案。

不要心存侥幸,安全防护刻不容缓。哪怕你的服务器里没什么重要数据,被肉鸡后拿去挖矿或发垃圾邮件也是大麻烦。赶紧去检查一下你的配置吧!

标签: none

评论已关闭