このdnsmasqは、設定次第で独自の名前→IP変換をしてくれますので、例えば参照したくない広告を出すホストに対し、ダミーIPアドレスを設定して広告をブロックするといったことができます。しかし、家庭内LAN上のクライアントで、独自に、例えばgoogleのDNSの8.8.8.8を見る!なんて設定してしまうと、そちらを見に行ってしまい、折角ブロックしたはずの広告が表示されてしまいます。
ここでは、そういうクライアントが独自にDNSを設定していても、OpenWrt上のdnsmasqを見に行くようにする設定を実施します。
作業は簡単で、
- iptables-mod-nat-extraをインストール
- firewallの設定ファイルでOpenWrt上のdnsmasqを見に行くルールを登録
- firewallをリスタート
そうしたら、sshでログインし、 /etc/firewall.userに以下の2行を追加します。
iptables -t nat -I PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53後は、以下のコマンドでfirewallを立ち上げ直すと完了です。
iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
# /etc/init.d/firewall restart/etc/firewall.userに記述したルールは、firewallの説明にあるように、自動的に読み込まれて実行されます。
追加した1行目は、このルータに届くtcpのうち、53番ポート(DNSのポート)宛のパケットを、宛先に関わらず、強制的にこのルータの53番ポート(dnsmasqが走ってるポート)にリダイレクトします。2行目は同様にudpをリダイレクトします。つまり、上述の例みたいに家庭内LANのクライアントが8.8.8.8などの外部のDNSを直接引こうとしていても、それを強制的にOpenWrt上のdnsmasqに転送してしまう、というわけです。
これで、dnsmasqで広告をブロックする準備が整いました(*´艸`*)
0 件のコメント:
コメントを投稿