从网络安全的角度,服务器开启的端口越多就越不安全,因此系统安全加固服务中最常用的方式,就是先关闭无用端口,再对提供服务的端口做访问控制。而作为远程管理与维护的人员通常需要开启一些服务端口,如FTP和SSH,这些服务使用大家熟悉的一些端口,长时间开启这些端口,往往是严重的安全隐患。所以需要在必要的时候才开启服务,并只对特定的人提供服务,服务完毕端口恢复关闭状态,才能让攻击者难以利用安全隐患,端口碰撞技术提供了这个问题的解决方案。
端口碰撞是一种通过在一组预先指定的关闭端口上产生连接请求,从外部打开防火墙上的端口的方法。一旦收到正确的连接请求序列,防火墙规则就会被动态修改,以允许发送连接请求的主机通过特定端口进行连接。
ipset create knock hash:ip timeout 10
ipset create knock2 hash:ip timeout 10
ipset create whosthere hash:ip timeout 300
iptables -A INPUT -m set --match-set whosthere src -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 1989 -j SET --add-set knock src
iptables -A INPUT -p tcp -m set --match-set knock src --dport 2023 -j SET --add-set knock2 src
iptables -A INPUT -p udp -m set --match-set knock2 src --dport 1864 -j SET --add-set whosthere src
依次按以下敲门,主机就会接收该源ip来ssh登录主机
-
1989/TCP
-
2023/TCP
-
1864/UDP