当前位置: 首页 > 科技观察

Linux如何防止ssh被暴力破解_0

时间:2023-03-12 09:08:19 科技观察

SSH是一种广泛使用的安全访问Linux服务器的协议。大多数用户使用默认的SSH连接来连接到远程服务器。但是,不安全的默认配置也会带来各种安全风险。具有开放SSH访问权限的服务器的根帐户可能存在风险。特别是如果您使用的是公网IP地址,破解root密码就容易多了。因此,了解SSH安全是很有必要的。以下是如何在Linux上保护SSH服务器连接。1.禁用root登录为此,首先,禁用root的SSH访问并创建一个具有root权限的新用户。关闭root用户的服务器访问权限是一种防御策略,可防止攻击者实现其闯入系统的目标。例如,您可以创建一个名为exampleroot的用户,如下所示:useradd-mexamplerootpasswdexamplerootusermod-aGsudoexampleroot下面简单介绍一下上面的命令:在目录下创建一个文件夹。passwd命令用于为新用户分配密码。请记住,您分配给用户的密码应该复杂且难以猜到。usermod-aGsudo将新创建的用户添加到管理员组。在用户创建过程之后,需要对sshd_config文件进行一些更改。您可以在/etc/ssh/sshd_config中找到此文件。使用任何文本编辑器打开文件并对其进行以下更改:#Authentication:#LoginGraceTime2mPermitRootLoginnoAllowUsersexamplerootPermitRootLogin行将阻止root用户使用SSH获得远程访问权限。在AllowUsers列表中包含exampleroot会向用户授予必要的权限。最后,使用以下命令重新启动SSH服务:>rumenz@rumenz/home/rumenz/www.rumenz.com>sudosystemctlrestartssh如果失败并收到错误消息,请尝试以下命令。这可能因您使用的Linux发行版而异。>rumenz@rumenz/home/rumenz/www.rumenz.com>sudosystemctlrestartsshd2.更改默认端口SSH连接的默认端口是22,当然所有攻击者都知道这一点,所以需要修改默认端口号更改为保持SSH安全。虽然攻击者可以通过Nmap扫描轻松找到新的端口号,但这里的目标是让攻击者的工作变得更加困难。要更改端口号,请打开/etc/ssh/sshd_config并对文件进行以下更改:包括/etc/ssh/sshd_config.d/*.confPort22099完成此步骤后,再次使用sudosystemctlrestartssh重新启动SSH服务.现在您可以使用刚刚定义的端口访问您的服务器。如果您使用防火墙,您还必须在此处进行必要的规则更改。运行netstat-tlpn命令可以看到你的SSH端口号发生了变化。3.禁用密码为空的用户访问您的系统上可能有您不小心创建的没有密码的用户。要防止此类用户访问服务器,您可以将sshd_config文件中的PermitEmptyPasswords行的值设置为no。允许空密码4。限制登录/访问尝试默认情况下,您可以尝试多次输入密码以访问服务器。但是,攻击者可以利用此漏洞来暴力破解服务器。通过指定允许的密码尝试次数,您可以在一定次数的尝试后自动终止SSH连接。为此,请更改sshd_config文件中的MaxAuthTries值。MaxAuthTries35.使用SSH版本2由于第一个版本中存在许多错误,因此发布了第二个版本的SSH。您可以通过将Protocol参数添加到sshd_config文件来使服务器默认使用第二个版本。这样,您以后的所有连接都将使用第二个版本的SSH。包括/etc/ssh/sshd_config.d/*.conf协议26.关闭TCP端口转发和X11转发攻击者可以尝试通过SSH连接的端口转发来访问您的其他系统。为防止这种情况,您可以在sshd_config文件中禁用AllowTcpForwarding和X11Forwarding功能。X11Forwarding否AllowTcpForwardingno7。使用SSH密钥连接连接到服务器的最安全方法之一是使用SSH密钥。使用SSH密钥时,无需密码即可访问服务器。或者,您可以通过更改sshd_config文件中与密码相关的参数来完全关闭对服务器的密码访问。创建SSH密钥时,有两个密钥:公钥和私钥。公钥将上传到您要连接的服务器,而私钥存储在您将用来建立连接的计算机上。使用ssh-keygen命令在您的计算机上创建SSH密钥。不要将密码字段留空并记住您在此处输入的密码。如果将其留空,您将只能使用SSH密钥文件访问它。但是,如果设置密码,则可以防止拥有密钥文件的攻击者访问它。例如,您可以使用以下命令创建SSH密钥:ssh-keygen8。SSH连接的IP限制大多数情况下,防火墙使用其自己的旨在保护服务器的标准框架来阻止访问。然而,这并不总是足够的,您需要增加这种安全潜力。为此,请打开/etc/hosts.allow文件。对该文件的添加允许您限制SSH权限,允许特定IP块,或输入单个IP并使用deny命令阻止所有剩余的IP地址。下面您将看到一些示例设置。完成此操作后,像往常一样重新启动SSH服务以保存更改。