ネットワークで特定のDNSプロバイダーを使用するように強制する

ネットワークで特定のDNSプロバイダーを使用するように強制する

OpenDNS は、カテゴリ別にインターネットをフィルタリングする非常に簡単な方法を提供します。もちろん、正しい IP アドレスを取得できる人はフィルターを簡単に回避できますが、私の期待には十分です。

より大きな問題は、クライアント側で DNS プロバイダーを変更することは大したことではないということです。

そこで私の質問は、ローカル ネットワークで特定の DNS プロバイダーのみを使用するように強制できるかどうかです。

対象デバイスは、OpenWRT を搭載した WiFi ルーターです。(ただし、同様に簡単にセットアップできるフィルタリング ソリューションがあれば歓迎しますが、主な問題は DNS プロバイダーの強制です。)

答え1

iptables ファイアウォールではこれが機能します (Openwrt も iptables を使用します)。

iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p udp --dport 53 -j DNAT --to 192.168.1.1
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 53 -j DNAT --to 192.168.1.1

ルーターで Opendns サーバーを使用します。192.168.1.1は Openwrt ルーターの IP です。192.168.1.0/24は LAN ネットワーク サブネットです。ネットワーク サブネットの設定に応じて上記のルールを変更します。Openwrt プロンプトで上記のルールを試す場合は、-Aを に置き換えます-I。起動時または再起動時に読み込まれるスクリプトにルールを保存する場合は、-Aスイッチが機能するはずです。この設定では、クライアント マシンが使用する DNS サーバーが何であっても、DNS 要求がルーターに到達すると、宛先 IP がルーターの IP に変更されます。Openwrt の iptables の詳細については、こちらをご覧ください。ここ。

答え2

はい、ローカルネットワーク内のすべてのホストが特定のDNSプロバイダーのみを使用するようにすることは可能です。次のようにプロキシサーバーを構成することでこれを実現できます。イカプロキシそして、ローカル ネットワーク内のすべてのホストがこのプロキシ サーバー経由でのみインターネットにアクセスするようにします。そのため、DNS 要求、HTTP 要求、またはその他の要求のいずれであっても、すべての要求は最初にプロキシ サーバーに送られます。このように、プロキシ サーバーの構成中に書き込まれる DNS エントリは、ローカル ネットワーク内のすべてのホストによって使用されます。

関連情報