2013-03-16 75 views
0

我正在使用下面的iptables规则来敲入端口。一切正常,但我想通过从HOST_1敲门并因此打开HOST_2的SSH端口来改善它。请问有人可以告诉我/如何做到这一点?一种可能性是在端口爆震时伪造源IP(hping3 -p 100 -a $ HOST_2 11.22.33.44)。这有效,但我宁愿使用iptables来实现这一点。使用iptables的端口敲入

-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -s 127.0.0.0/8 -j ACCEPT 
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 

-A INPUT -m recent --rcheck --seconds 5 --name KNOCK3 --rsource -j STATE3 
-A INPUT -m recent --rcheck --seconds 5 --name KNOCK2 --rsource -j STATE2 
-A INPUT -m recent --rcheck --seconds 5 --name KNOCK1 --rsource -j STATE1 

-A INPUT -j STATE0 

-A STATE0 -m recent --remove --name KNOCK1,KNOCK2,KNOCK3 --rsource 
-A STATE0 -p tcp -m tcp --dport 100 -m recent --set --name KNOCK1 --rsource -j DROP 
-A STATE0 -j DROP 

-A STATE1 -m recent --remove --name KNOCK1,KNOCK2,KNOCK3 --rsource 
-A STATE1 -p tcp -m tcp --dport 200 -m recent --set --name KNOCK2 --rsource -j DROP 
-A STATE1 -j DROP 

-A STATE2 -m recent --remove --name KNOCK1,KNOCK2,KNOCK3 --rsource 
-A STATE2 -p tcp -m tcp --dport 300 -m recent --set --name KNOCK3 --rsource -j DROP 
-A STATE2 -j DROP 

-A STATE3 -m recent --remove --name KNOCK1,KNOCK2,KNOCK3 --rsource 
-A STATE3 -p tcp -m tcp --dport 22 -j ACCEPT 
-A STATE3 -j DROP 

回答

0

如果你的两台主机是固定的IP地址,你应该只需要添加源IP选项(-S)以上,其中爆震名称设定相应的规则。例如。更换HOST_1和HOST_2值以下的有效IP:

-A STATE0 -s HOST_1 -p tcp -m tcp --dport 100 -m recent --set --name KNOCK1 --rsource -j DROP 

-A STATE1 -s HOST_1 -p tcp -m tcp --dport 200 -m recent --set --name KNOCK2 --rsource -j DROP 

-A STATE2 -s HOST_1 -p tcp -m tcp --dport 300 -m recent --set --name KNOCK3 --rsource -j DROP 

-A STATE3 -s HOST_2 -p tcp -m tcp --dport 22 -j ACCEPT 

如果你的IP地址是动态的,我不知道用iptables的只是一种方式(例如,从任何给定的IP打开下一个更高的接入敲门。) 。