帮助中心

立即注册 咨询客服

当前位置:首页 > 帮助中心> 如何提升OpenSSH服务器安全性?

如何提升OpenSSH服务器安全性?

发布时间:2020年07月08日 08:52:31    来源: A5互联

当涉及到访问远程设备,如服务器,路由器和交换机,S强烈建议使用SSH协议,因为它具有加密流量和抵御任何可能试图窃听您的连接的功能。

虽然如此,SSH的默认设置并不是万无一失的,还需要额外的调整来使协议更加安全。在本文中,我们将探讨您可以使用不同的方法来确保服务器上OpenSSH安装的安全和硬化。

1. 设置SSH无密码认证

默认情况下,SSH要求用户在登录时提供密码。但问题是:黑客可以猜测密码,甚至使用特殊的黑客工具进行暴力破解攻击,获得对你系统的访问权限。为了安全起见,强烈建议您使用SSH无密码身份验证。

①第一步是生成一个SSH密钥对,它包括一个公钥和一个私钥。该私钥存放在你的主机系统上,而公钥则会被复制到远程服务器上。

一旦成功复制了公钥,你就可以无缝地进入远程服务器,而无需输入密码。

②下一步是禁用密码身份验证,要实现此目的,您需要修改SSH配置文件。

$ sudo vim / etc / ssh / sshd_config

在配置文件中,找到以下指令。取消#注释并将 "yes "改为 "no"。

PasswordAuthentication no

然后重新启动SSH守护程序。

# sudo systemctl restart sshd

2.禁用用户SSH无密码连接请求

增强服务器安全性的另一种推荐方法是禁用没有密码的用户的SSH登录。这听起来有些奇怪,但有时系统管理员可以创建用户帐户而忘记分配密码。

要拒绝没有密码的用户的请求,请再次访问位于的配置文件/etc/ssh/sshd_config并,取消#注释并将 "yes "改为 "no":

PermitEmptyPasswords no

然后重新启动SSH服务以使更改生效。

$ sudo systemctl restart sshd

3.禁用SSH根登录

如果黑客设法暴力破解您的root密码,那会发生什么?。允许远程root登录始终可不是一个好主意,它可能会危害系统的安全性。

因此,始终建议您禁用SSH远程root登录,而要坚持使用常规的非root用户。再次转到配置文件,然后如图所示修改此行。

PermitRootLogin no

完成后,重新启动SSH服务以使更改生效。

$ sudo systemctl restart sshd

此后,远程根登录将被禁用。

4.使用SSH协议2

SSH有两种版本:SSH 协议1和协议2。SSH 协议2于2006年推出,由于其强大的密码检查,批量加密和强大的算法,它比协议1更安全。

默认情况下,SSH使用协议1。要将其更改为更安全的协议2,请在配置文件中添加以下行:

Protocol 2

与前面一样,重新启动SSH才能使更改生效。

$ sudo systemctl restart sshd

今后,SSH将默认使用协议2。

要测试是否再支持SSH 协议1,请运行以下命令:

$ ssh -1 user @ remote-IP

您将收到一条错误消息“SSH protocol v.1 is no longer supported”。

在这种情况下,命令为:

$ ssh -1 tech@192.168.2.108

此外,您可以简单地指定-2标签,以确保协议2是使用的默认协议。

$ ssh -2 tech@192.168.2.108

5.设置SSH连接超时的空闲值

空闲SSH连接会使您的PC长时间无人值守会带来安全风险。有人可以简单地通过并接管您的SSH会话,然后随便做什么。为解决该问题,因此,谨慎地设置一个空闲超时限制,超过该限制时,SSH会话将关闭。

再次打开您的SSH配置文件,然后找到指令“ ClientAliveInterval”。分配一个合理的值,例如,我已将限制设置为180秒。

ClientAliveInterval 180

这意味着如果3分钟(相当于180秒)后未注册任何活动,则SSH会话将被丢弃。

然后重新启动SSH守护程序以影响所做的更改。

$ sudo systemctl restart sshd

6.将SSH访问限制为某些用户

对于附加的安全层,您可以定义需要SSH协议登录并在系统上执行远程任务的用户。这样可以避免其他任何未经您许可而试图进入您的系统的用户。

与往常一样,打开配置文件,并添加指令“AllowUsers ”,后跟要授予的用户名。在下面的示例中,我允许用户james 通过SSH远程访问系统。任何其他试图获得远程访问权限的用户都将被阻止。

AllowUsers tecmint james

此后,重新启动SSH以使更改继续存在。

$ sudo systemctl restart sshd

7.配置密码尝试限制

可以增加安全性的另一种方法是通过限制SSH登录尝试的次数,以便在尝试失败的次数之后,连接断开。因此,再次转到配置文件并找到“ MaxAuthTries ”指令,并为最大尝试次数定义一个值。

在此示例中,限制已设置为3次尝试,如图所示。

MaxAuthTries 3

最后,同样需要重新启动SSH服务。

以上就是对您可以用来保护SSH远程连接的一些措施的汇总。重要的是要补充一点,您应该始终为具有远程访问权限的用户设置一个复杂的强密码。