使用网关服务器上的 iptables 防止绕过 OpenDNS

使用网关服务器上的 iptables 防止绕过 OpenDNS

我正在尝试在网关服务器上设置 iptables 规则以强制我的孩子使用 opendns(我最近发现他们中的一个在他的本地计算机上手动使用 google DNS)。

以下是 /etc/dhcp/dhcpd.conf 中的配置:

option domain-name-servers 208.67.222.222, 208.67.220.220;

它运行正常,因为当 IP 分配给本地计算机时,默认 DNS 服务器是第一个 OpenDNS 条目:

$ nslookup 
> serverfault.com
Server:     208.67.222.222
Address:    208.67.222.222#53

Non-authoritative answer:
Name:   serverfault.com
Address: 151.101.65.69
Name:   serverfault.com
Address: 151.101.129.69
Name:   serverfault.com
Address: 151.101.193.69
Name:   serverfault.com
Address: 151.101.1.69

现在,如果我在我的服务器上放置以下规则:

#allow dns requests to opendns
sudo iptables -A OUTPUT -p udp --dport 53 -d 208.67.220.220 -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -d 208.67.222.222 -j ACCEPT

#block all other dns requests to other servers
sudo iptables -A OUTPUT -p udp --dport 53 -j DROP
sudo ip6tables -A OUTPUT -p udp --dport 53 -j DROP

...它运行正常,但仅限于服务器本身,而不是客户端。事实上,客户端仍然可以使用除 OpenDNS 之外的任何其他 DNS 服务器。

我怀疑当我执行 NAT(网关路由器)时,我在 iptables 中访问的表有问题。

你能帮忙吗?非常感谢你的支持。

相关内容