Ubuntu的1404,iptables,阻止除了特定ips之外的所有东西

我试图阻止任何东西在我的服务器,除了一些特定的IP范围。 既不应该从networking访问,也不应该ssh或其他任何东西。

我已经通过不同的主题进行了search,发现了一个很好的解决scheme

iptables -P INPUT DROP iptables -A INPUT -s IP/24 -j ACCEPT 

实际上这个下降是按照它应该的,但是一旦我执行命令我断开连接。 我通过SSH客户端连接。 我也尝试创build一个bash脚本。 但是,滴落后,我也下降了,似乎脚本没有完成。

我能做些什么来实现我的目标?

正如汉坦已经指出的那样,首先应该颠倒你制定政策和例外的顺序。 如果您先设置策略,则服务器无法知道您只是要设置一个exception,因此将您locking。 如果您首先设置了例外情况,那么在策略设置时,它将已经到位并免除您的stream量。

其次,如果你想要的IP范围10.10.0.010.10.255.255 ,你需要一个更广泛的networking掩码。 试试10.10.0.0/16 。 您也可能会发现我们关于IPv4子网划分的规范问题是有用的。

最后,感谢您对这个问题的回答如此亲切(读者有足够的特权看到删除的答案就知道我的意思了); 如果阿旺汉稍后来到,写一篇,我会很高兴收回我的答复在他/她的青睐。

您应该首先允许本地主机连接,然后是您的IP地址或您的networking。

例如:如果您的IP地址类似于192.168.1.20,则只能允许您的IP地址或整个networking。

 # Allow connection from localhost iptables -A INPUT -s 127.0.0.1/32 -j ACCEPT # Allow my IP address. iptables -A INPUT -s 192.168.1.20/32 -j ACCEPT # ... or allow my entire network iptables -A INPUT -s 192.168.1.1/24 -j ACCEPT # Filter invalid packets iptables -A INPUT -m state --state INVALID -j DROP # Drop some custom ports iptables -A INPUT -p tcp -m tcp --dport 22 -j DROP iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP # ... or allow some custom ports iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT # Allow related and established connection iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # And drop all iptables -A INPUT -s 0.0.0.0 -j DROP 

这只是一些例子,而不是完美的解决scheme。 你可以用iptables做更多的事情。

另一方面,您可以检查Ubuntu 14.04防火墙手册页。