
自宅のネットワーク内部の Web ベースのサービスにアクセスしようとすると、Chrome は URL を正しく解決できないことがわかりました。たとえば、Plex サーバーの fqdn (plex.mydomain.com) を使用して参照しようとすると、このエラーが発生します。これは、「セキュア DNS」設定が有効になっている場合のみ発生します。Web リクエストがネットワーク外の DNS サーバーに転送されるようです。Plex サーバーの Web フロントエンドにリダイレクトされるのではなく、pfsense ルーターのページにリダイレクトされ、DNS 再バインディング攻撃の可能性を警告するエラーが表示されます。
私は独自の内部 DNS サーバーを運用しています。これは単純な Windows 2012r2 サーバーです。内部ネットワーク上のすべてのものはこのサーバーに向けられており、このサーバーは Google の DNS サーバーに、認識していないレコードの要求を転送するように構成されています。
Secure DNS (または DNS over HTTPS) を使用するというアイデアは気に入っています。しかし、上記の理由で使用できないようです。ただし、内部 DNS サーバーを DNSSEC をサポートするように構成すれば、問題が解決するのではないかと考えています。また、Secure DNS サービスに内部 DNS サーバーを使用するには、Chrome の設定を調整する必要もあると思います。これですべて正しいでしょうか?
他にこの問題を観察した人はいますか?
答え1
これを機能させるには、DNS サーバーで DNS-over-HTTPS サポートを有効にする必要があります。ローカル DNS サーバーが DoH をサポートしていない場合、Chrome はリクエストを自動的にアップグレードしてローカル DNS 設定をバイパスし、Google が推奨する DoH サーバーを使用します。残念ながら、Microsoft DNS は現在これを提供していません。
plex.mydomain.com にパブリック DNS が設定されていると仮定すると、Chrome は Windows DNS サーバーが DoH をサポートしているかどうかをテストします。Chrome はサポートしていないことを確認し、DoH を使用して 8.8.8.8 にリクエストを送信し、パブリック IP を解決します。次に、クライアントは内部 IP ではなくパブリック IP に接続しようとし、pfsense は再バインド攻撃と見なされる可能性のあるものをブロックします。外部に接続する必要があることがあるラップトップではなくデスクトップを使用している場合は、Plex サーバーのローカル IP を hosts ファイルに追加することで、これを回避できる可能性があります。通常、hosts ファイル内のエントリは OS レベルの DNS に到達しません。ただし、Chrome がすでに独自の DNS リゾルバーで置き換えていることを考えると、それではうまくいかない可能性があります。
Chrome での DoH の仕組みに関する詳細情報: https://www.chromium.org/developers/dns-over-https
具体的にはそのページから:
- Chrome には、非 DoH DNS サーバーを同等の DoH DNS サーバーにマッピングするためのテーブルがあります。
- この表によると、システムの再帰リゾルバが DoH をサポートしていることがわかっている場合、Chrome はそのリゾルバの DoH バージョンにアップグレードします。言い換えると、これにより、ユーザーの DNS プロバイダは変更されずに、DNS 解決に使用されるプロトコルがアップグレードされます。また、DNS over HTTPS によって、そのオペレータがファミリーセーフ フィルタリングなどの機能を提供することが妨げられるわけではないことにも留意してください。
- 一部のプラットフォームでは、これは、Chromeが以前はOSのDNS解決APIを使用していたのに対し、現在はDoHを実装するために独自のDNS実装を使用していることを意味する可能性がある。。
- グループポリシーが利用可能になり、管理者は必要に応じて機能を無効にできるようになります。
- エンドユーザーは設定ページから機能を制御できます(無効化、自動アップグレード、特定のプロバイダーの選択または指定など)