OpenWrtベースのルータを使うと、DNSとDHCPサービスはdnsmasq
が管理している。その中でもlocal-service
設定は、DNSリクエストをローカルネットワーク内に制限することで、ネットワークのセキュリティを向上させる重要な役割を果たす。この記事では、local-service
の設定について、OpenWrtのLuCIインターフェイスを使った具体的な設定方法を解説する。AdGuard Homeとの組み合わせやNo negative cache
についても触れていく。
local-service
は、dnsmasqがDNSリクエストに応答する範囲をローカルネットワークに限定するためのオプションだ。これを有効にすると、DNSサービスはローカルサブネット内だけで動作し、外部ネットワークからのDNSリクエストは拒否される。この設定により、外部からの攻撃を防ぐことができる。
- 有効にすると、dnsmasqはローカルサブネット内のクライアントからのDNSクエリにのみ応答する。外部からのリクエストはブロックされる。
- 無効にすると、外部ネットワークからのリクエストにも応答するようになるが、セキュリティリスクが高まる。
-
LuCIにログイン
ブラウザでOpenWrtの管理画面(通常はhttp://192.168.1.1
)にアクセスし、管理者としてログインする。 -
「Network」メニューから「DHCP and DNS」を選択
「Network」メニューを開き、「DHCP and DNS」をクリックする。 -
「Advanced Settings」タブを開く
「DHCP and DNS」の設定画面で、「Advanced Settings(高度な設定)」タブを開く。 -
Local Service Only
チェックボックス- チェックを入れると、dnsmasqはローカルネットワークだけでDNSサービスを提供する。外部からのリクエストはブロックされるので、セキュリティが向上する。
- チェックを外すと、外部からのDNSリクエストも受け付けるようになるが、リスクがあるため注意が必要。
-
設定を保存
「Save & Apply」をクリックして設定を保存し、dnsmasqを再起動する。
多くのユーザーは、広告ブロックやトラッキング防止のためにAdGuard Homeを導入している。dnsmasqとAdGuard Homeを組み合わせることで、ネットワーク全体のDNSリクエストをフィルタリングできる。
- ポート3053で待ち受け: AdGuard Homeは通常、UDPポート3053でDNSリクエストを処理する。
- dnsmasqのフォワーディング設定: LuCIの「General Settings」タブで、
DNS forwardings
に127.0.0.1#3053
を設定する。これにより、dnsmasqは受信したDNSリクエストをAdGuard Homeに転送し、広告やトラッキングをブロックする。
No negative cache
オプションは、dnsmasqが存在しないドメイン(NXDOMAIN)の応答をキャッシュしないようにする設定だ。
- 有効にすると、dnsmasqはネガティブ応答をキャッシュしない。存在しないドメインへのリクエストが繰り返し送信された場合、毎回上流のDNSサーバーにクエリを送信する。
- 用途: 動的にドメインが追加される環境では、ネガティブキャッシュが不要な場合がある。この設定を有効にすることで、最新のDNS情報をすぐに取得できるようになる。
- パフォーマンスへの影響: ネガティブキャッシュを無効にすると、再クエリが増えてトラフィックが増加する可能性があるが、特定の要件に合致する場合には有用だ。
- LuCIで設定: 「Advanced Settings」タブで
No negative cache
にチェックを入れる。設定を保存し、dnsmasqを再起動する。
OpenWrtのdnsmasq設定は、local-service
オプションを使うことでセキュリティを強化できる。また、No negative cache
設定を活用すれば、特定の要件に合わせたDNS動作が実現できる。AdGuard Homeとの連携によって、効果的なDNSフィルタリングも可能になる。LuCIインターフェイスを使えば、これらの設定は簡単に調整できるので、ネットワークの安全性とパフォーマンスを最適化しよう。