我正在尝试设置一些防火墙规则,允许在一台服务器和另一台服务器之间允许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谷歌,它工作正常。 只有在应用防火墙规则后,才能ping: unknown host google.com 。
你没有规定允许DNSstream量,所以它怎么能工作?