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

如何使用端口敲门来保护SSH登录?_0

时间:2023-03-15 21:15:11 科技观察

【.com速译】SecureShell是登录远程Linux服务器的事实标准。多年来,它为许多管理员提供了很好的服务。但仅仅因为名称中包含“安全”一词并不意味着它始终是安全的。事实上,总有一些事情可以让SSH更安全。其中一种方法是借助于端口敲击(portknocking)。现在,在我们开始之前,我想明确一点,任何使用SSH的人都应该始终做两件事:保持SSH最新。使用SSH密钥进行身份验证。以上两项都应被视为使用SecureShell的标准良好做法。话虽如此,我想向您介绍一个已经存在了一段时间的工具。这个想法是在您的服务器上创建两个崩溃序列,一个打开SSH端口,一个关闭它。SSH访问被禁用,直到您发送打开的崩溃序列。发送打开序列后,您可以通过SSH连接到该机器。作业完成后,发送关闭序列,SSH将再次被锁定。它并不完美,但结合SSH密钥身份验证,SSH将在您的服务器上更加安全。以下是如何安装和使用knockd通过SSH进行端口碰撞。你需要什么?我将在UbuntuServer20.04上进行演示,因此您需要该操作系统的运行实例和具有sudo权限的用户。您还需要一个在客户端计算机上具有sudo权限的用户。至于客户端,我将在Pop!_OS上进行演示。如何安装knockd?我们要做的第一件事是在服务器和客户端上安装knockd。登录服务器,执行命令:sudoapt-getinstallknockd-y到客户端,执行同样的命令。安装后需要注意几个配置。如何配置敲门?我们需要做的第一件事是配置knockd服务。使用以下命令打开knockd配置文件:sudonano/etc/knockd.conf在此文件中,将打开顺序从默认的7000,8000,9000更改为您要使用的任何端口顺序。您最多可以为此配置七个端口。要配置的行在[openSSH]下:sequence=7000,8000,9000将端口号更改为您可以记住的序列。接下来,以相同的方式(使用不同的端口号)更改关闭顺序。此行在[closeSSH]下:sequence=9000,8000,7000接下来,您需要在[openSSH]命令行中将-A更改为-I,以便它成为iptables链中的第一条规则。保存并关闭文件。接下来,我们需要找到用于SSH流量的网络接口的名称。执行命令:ipa找到你使用的IP地址,然后找到顺序如下图:2:ens5:以本文为例,接口名称为ens5。使用以下命令打开Knockd守护程序文件:sudonano/etc/default/knockd在该文件中,通过将以下行中的0更改为1,使守护程序能够在引导时运行:START_KNOCKD=Next,更改以下行中的eth0,到您的网络接口的名称(并删除前导#字符):#KNOCKD_OPTS="-ieth0"因此该行看起来像这样:KNOCKD_OPTS="-iens5"保存并关闭文件。使用以下命令运行并启用knockd:sudosystemctlstartknockdsudosystemctlenableknockd如何关闭端口22?接下来,我们需要关闭端口22,这样流量就无法绕过knockd系统。执行命令:sudoufwnumbered如果您有允许SSH流量的规则,它们将被编号并需要删除。例如,如果您的SSH规则是1和2,请使用以下命令删除它们:sudoufwdelete2sudoufwdelete1如何使用knockd?进入您的客户端机器。我们做的第一件事是发送openbump序列以允许SSH流量通过。如果您的敲门序列是7001,8001,9001,您将执行以下命令:knock-vSERVER700180019001其中Server是远程服务器的IP地址。您应该看到如下输出:hittingtcp192.168.1.111:7001hittingtcp192.168.1.111:8001hittingtcp192.168.1.111:9001在命中序列之后,您应该能够通过SSH连接到该服务器。当您完成远程工作后,您从该服务器注销,然后发送关闭敲门序列,如下所示:敲击–vSERVER900180017001在您关闭敲门序列后,您应该不再能够通过SSH连接到该远程服务器(除非你再次发送打开的敲门序列)。这就是您如何使用knockd更有效地保护远程Linux服务器上的SSH访问。请记住在需要通过SSH访问这些服务器的任何客户端机器上安装knockd。原标题:HowtosecureSSHloginswithportknocking,作者:JackWallen