概念
端口敲门(Port knocking)技术,可以理解为密码或者暗号服务,简单来说,就是访问“预先设定好的顺序端口”(),服务器收到某客户端的端口尝试序列后,动态修改防火墙规则,打开某特定端口(),这时候,这个端口就可以被某IP进行访问了。访问顺序端口跟敲门一样,也类似于密码或者暗号。
技术实现
本次实验采用的服务器是centos6.9,通过敲门实现22端口的开启和关闭,通过客户机kali远程来验证。
安装配置
安装需要的lib库
yum -y install libcap*
下载knockd的RPM包
wget -c http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
安装knockd
rpm -Uvh nux-dextop-release*rpm
yum -y install knock-server
修改配置文件,配置敲门服务
[options]
UseSyslog
Interface = eth1
[openSSH]
sequence = 2222,3333,4444
seq_timeout = 30
tcpflags = syn
command = /sbin/iptables -I INPUT -s 192.168.43.217 -p tcp --dport 22 -j ACCEPT
[closeSSH]
sequence = 4444,3333,2222
seq_timeout = 30
tcpflags = syn
command = /sbin/iptables -D INPUT -s 192.168.43.217 -p tcp --dport 22 -j ACCEPT
启动knockd
service knockd start
配置所有端口无法访问
iptables -A INPUT -j DROP
可查看防火墙规则,只有这一条规则
此时kali无法远程访问centos
开门
在客户机kali上依次访问2222,3333,4444端口
可在服务器centos上发现新增的防火墙规则
客户机kali可远程访问服务器centos
关门
在客户机kali上依次访问4444,3333,2222端口
22端口被关闭(开门产生的防火墙规则被删除)
客户机kali无法远程访问服务器centos
优缺点
优点
有效的对端口进行了隐藏,不知道端口访问顺序的人很难去访问隐藏的端口。
降低了敏感端口直接暴露在外的风险。
缺点
对网络延迟及发包次序要求比较高,在高延迟的情况或一次发多个相同的包情况下,容易导致服务器端收不到正确的端口访问次序,无法打开其隐藏的端口。
端口敲门服务是一个程序提供的,如果该程序无法正常运行(如崩溃等),变无法使用敲门服务打开隐藏的端口。特别是远程访问端口(),很有可能需要去机房才能解决问题,虚拟云主机更麻烦。这时候需要一个非常给力的守护进程,在端口敲门服务出问题的时候
总结
是否可用作windows?
可使用,一样的原理。但是具体没实现过。
在遇到其它恶意扫描端口的时候,对敲门/关门服务有影响吗?
没有影响,识别不同IP,可正常使用端口敲门服务(可正常访问22端口)。
领取专属 10元无门槛券
私享最新 技术干货