【51CTO.com快译】Secure Shell登录远程Linux事实上,服务器的标准。多年来,它为许多管理员提供了良好的服务。但只是因为名字里有“Secure”安全这个词并不意味着它总是安全的。事实上,你总是可以采取一些措施SSH更安全。
其中一种方法是用端口碰撞(port knocking)。现在,在我们开始之前,我想明确指出,任何使用SSH每个人都应该一直做两件事:
- 使SSH保持最新版本。
- 使用SSH密钥验证。
以上两项应视为使用Secure Shell优秀的标准实践。尽管如此,我还是想向你介绍一个已经存在了一段时间的工具。其想法是在您的服务器上创建两个碰撞序列,一个打开SSH端口,一个关闭端口。在您发送打开碰撞序列之前,SSH访问是关闭的。发送打开序列后,您可以通过SSH连接到机器。工作完成后,发送关闭序列,SSH再次被锁起来。
但结合起来并不完美SSH密钥验证,SSH你的服务器会安全得多。
以下介绍如何安装和使用knockd以便在SSH端口碰撞。
你需要什么?
我将在Ubuntu Server 20.04 演示在操作系统的运行中,因此您需要实例和所有权sudo权限用户。您还需要在客户机上拥有它sudo权限用户。至于客户端,我会在那里Pop!_OS演示。
如何安装knockd?
我们要做的第一件事就是安装服务器和客户端knockd。登录服务器并执行命令:
去客户端执行同样的命令。
安装后需要注意几种配置。
如何配置knockd?
我们需要做的第一件事就是配置knockd 服务。使用以下命令打开knockd配置文件:
在本文件中,将打开序列从默认的7000、8000、9000改为您想要使用的任何端口序列。您最多可以配置七个端口。要配置的行[openSSH]下:
将端口号改为您能记住的序列。
接下来,以相同的方式更改关闭序列(使用不同的端口号)。这一行正在进行中[closeSSH]下:
接下来,你需要在那里[openSSH]命令行中将-A改成-I,以便它将是iptables链条中的第一条规则。
保存和关闭文件。
接下来,我们需要找到它SSH网络接口的流量名称。执行命令:
找到你用的IP找到以下序列:
以本文为例,接口的名称是ens5。
使用以下命令打开 Knockd 守护程序文件:
在本文件中,守护程序可以通过将以下行中的0改为1来运行:
接下来,我们将在下面的行中eth0 改成你的网络接口的名称(删除前导#字符):
所以这一行看起来像这样:
保存和关闭文件。
使用下列命令运行并启用knockd:
如何关闭端口22?
接下来,我们需要关闭端口22,这样流量就不能绕过knockd 系统。执行命令:
若有许可SSH它们将被编号并需要删除流量规则。例如,你的SSH规则是1和2,用以下命令删除:
如何使用knockd?
进入您的客户机。我们首先要做的是发送和打开碰撞序列,以允许它SSH如果您的碰撞顺序是7001、8001、9001,您将执行以下命令:
其中Server远程服务器IP地址。
您应看到以下输出:
碰撞序列后,你应该能够通过SSH连接到服务器。远程工作完成后,您退出服务器,发送关闭碰撞序列,如下:
关闭碰撞序列后,你应该再也不能通过了SSH访问远程服务器(除非您再次发送打开碰撞序列)。
这就是使用knockd以便在远程Linux在服务器上更有效SSH确保访问安全的方法。knockd需要通过安装SSH访问任何服务器的客户机。
原文标题:How to secure SSH logins with port knocking,作者:Jack Wallen
【51CTO转载合作网站时,请注明原译者和出处51CTO.com】