出品|MS08067实验室(www.ms08067.com)tcp
本文做者:大方子(Ms08067实验室核心成员)
ui
Ubuntu14.04:192.168.61.135
Kali:192.168.61.130rest
先用Kali探测下Ubuntu的端口状况,能够看到Ubuntu的22端口是正常开放的日志
接下来在Ubuntu上安装Knockdcode
apt-get install update apt-get install build-essential -y apt-get install knockd -y
安装完成后就cat下Knockd的配置/etc/knockd.confblog
配置解释:ip
[options] UseSyslog //用来定义日志输出位置以及文件名 [openSSH] sequence = 7000,8000,9000 //设置(开门)敲门顺序,能够自定义 seq_timeout = 5 //设置超时时间 command = /sbin/iptables ‐A 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
接下来对/etc/knockd.conf进行配置get
[options] #UseSyslog LogFile = /knock.log #配置日志路径 [openSSH] sequence = 7000,8000,9000 seq_timeout = 5 command = /sbin/iptables ‐I INPUT ‐s 192.168.61.130 ‐p tcp ‐‐dport 22 ‐j ACCEPT //这里把A改为I,让knockd插入的规则可以优先生效 tcpflags = syn [closeSSH] sequence = 9000,8000,7000 seq_timeout = 5 command = /sbin/iptables ‐D INPUT ‐s 192.168.61.130 ‐p tcp ‐‐dport 22 ‐j ACCEPT tcpflags = syn
配置/etc/default/knockd,修改START_KNOCKD=1io
而后重启下knockd服务table
service knock restart
而后咱们在Ubuntu的防火墙上添加几条规则
iptables ‐A INPUT ‐s 192.168.61.1 ‐j ACCEPT //容许宿主机链接,方便实验的时候能够用SSH进行链接 iptables ‐A INPUT ‐s 127.0.0.0/8 ‐j ACCEPT //容许本机的链接 iptables ‐A INPUT ‐j DROP //拒绝其余全部IP的链接
咱们在Kali上用nmap对Ubuntu的22端进行探测,能够看到22端口的状态是被过滤了
nmap ‐sC ‐Pn ‐sV ‐p 22 ‐A 192.168.61.135
接下来咱们用nmap进行敲门
for x in 7000 8000 9000;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.61.135;done
咱们再次查看Ubuntu上的防火墙规则,添加了一条关于192.168.61.130的规则
咱们再次用Kali进行探测并尝试链接
使用完毕以后,咱们再次用nmap进行关门,只须要倒过来敲击各个端口便可
for x in 9000 8000 7000;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.61.135;done
再次查看Ubuntu的防火墙规则,能够看到以前关于192.168.61.130的规则已经被删除
此时再次用nmap进行探测以及进行链接都会被拒绝