利用icmp作为遥控开关
创建端口复用链
-
iptables -nvxL -t nat #查看端口复用链
-
iptables -t nat -N Port_multiplexing_chain #创建
创建上条规则,转发流量到22端口
iptables -t nat -A Port_multiplexing_chain -p tcp -j REDIRECT --to-port 22
开启开关,如果接收到一个长为 1139 的 ICMP 包,则将来源 IP 添加到加为letmein的列表中
关闭开关,如果接收到一个长为 1140 的 ICMP 包,则将来源 IP 从 letmein 列表中去掉
如果发现 SYN 包的来源 IP 处于 letmein 列表中,将跳转到 LETMEIN 链进行处理,有效时间为 3600 秒
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name oupeng --rsource -j Port_multiplexing_chain
开
-
└─# ping -c 1 -s 1111 192.168.247.137
-
PING 192.168.247.137 (192.168.247.137) 1111(1139) bytes of data.
-
1119 bytes from 192.168.247.137: icmp_seq=1 ttl=64 time=0.682 ms
-
--- 192.168.247.137 ping statistics ---
-
1 packets transmitted, 1 received, 0% packet loss, time 0ms
-
rtt min/avg/max/mdev = 0.682/0.682/0.682/0.000 ms
关
-
ping -c 1 -s 1112 192.168.247.137
-
PING 192.168.247.137 (192.168.247.137) 1112(1140) bytes of data.
-
1119 bytes from 192.168.247.137: icmp_seq=1 ttl=64 time=0.349 ms
-
--- 192.168.247.137 ping statistics ---
-
1 packets transmitted, 1 received, 0% packet loss, time 0ms
-
rtt min/avg/max/mdev = 0.349/0.349/0.349/0.000 m
TCP协议作为遥控开关
创建复用链
端口复用规则 port22
-
[root@bogon~]# iptables -t nat -N LETMEIN
-
[root@bogon ~]# iptables -t nat -A LETMEIN -p tcp -j REDIRECT --to-port 22
开启关闭
-
[root@bogon ~]# iptables -A INPUT -p tcp -m string --string 'zhimakaimen' --algo bm -m recent --set --name letmein --rsource -j ACCEPT
-
[root@bogon ~]# iptables -A INPUT -p tcp -m string --string ‘baga’ --algo bm -m recent --name letmein --remove -j ACCEPT