如何在Linux CentOS上保护Port Knocking SSH连接

Port Knocking是用于保护连接或免受不必要的用户端口接入的技术。使用这种技术,我们保持一个,关闭多个先前配置的端口,这些将仅使用请求序列为一个数字,我们之前设定的端口被打开。 举个例子,如果我们配置Port Knocking访问端口50,该端口只开时,我们按顺序发出请求到端口1000,2500,3000,这样,一旦我们完成了序列正确的防火墙将打开以前是口closed.With这我们添加另一个安全级别的某些类型到我们的服务器的连接。 客户端可以执行端口,使用Nmap的,Telnet或为这些目的的工具 Knocking让我们用安全运行Linux CentOS的服务器上这种方法SSH连接。按照下面的步骤。

安装的先决条件

安装libpcap库包需要Knock-server
# yum install libpcap*

安装Knock Server包

下载并安装Knock Server的rpm包
# wget http://li.nux.ro/download/nux/misc/el6/i386/knock-server-0.5-7.el6.nux.i686.rpm
# rpm -ivh knock-server-0.5-7.el6.nux.i686.rpm
在设置Knockd守护进程,我们必须创建一个iptable的规则到SSH端口的所有连接,在这种情况下,我们会使用默认值(22)。
# iptables -A INPUT -p tcp --dport 22 -j DROP
# service iptables save
[注:你用SSH服务器连接时,请勿使用下边命令,它会断开你当前的连接] OK,我们可以这样说出来SSH端口正确的Port Knocking序列之后,现在打开配置我们knockd守护进程。编辑knockd配置文件中添加下列值
# vi /etc/knockd.conf
[options]
        logfile = /var/log/knockd.log

[openSSH]
        sequence = 5040,6010,6500
        seq_timeout = 30
        tcpflags = syn
        Start_command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

[closeSSH]
        sequence = 4040,5050,8080
        seq_timeout = 30
        command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags = syn

保存文件并退出(:wq!) 最后启动Knockd服务
# service knockd  start

如何使用Port端口Knowcking

这里打开SSH端口,我们将knock端口5040,6010,6500和完成序列时正确会运行一个命令将在防火墙中添加一个规则来允许通过22端口连接到我们的Linux服务器。 我们还有一个指令,关闭端口,knock端口4040,5050,8080它会运行一个命令,将删除,使我们能够做通过SSH连接的防火墙规则。 knock端口,您可以使用该工具Nmap的或Telnet如下。在这个例子中,我们使用的nmap。 要打开SSH连接
# nmap -p 5040 SERVER-IP
# nmap -p 6010 SERVER-IP
# nmap –p 6500 SERVER-IP
关闭连接
# nmap -p 4040 SERVER-IP
# nmap -p 5050 SERVER-IP
# nmap -p 8080 SERVER-IP
如果我们看到Knockd日志,我们将有这样的事情
# tail /var/log/knockd.log

[2014-04-10 05:20] 192.168.1.184: openSSH: Stage 1
[2014-04-10 05:21] 192.168.1.184: openSSH: Stage 2
[2014-04-10 05:21] 192.168.1.184: openSSH: Stage 3
[2014-04-10 05:21] 192.168.1.184: openSSH: OPEN SESAME
[2014-04-10 05:21] openSSH: running command: /sbin/iptables -I INPUT -s 192.168.1.184 -p tcp --dport 22 -j ACCEPT
我要以图形告诉你更多信息。 OpenSSH的端口碰撞-1 OpenSSH的端口碰撞-2 这是包括RSA密钥认证过程的简要表述。 在这里,我们有我们的安全的良好远程连接,并与RSA认证相结合,我们加固连接甚至更多。我们可以用这个方法来保护任何类型的给我们的Linux服务器连接。要了解更多有关访问http://www.zeroflux.org/projects/knock