iptables 阻止 ping/访问域名的能力

iptables 阻止 ping/访问域名的能力

我正在尝试设置一些防火墙规则,以允许一台服务器和另一台服务器之间的 SSH、传入 ping、munin 和 MySQL(所有这些服务都可以按照我的规则正常工作),但是当我应用这些规则时,我无法再 ping 或解析任何 DNS(所以我可以 ping74.125.225.65但不能google.com)。

以下是我使用的规则:

# Accept traffic on localhost:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Allow SSH from anywhere:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

# Accept ICMP Ping requests (incoming and outgoing):
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

# Allow munin from subdomain.example.com:
iptables -I INPUT -p tcp -s 123.23.45.1 --dport 4949 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I OUTPUT -p tcp -d 123.23.45.1 --dport 4949 -m state --state ESTABLISHED -j ACCEPT

# Allow MySQL from subdomain.example.com:
iptables -I INPUT 2 -p tcp -s 123.23.45.1 --dport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp -d 123.23.45.1 --dport 3306 -j ACCEPT

# Drop all other traffic:
iptables -A INPUT -j DROP

resolv.conf/etc/hosts等都是正确的,如果我简单地执行$ iptables -F,然后再次 ping google,它就可以正常工作。只有应用防火墙规则后,我才会得到ping: unknown host google.com

答案1

您没有允许 DNS 流量的规则,那么它如何工作呢?

相关内容