帮助中心

立即注册 咨询客服

当前位置:首页 > 帮助中心> 五个防范Linux服务器被SSH暴力登录攻击的方法

五个防范Linux服务器被SSH暴力登录攻击的方法

发布时间:2022年09月26日 16:45:53    来源: A5互联

我们运行SSH的服务器通常是暴力攻击的软目标。黑客不断提出创新的软件工具和机器人来自动进行暴力攻击,这进一步增加了入侵的风险。

在本指南中,我们探讨了您可以实施的一些技巧,用来防范Linux服务器被SSH暴力登录攻击。

一、禁用SSH密码验证并启用SSH密钥验证

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

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

即使设置了基于密钥的身份验证,您的服务器仍然容易受到暴力攻击,原因很简单,密码身份验证仍然有效。这需要禁用。

因此,编辑默认的 SSH 配置文件。

$ sudo vim /etc/ssh/sshd_config

将PasswordAuthentication参数设置no为如图所示。

PasswordAuthentication no

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

$ sudo systemctl reload ssh

二、部署 Fail2ban 入侵防御工具

Fail2ban是用Python编写的,是一个开源的入侵防御框架,它可以扫描服务的日志文件以查找身份验证失败,并禁止在指定时间内反复通过密码身份验证检查失败的 IP。

Fail2ban持续监控服务器日志文件中的入侵尝试和其他恶意活动,在预定义数量的身份验证失败后——在大多数情况下,3 次失败的登录尝试——Fail2ban 自动阻止远程主机访问服务器,并将主机保存在“ Jail ' 在特定的时间段内。

这样一来,Fail2ban显着降低了密码验证尝试错误率。查看我们的指南,了解如何在 Linux 上安装和配置 Fail2ban以保护您的服务器免受蛮力攻击。

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

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

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

MaxAuthTries = 3

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

$ sudo systemctl reload ssh

四、部署 TCP Wrappers 以限制来自客户端的 SSH 访问

TCP wrappers 是一个提供基于主机的访问控制列表( 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

添加以下行。

ALL: ALL

保存更改并退出文件。

然后访问/etc/hosts.allow文件。

$ sudo vim /etc/hosts.deny

配置可以通过 SSH 连接到服务器的主机或域。在这个例子中,我们只允许两个远程主机连接到服务器(192.168.1.1和192.168.1.2)并拒绝其余的。

sshd: 192.168.1.1 192.168.1.2

sshd: ALL: DENY

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

要对其进行测试,请尝试从您允许访问的主机之外的主机连接到服务器。您应该得到一个权限错误提示。

五、实施 SSH 两因素身份验证

双重身份验证为密码身份验证提供了额外的安全层,从而使您的服务器更安全地免受暴力攻击。Google Authenticator App是一种广泛使用的双因素身份验证解决方案,我们有一份详细说明如何设置双因素身份验证的指南。

结论

以上就是您可以实施以防止SSH暴力登录攻击并确保服务器安全的5个最佳实践的摘要。