我是 iptables 的新手,最近设置了一个新服务器,并使用 webmin 告诉 iptables 允许传入端口 80、443 和 22。但是,启用 iptables 后,服务器无法再 ping 外部服务器或执行 dns 查找。
我需要在 iptables 中做哪些更改才能允许这样的事情?
谢谢!
答案1
规则将根据您是否拥有所有流量都通过的防火墙或防火墙是否位于您想要保护的实际机器上而改变。我编写规则时假设后者。
但如果你有一个专门的防火墙来保护其他服务器,你可能需要
-A FORWARD
而不是输入我们的输出。
最简单的做法是允许该服务器的所有出站流量。或者您可以更具体一点,这取决于您。
# Allow outbound traffic from MyServer
iptables -A OUTPUT -j ACCEPT -s $myServer
其中 $myServer 是您的 IP。抱歉,不确定如何在 webmin 中执行此操作。
是否允许所有出站流量,或者更具体地说,取决于您。
编辑:
如果您还没有这样做,您可能还会发现允许入站 ICMP(用于 ping)很有用。
iptables -A INPUT -j ACCEPT -p ICMP -d $myServer
答案2
我从未使用 Webmin 来配置 iptables,但检查是否可以添加规则:
允许传入流量相关/回复传出流量。
或者,
允许已建立的传入流量。
如果没有这样的规则,则必须添加两个规则:
允许传入来自端口 53 的 UDP
允许传入ICMP
答案3
好的,我明白了。
我删除了所有规则,并使用 webmin 模块提供的一组预设默认值重置了防火墙。