我有以下情况:
我只想允许访问22,80和443端口,一切都允许。
我的iptables -L看起来像这样:
Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:https ACCEPT tcp -- anywhere anywhere tcp dpt:http ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED DROP all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
但是我不能达到预期的效果,即使从我的服务器上,我也无法再ping任何东西(不能再上网了)。
另外,我看着选项来设置INPUT政策到DROP和手动打开所需的端口,但没有采取预期的效果。
将DROP策略放在INPUT链上,并手动打开所需的端口以及通过删除所有stream量作为最后一条规则的方式,是否有任何区别。
感谢一堆,
最好的祝福。
您当前的INPUT链设置允许客户端通过tcp 22,80和443连接到您的服务器以及您发起的tcp连接进行回复。 而已! 没有icmp (用于ping),没有udp (DNS查找)。
有你的ESTABLISHED, RELATED规则ALLOW所有的协议,而不是只是TCP ,应该修复上述。
关于使用规则与DROP策略删除所有内容:
iptables -P INPUT DROP
是一样的事情有:
iptables -A INPUT -j DROP
作为你最后的规则。
另外,除非你确切地知道你在做什么,你应该完全允许回送stream量。