Iptable ubuntu允许多个特定的ip到特定端口,其余的是什么?

时间:2013-08-22 22:12:50

标签: tcp firewall iptables

想要做这样的事情

iptables -I INPUT ! -s $IP_1 -p tcp --dport $SERVER_PORT -j DROP
iptables -I INPUT ! -s $IP_2 -p tcp --dport $SERVER_PORT -j DROP
iptables -I INPUT ! -s $IP_3 -p tcp --dport $SERVER_PORT -j DROP

服务器端口对所有服务器端口是相同的,但允许的ip可以是不同的....从我所知的iptables这不会起作用,因为IP_3将从第一个规则中删除...那么怎么做我得到这样的东西吗?

2 个答案:

答案 0 :(得分:2)

嗯,这会有用吗?

iptables -A INPUT -s $IP_1 -p tcp --dport $SERVER_PORT -j ACCEPT
iptables -A INPUT -s $IP_2 -p tcp --dport $SERVER_PORT -j ACCEPT
iptables -A INPUT -s $IP_3 -p tcp --dport $SERVER_PORT -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 0.0.0.0/0 --dport $SERVER_PORT -j DROP

答案 1 :(得分:1)

这些规则将删除所有发往$ SERVER_PORT的tcp数据包。第一条规则说如果源IP地址不等于$ IP_1,则丢弃它。由于规则正确匹配,因此无法进行进一步处理。如果IP地址等于$ IP_1,那么它将转到第二个规则,该规则将丢弃它,原因相同,假设$ IP_1!= $ IP_2。事实上,所有发往$ SERVER_PORT的tcp数据包都将被删除,而不会达到规则3。

相反,请执行:

iptables -A INPUT -s $IP_1 -p tcp --dport $SERVER_PORT -j ACCEPT
iptables -A INPUT -s $IP_2 -p tcp --dport $SERVER_PORT -j ACCEPT
iptables -A INPUT -s $IP_3 -p tcp --dport $SERVER_PORT -j ACCEPT
iptables -A INPUT -j DROP

如果没有其他规则,请记得先刷新规则:iptables -F。