
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 エントリは、ローカル ネットワーク内のすべてのホストによって使用されます。