Skip to content

Instantly share code, notes, and snippets.

@TakashiSasaki
Created November 19, 2024 07:32
Show Gist options
  • Save TakashiSasaki/4b3d9bc0ef913434f23123a2a53ca7a1 to your computer and use it in GitHub Desktop.
Save TakashiSasaki/4b3d9bc0ef913434f23123a2a53ca7a1 to your computer and use it in GitHub Desktop.
OpenWrtルータでのdnsmasq設定解説

OpenWrtルータでのdnsmasqのlocal-service設定:セキュリティと効率化のガイド

OpenWrtベースのルータを使うと、DNSとDHCPサービスはdnsmasqが管理している。その中でもlocal-service設定は、DNSリクエストをローカルネットワーク内に制限することで、ネットワークのセキュリティを向上させる重要な役割を果たす。この記事では、local-serviceの設定について、OpenWrtのLuCIインターフェイスを使った具体的な設定方法を解説する。AdGuard Homeとの組み合わせやNo negative cacheについても触れていく。


local-serviceオプションとは

local-serviceは、dnsmasqがDNSリクエストに応答する範囲をローカルネットワークに限定するためのオプションだ。これを有効にすると、DNSサービスはローカルサブネット内だけで動作し、外部ネットワークからのDNSリクエストは拒否される。この設定により、外部からの攻撃を防ぐことができる。

効果

  • 有効にすると、dnsmasqはローカルサブネット内のクライアントからのDNSクエリにのみ応答する。外部からのリクエストはブロックされる。
  • 無効にすると、外部ネットワークからのリクエストにも応答するようになるが、セキュリティリスクが高まる。

LuCIインターフェイスでの設定方法

  1. LuCIにログイン
    ブラウザでOpenWrtの管理画面(通常は http://192.168.1.1)にアクセスし、管理者としてログインする。

  2. 「Network」メニューから「DHCP and DNS」を選択
    「Network」メニューを開き、「DHCP and DNS」をクリックする。

  3. 「Advanced Settings」タブを開く
    「DHCP and DNS」の設定画面で、「Advanced Settings(高度な設定)」タブを開く。

  4. Local Service Only チェックボックス

    • チェックを入れると、dnsmasqはローカルネットワークだけでDNSサービスを提供する。外部からのリクエストはブロックされるので、セキュリティが向上する。
    • チェックを外すと、外部からのDNSリクエストも受け付けるようになるが、リスクがあるため注意が必要。
  5. 設定を保存
    「Save & Apply」をクリックして設定を保存し、dnsmasqを再起動する。


AdGuard Homeとの連携

多くのユーザーは、広告ブロックやトラッキング防止のためにAdGuard Homeを導入している。dnsmasqとAdGuard Homeを組み合わせることで、ネットワーク全体のDNSリクエストをフィルタリングできる。

AdGuard Homeの設定

  • ポート3053で待ち受け: AdGuard Homeは通常、UDPポート3053でDNSリクエストを処理する。
  • dnsmasqのフォワーディング設定: LuCIの「General Settings」タブで、DNS forwardings127.0.0.1#3053 を設定する。これにより、dnsmasqは受信したDNSリクエストをAdGuard Homeに転送し、広告やトラッキングをブロックする。

No negative cache設定

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インターフェイスを使えば、これらの設定は簡単に調整できるので、ネットワークの安全性とパフォーマンスを最適化しよう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment