Domain-Name-System
iptables 阻止 ping/訪問域名的能力
我正在嘗試設置一些防火牆規則,以允許在一台伺服器和另一台伺服器之間進行 SSH、傳入 ping、munin 和 MySQL(所有這些服務都可以正常使用我的規則),但是當我應用規則時,我無法再 ping或解析任何 DNS(所以我可以 ping
74.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
.
您沒有允許 DNS 流量的規則,那麼它是如何工作的呢?