目的
隐藏ssh服务端口,让攻击者找不到入口。也可以配置执行其他命令,达到无客户端远程操控服务器目的。
下载knock-server
knock-server-0.7.8-10.20151227git258a27e.el8.x86_64.rar-Linux文档类资源-CSDN下载
安装后修改配置:
vim /etc/knockd.conf
[options]
UseSyslog //用来定义日志输出位置以及文件名
Interface=ens34 //需要指定网卡
[openSSH]
sequence = 7000,8000,9000 //设置(开门)敲门顺序
seq_timeout = 5 //设置超时时间
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT //开门成功后添加防火墙规则命令(打开SSH端口)
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000 //设置(关门)敲门顺序,与开门顺序相反
seq_timeout = 5 //设置超时时间
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT //关门成功后删除之前添加的防火墙规则(关闭SSH端口)
tcpflags = syn
启动服务
service knockd restart
修改iptables防火墙规则
iptables -A INPUT -s 127.0.0.0/8 -j ACCEPT //允许本机的连接
iptables -A INPUT -j DROP //拒绝其他所有IP的连接,此时无法访问所有端口
测试
按照顺序访问端口
查看iptables端口开放情况
iptables -nL
测试ssh端口正常访问,按照关闭顺序访问端口测试可关闭22端口
其他测试命令
nc -z 2.2.2.2 7000 8000 9000
for x in 7000 8000 9000;do nmap -Pn --max-retries 0 -p $x 2.2.2.2;done