如何防止数百万次登录失败?

如何防止数百万次登录失败?

每次我使用 PuTTY 访问我的 VPS 时,都会看到以下内容:

Last failed login: Fri Oct  6 17:25:58 UTC 2017 from xx.xxx.xxx.xxx on ssh:notty
There were 2381935 failed login attempts since the last successful login.
Last login: Tue Sep 26 09:30:02 2017 from xx.xxx.xxx.xxx

我不知道这是否相关,但是当我登录时,需要更多时间来加载,在其他没有像这个一样多次登录失败的服务器上,加载时间要短得多。

您能告诉我这么多次登录尝试是否会影响服务器的性能吗?有什么方法可以防止这种情况发生吗?我的意思是,我的服务器密码几乎不可能被破解,但有没有什么方法可以避免这种失败的登录尝试?

系统规格:

  • 图标名称:计算机虚拟机
  • 机壳:虚拟机
  • 虚拟化:kvm
  • 操作系统:CentOS Linux 7(核心)
  • CPE操作系统名称:cpe:/o:centos:centos:7
  • 核心:Linux 3.10.0-514.26.2.el7.x86_64
  • 建筑学:x86-64

答案1

因此,可能有一个更简单的解决方案来解决这个问题。

您发布的信息显示有 2,381,935 次登录失败。这太疯狂了。让我猜一下:您登录的用户是…… root?好吧,虽然 Fail2Ban 是一个不错的解决方案,可以捕获不需要的登录尝试,但还有一个更简单的解决方案:创建一个新帐户,使用一个新名称不是 root,通过 Sudo 授予该用户管理员权限,然后禁用root

一般来说,2017 年的任何 Linux 服务器都应该简单不是让实际root帐户处于活动状态并可用于任何目的。世界上每个“脚本小子”都有大量糟糕的漏洞利用脚本,试图破解帐户root。每个熟练的黑客都有尝试破解的工具root

通过创建一个新的用户帐户并用一些你能想出的诙谐的通用名称将其禁用,root你将立即减少你的攻击面,并且几乎不费吹灰之力就关闭这个潜在的入侵点。

一些系统管理员出于懒惰不喜欢禁用root,但除非您以某种其他方式限制对服务器的访问(例如基于 IP 或 MAC 地址过滤的防火墙配置等),否则您的服务器将面临风险。

答案2

除了 fail2ban(其他人建议的)之外,我还会在 VPS 上设置 OpenVPN 服务器,然后在您的系统上设置客户端,然后在您的客户端上使用 OpenVPN 客户端 - 并使用防火墙将连接限制为来自 VPN。这将通过添加额外的保护/加密层并隐藏 SSH 来提供帮助。

如果人们尝试连接但失败了,这可能会消耗大量资源,但也可能是因为其他原因(未配置的反向 DNS、磁盘超额订阅)。查看启动时间和 top 以查看是什么导致速度变慢。

相关内容