我成功配置了我的 Web 服务器(Apache、PHP 等)并使用 iptables 阻止了我不需要的端口,一切运行正常。
今天,我安装了 BIND 并对其进行了配置,它也能正常工作。唯一停止工作的是我的服务器本身的 DNS 解析。我 100% 确定这是由于 iptables 配置造成的,因为当我重置配置时,一切都正常工作。但是,当我将 iptables 配置设置为安装 BIND 之前使用的配置时,整个系统仍然无法正常工作。
我为 DNS 添加了以下规则:
# Loopback
iptables -A INPUT -i lo -j ACCEPT #Allow loopback access from INPUT
iptables -A OUTPUT -o lo -j ACCEPT #Allow loopback access from OUTPUT
# DNS
iptables -A INPUT -i eth0 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT