| 虚拟主机域名注册-常见问题 → 其他问题 → 其他问题 | ||||
| 一、禁用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是一种广泛使用的双因素身份验证解决方案,我们有一份详细说明如何设置双因素身份验证的建议。
|
||||
| >> 相关文章 | ||||
| 没有相关文章。 | ||||






