防止 SSH 暴力登录攻击的 5 个最佳实践

yanding 2023-07-20 460

使用 SSH 的服务器通常是动态攻击的软目标。黑客不断开发新的软件和机器人来进行自动暴力攻击,进一步增加了攻击的风险。


在本指南中,我们讨论了一些可以用来保护 SSH 服务器免受 Debian 衍生产品的暴力攻击的技巧。


启用 SSH 密码验证和启用 SSH 密钥验证

SSH默认认证方式为用户名/密码认证。然而,正如我们所见,密码身份验证很容易受到攻击。为了安全起见,建议实施基于密钥的 SSH 身份验证,其中可以通过公共和私有 SSH 密钥对进行身份验证。私钥保留在客户端的 PC 上,而公钥则复制到服务器。


在SSH密钥认证过程中,服务器会检查客户端PC是否拥有私钥。如果测试成功,则说明 shell 会话已创建或发送到远程服务器的命令已成功执行。我们有关于如何配置基于 SSH 密钥的身份验证的完整指南。


即使设置了基于密钥的身份验证后,您的服务器仍然容易受到攻击,原因很简单,密码身份验证仍然处于启用状态。应该禁用此功能。



因此,修改默认的SSH配置文件。


$sudo vim /etc/ssh/sshd_config

设置 PasswordAuthentication 参数,no如图所示。


密码验证


然后保存文件并重新加载 SSH 以应用更改。


$ sudo systemctl 重新加载 ssh

激活Fail2ban入侵防御工具

Fail2ban 用 Python 编写,是一个开源入侵防御系统,它扫描应用程序日志文件以查找身份验证失败,并在固定的时间内阻止反复失败密码身份验证检查的 IP。


Fail2ban 持续扫描服务器日志文件以查找模拟尝试和其他恶意活动,在预定次数的身份验证失败后(大多数情况下为 3 次失败的登录尝试),Fail2ban 会自动阻止远程主机访问服务器,并将主机存储在 '. “监禁”一定期限。


通过这样做,Fail2ban 显着减少了无效密码身份验证尝试的数量。查看我们的指南,了解如何在 Linux 上安装和配置 Fail2ban 以保护您的服务器免受暴力攻击。


限制 SSH 身份验证尝试的最大次数

保护服务器免受暴力攻击的另一种简单方法是限制 SSH 登录尝试的次数。默认情况下,该值设置为 3,但如果偶然将其设置为更高的值,请将其设置为最多 3 次连接尝试。


例如,要将最大连接尝试设置为 3,请将 MaxAuthTries 参数设置为 3,如下所示


最大授权尝试次数 = 3

再次保存更改并重新加载 SSH 服务。


$ sudo systemctl 重新加载 ssh

启用 TCP 包装器以限制客户端的 SSH 访问

TCP 包装器是一个提供基于主机的访问控制列表 (ACL) 的库,该列表可根据 IP 地址限制远程客户端访问 TCP 服务



远程主机无法查看系统上的服务。TCP 包装器使用 /etc/hosts.allow 和 /etc/hosts.deny 配置文件(按该顺序)来确定是否允许远程客户端访问特定服务。


这些文件通常被注释掉并允许所有访问者通过 TCP 包装层访问。有关允许访问服务的规则在 /etc/hosts.allow 文件中进行检查,并优先于 /etc/hosts.deny 文件中的规则。


最好的建议是阻止所有传入链接。因此,打开 /etc/hosts.deny 文件。


$ sudo vim /etc/hosts.deny

添加以下行。


全部:全部

保存更改并退出文件。


然后转到 /etc/hosts.allow 文件。


$ sudo vim /etc/hosts.allow

配置可以通过 SSH 连接到服务器的主机或域,如图所示。在此示例中,我们仅允许两个远程主机连接到服务器(173.82.227.89 和 173.82.255.55)并拒绝其余主机。


sshd:173.82.227.89 173.82.255.55

sshd:全部:拒绝


保存更改并退出配置文件。


要进行测试,请尝试从授权列表之外的主机连接到服务器。您应该收到如图所示的授权错误。


$ ssh [电子邮件 


kex_exchange_identification : 读取 : 连接被对等方重置

通过 173.82.235.7 端口重置连接

失去了连接

启用 SSH 双因素身份验证

除了密码验证之外,双因素身份验证还提供了一层安全性,使您的服务器更安全,免受动态攻击。广泛使用的双因素身份验证解决方案是 Google Authenticator 应用程序,我们有一份关于如何设置双因素身份验证的详细指南。



这是您可以用来防止 SSH 暴力登录攻击并确保您的服务器安全的 5 种最佳实践的摘要。您还可以阅读如何保护和强化 OpenSSH 服务器。

言鼎科技

The End