在Debian上敲端口

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

现在,您可能已经更改了默认的SSH端口。尽管如此,黑客仍可以轻松扫描端口范围以发现该端口-但是通过敲除端口,您可以欺骗端口扫描程序。它的工作方式是SSH客户端尝试连接到一系列端口,所有这些端口都将拒绝您的连接,但会解锁确实允许您进行连接的指定端口。非常安全,安装简单。敲除端口是保护您的服务器免遭未经授权的SSH连接尝试的最佳方法之一。

本文将教您如何设置端口爆震。它是为Debian 7(Wheezy)编写的,但也可能在Debian和Ubuntu的其他版本上运行。

步骤1:安装所需的软件包

我假设您已经安装了SSH服务器。如果尚未安装,请以超级用户身份运行以下命令:

apt-get update
apt-get install openssh-server
apt-get install knockd

然后,安装iptables。

apt-get install iptables

安装的软件包不多-这就是使其成为完美的解决方案,可防止蛮力尝试同时易于设置。

步骤2:配置iptables以使用此功能

由于连接后SSH端口将关闭,因此我们需要确保服务器允许您保持连接状态,同时阻止其他连接尝试。以root用户身份在服务器上执行这些命令。

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j DROP
apt-get install iptables-persistent
iptables-save

这将允许保留现有连接,但阻止其他任何连接到SSH端口。

现在,让我们配置敲门声。

这就是魔术发生的地方-您将能够选择首先需要敲打哪些端口。打开文本编辑器到文件 /etc/knockd.conf

nano /etc/knockd.conf

将有一个类似于以下块的部分。

[openSSH]
    sequence    = 7000,8000,9000
    seq_timeout = 5
    command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
    tcpflags    = syn

在本部分中,您将能够更改需要敲除的端口顺序。目前,我们将使用端口7000、8000和9000。 seq_timeout = 5seq_timeout = 10,对于 closeSSH 部分,对 seq_timeout 线。还有一个序列线 closeSSH 您还需要修改的部分。

我们需要启用敲除功能,因此请再次以root用户身份打开编辑器。

nano /etc/default/knockd

更改部分中的0 START_KNOCKD 为1,然后保存并退出。

现在,开始敲门:

service knockd start

大!一切都已安装。如果断开与服务器的连接,则必须断开端口7000、8000和9000才能再次连接。

步骤3:尝试一下

如果一切都已正确安装,则您将无法连接到SSH服务器。

您可以使用telnet客户端测试端口爆震。

Windows用户可以从命令提示符启动telnet。如果未安装telnet,请访问“控制面板”的“程序”部分,然后找到“打开或关闭Windows功能”。在功能面板上,找到“ Telnet客户端”并启用它。

在终端/命令提示符下,输入:

telnet youripaddress 7000
telnet youripaddress 8000
telnet youripaddress 9000

十秒钟即可完成所有操作,因为这是配置中施加的限制。现在,尝试通过SSH连接到服务器。它将可访问。

要关闭SSH服务器,请以相反的顺序运行命令。

telnet youripaddress 9000
telnet youripaddress 8000
telnet youripaddress 7000

结论

使用端口敲门最好的部分是,如果将它与私钥身份验证一起配置,除非有人知道端口和私钥,否则几乎没有其他人可以进入。

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com