端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。
knock安装
apt install knockd
knock配置
$ vim /etc/knockd.conf
[options]
# UseSyslog
LogFile = var/knock/knock.log
[openSSH]
# 定义敲门暗号顺序
sequence = 7000,8000,9000
# 设置超时时间,时间太小可能会出错
seq_timeout = 30
# 设置敲门成功后所执行的命令
# 在ubuntu系统iptables规则默认是禁止所有的规则,如果直接添加规则默认是在drop all规则之后,因此需要先删除drop all的规则再添加所要设置的规则,最后重新添加drop all的规则。
# command = /sbin/iptables -D INPUT -p tcp --dport 22 -j DROP && /sbin/iptables -A INPUT -s [允许远程的IP] -p tcp --dport 22 -j ACCEPT && /sbin/iptables -A INPUT -p tcp --dport 22 -j DROP
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 30
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[openHTTPS]
sequence = 12345,54321,24680,13579
seq_timeout = 5
command = /usr/local/sbin/knock_add -i -c INPUT -p tcp -d 443 -f %IP%
tcpflags = syn
启动knock服务
systemctl start knockd
案例
[options]
UseSyslog
[openSSH]
sequence = 14,29,43
seq_timeout = 15
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 62,40,46
seq_timeout = 15
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
开启与关闭
knock 192.168.1.108 14 29 43 #开启端口
knock 192.168.1.108 62.40.46 #关闭端口
原文地址
https://www.cnblogs.com/f-carey/p/16066178.html
标签:iptables,knock,sbin,22,端口,tcp,INPUT,敲门 From: https://www.cnblogs.com/Cx330Lm/p/16927312.html