我正在尝试为我的Linux iptables规则文件设置最小规则,以便能够上网。
在这里我做了什么:
* filter -A OUTPUT -p tcp --dport 80 -j ACCEPT -A OUTPUT -p tcp --dport 443 -j ACCEPT -A OUTPUT -p udp --dport 53 -j ACCEPT COMMIT
只有这些规则,我不能上网。
我注意到,当我把-A INPUT -j ACCEPT ,它的工作原理,但我不明白为什么。 那么我需要什么input/输出端口来上网?
非常感谢。 问候
编辑 :它仍然无法正常工作。
这里是我的iptables -L
Chain INPUT (policy DROP) ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED Chain FORWARD (policy DROP) blank Chain OUTPUT (Policy ACCEPT) ACCEPT all -- anywhere anywhere
但是,如果我添加-A INPUT -j ACCEPT ,我可以上网。 所以在INPUT中应该有其他的东西来阻止它。
您还需要允许从远程服务器返回的stream量。 您的input链需要允许这些回应; 连接状态模块可以确保这些响应是被允许的。
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
为什么你觉得有必要规范出站连接?
OUTPUT表pipe理OUTBOUND数据包,INPUT表pipe理入站数据包。
如果你想保护你的工作站/服务器,你应该把重点放在INPUT规则上,并使用一个默认的“DROP”规则和一个“RELATED,ESTABLISHED”这样的规则:
/sbin/iptables -P INPUT DROP iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
这将使您可以打开更多的特定端口,同时保持大部分stream量。
尝试在/ etc / sysconfig / iptables(您的IPtables规则文件)中添加此行
-Ainput-m状态 – 状态RELATED,ESTABLISHED -j接受
有一段时间iptables-save没有为我工作,它显示它是通过重新启动iptables服务保存返回到前一阶段