防止在网关服务器上使用iptables来规避OpenDNS

我试图在我的网关服务器上设置iptables规则,强制我的孩子使用opendns(我最近发现,其中1人已经手动使用谷歌DNS而不是他的本地计算机)。

这是我在/etc/dhcp/dhcpd.confconfiguration文件:

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中遇到的表有些问题。

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