DNSリークとは?VPN使用中でも情報が漏洩する仕組みと対策
VPNを使用してオンラインプライバシーを保護している場合でも、DNSリークによってデバイスが知らないうちに実際のIPアドレスとウェブ活動を公開している可能性があります。
DNSリークとは?
ブラウザにwhoip.twのようなドメイン名を入力すると、コンピューターはそれを機械が読み取れるIPアドレス(例:104.21.36.104)に変換して、正しいウェブサイトサーバーに接続する必要があります。この変換プロセスは、ドメインネームシステム(DNS)によって処理されます。これはインターネットの電話帳のようなもので、覚えやすいドメイン名を数値のIPアドレスに変換します。このプロセスについてさらに詳しく知りたい場合は、当社の記事「DNSの仕組み」をご覧ください。
通常、お客様のインターネットサービスプロバイダー(ISP)がDNSリクエストを処理します。これは、ISPが翻訳作業を行っているため、お客様がアクセスするすべてのウェブサイトをISPが見ることができることを意味します。
仮想プライベートネットワーク(VPN)を使用する場合、目的は、DNSリクエストを含むすべてのネットワークトラフィックを暗号化し、VPNサーバー経由でルーティングすることです。これにより、ISPはお客様のオンライン活動を見ることができなくなり、DNSリクエストはISPではなく、VPNプロバイダーまたはその指定された信頼できるDNSサーバーによって処理されるはずです。
DNSリークとは、DNSリクエストがVPNの暗号化されたトンネルを迂回し、ISPのDNSサーバーに直接送信されるときに発生します。たとえ他のすべてのトラフィックがVPN経由でルーティングされ、実際のIPアドレスが隠されていても、DNSリクエストはオンライン活動を漏洩させ、ISPにどのウェブサイトにアクセスしているかを明らかにしてしまいます。
DNSリークはなぜ発生するのか?
DNSリークは、デバイス、オペレーティングシステム、またはVPNソフトウェアの設定方法に関連して、いくつかの理由で発生する可能性があります。
1. オペレーティングシステムのデフォルト動作
一部のオペレーティングシステム(特にWindows)は、VPNがアクティブな場合でも、最初に設定されたDNSサーバーをデフォルトで使用する傾向があります。VPNに接続すると、オペレーティングシステムにVPNのDNSサーバーを使用するように指示するはずです。何らかの理由でこの指示が失敗した場合、OSは元のISPのDNSサーバーにフォールバックする可能性があります。
2. 手動で設定されたDNSサーバー
デバイスまたはルーターを手動で特定のDNSサーバー(例:Google Public DNS、Cloudflare DNS)を使用するように設定した場合、これらの設定がVPNによって提供されるDNS設定を上書きし、DNSリクエストがVPNをバイパスする可能性があります。
3. IPv6フォールバック
多くのVPNプロバイダーは、主にIPv4トラフィックを処理するように設計されています。デバイスがIPv4とIPv6の両方をサポートしており、VPNがIPv6トラフィックを適切にトンネル化またはブロックしない場合、デバイスはISPのIPv6 DNSサーバー経由でDNSリクエストを送信しようとする可能性があります。これにより、IPv4トラフィックのみがVPNによって保護されているため、リークが発生します。当社の記事「IPv4 vs. IPv6」では、これらのプロトコルについて詳しく説明しています。
4. ルーターのDNS設定
ルーター自体が特定のDNSサーバーを使用するように設定されており、VPNがこれらの設定を上書きできない場合、そのルーターに接続されているデバイスは、VPN経由ではなく、これらのDNSサーバー経由でDNSリクエストを送信する可能性があります。
5. VPNソフトウェアのバグまたは設定ミス
VPNソフトウェア自体にバグがあったり、設定が誤っていたりして、DNSリークを効果的に防止できない場合があります。品質の低いまたは無料のVPNサービスは、これらの問題が発生しやすい傾向があります。
6. WebRTCリーク
WebRTCリークはDNSリークではありませんが、VPNを使用している場合でも実際のIPアドレスを公開する可能性があるもう1つのプライバシー脅威です。WebRTCはリアルタイム通信のための技術であり、VPNトンネルの外でローカルIPアドレスとグローバルIPアドレスを明らかにする可能性があります。IPの保護はDNSリークの防止だけではないことを認識することが重要です。当社の記事「IPを保護する方法」では、IPを保護するためのさらに多くの方法を提供しています。
DNSリークのプライバシーへの影響
DNSリークは、VPNを使用する目的を著しく損ない、オンラインプライバシーとセキュリティに重大な影響を与えます。
- ISPがすべての閲覧活動を見ることができる: トラフィックが暗号化されている可能性があっても、ISPはどのウェブサイトにアクセスしたかを知ることができます(ただし、サイト内で何をしたかは見えません)。これにより、ISPはオンライン行動をログに記録し、デジタルプロファイルを構築することができます。
- 地理的位置の暴露: ISPのDNSサーバーは通常、お客様の近くにあります。これにより、VPNが別の国にいると主張している場合でも、外部のエンティティに実際の地理的位置が明らかになります。
- ターゲット広告とデータ共有: ISPは閲覧履歴を利用してターゲット広告を提供したり、お客様のデータを第三者に販売したりする可能性があり、個人プライバシーを侵害します。
- コンテンツ制限の回避: 地域制限のあるコンテンツにアクセスするためにVPNを使用することがあります。DNSリークが発生した場合、コンテンツプロバイダーは実際のDNSサーバーを認識し、アクセスを拒否する可能性があります。
この図は、VPN環境でDNSリークが発生すると、リクエストがVPNトンネルをどのようにバイパスするかを示しています。
DNSリークをテストする方法
DNSリークのチェックは、多くのオンラインツールを使用して簡単に行うことができます。これらのツールは、DNSリクエストがVPNサーバー経由で解決されているか、ISPのサーバー経由で解決されているかを分析します。
-
VPNなしで初期テストを実行する:
- VPNを切断します。
- ウェブブラウザを開き、DNSリークテストウェブサイトにアクセスします(例:「DNSリークテスト」で検索)。
- テストを実行します。結果をメモします。ISPのDNSサーバーと実際のIPアドレスが表示されるはずです。これがベースラインとなります。
-
VPNをアクティブにしてテストする:
- VPNに接続します。完全に起動し、正しく機能していることを確認します。
- 同じDNSリークテストウェブサイトで再度テストを実行します。
-
結果を分析する:
- リークなし: テストの結果、すべてのDNSサーバーがVPNプロバイダーによって運用されている(またはVPNプロバイダーによって指定されたサードパーティのプライバシーDNSサービス)と表示された場合、DNSリクエストは安全です。以前にVPNなしで行ったテストで表示されたサーバーと一致しないはずです。また、実際のIPアドレスではなく、VPNサーバーのIPアドレスも表示されるはずです。
- リークあり: テスト結果にISPに属するDNSサーバー、またはVPNプロバイダーと関連のない他のDNSサーバーがリストされている場合、DNSリークが発生しています。これは、オンライン活動がISPに公開されていることを意味します。
VPNプロバイダーのものではないDNSサーバー(GoogleやCloudflareのパブリックDNSサーバーなど)がリストされている場合もあります。これは、VPNがこれらの信頼できるパブリックリゾルバー経由でDNSリクエストをルーティングするように特別に設定されている場合、それ自体がリークであるとは限りません。重要なのは、これらのリクエストがデバイスから直接送信されるのではなく、VPNトンネルを介してルーティングされていることです。
DNSリークを修正する方法
デバイスでDNSリークが発生している場合、それを修正し、オンラインプライバシーを保護するためにいくつかの手順を実行できます。
1. 高品質なVPNサービスを利用する
これは最も重要なステップです。評判の良い有料VPNプロバイダーは、通常、ソフトウェアにDNSリーク保護機能を組み込んでいます。彼らはすべてのDNSリクエストが自社のサーバー経由で処理されることを保証し、リークを防ぐための追加機能を提供します。無料または未知のサービスに頼るのではなく、信頼できるVPNプロバイダーを選択することが、オンラインセキュリティにとって最も重要です。VPNとプロキシの違いについて知りたい場合は、当社の記事「VPNとプロキシ」をご覧ください。
2. VPNアプリでDNSリーク保護を有効にする
多くのVPNアプリケーションには、DNSリーク保護を有効にするための特定のオプションがあります。VPNクライアントの設定を確認し、この機能がオンになっていることを確認してください。これは通常、VPNアプリの「設定」、「プライバシー」、「セキュリティ」セクションで見つけることができます。
3. DNSキャッシュをフラッシュする
オペレーティングシステムは、ウェブサイトの読み込みを高速化するために、最近解決されたDNSクエリを保存(キャッシュ)します。これらのキャッシュされたエントリが古いまたは破損している場合、VPNに接続しているときにデバイスが古いDNS設定を使用しようとする可能性があります。
- Windows: コマンドプロンプト(管理者として実行)を開き、
ipconfig /flushdnsと入力してEnterを押します。 - macOS: ターミナルを開き、
sudo killall -HUP mDNSResponderと入力してEnterを押します(管理者のパスワードを入力する必要がある場合があります)。 - Linux: コマンドはディストリビューションと使用されているDNSサービスによって異なります。一般的なコマンドには、
sudo systemctl restart network-managerまたはsudo /etc/init.d/nscd restartがあります。
4. デバイスのDNSサーバーを手動で設定する
デバイスをプライバシーに配慮したパブリックDNSサーバー(Cloudflareの1.1.1.1やGoogle Public DNSの8.8.8.8など)を使用するように設定できます。ただし、VPNが適切に設定されていない場合、これでもリークにつながる可能性があることに注意してください。この手順は、VPNなしでも、少なくともISPのサービスよりもプライバシーに配慮したDNSサービスを使用していることを確認するためのものです。これらのリクエストをVPNトンネル経由で送信するには、VPNが正しく設定されている必要があります。
-
Windows:
- 「設定」>「ネットワークとインターネット」>「イーサネット」または「Wi-Fi」に移動します。
- 現在のネットワーク接続をクリックします。
- 「DNSサーバーの割り当て」までスクロールダウンし、「編集」をクリックします。
- 「自動(DHCP)」を「手動」に変更します。
- IPv4をオンにし、選択したDNSサーバーを入力します(例:優先DNS:
1.1.1.1、代替DNS:1.0.0.1)。必要に応じてIPv6についても同様に行います(例:優先DNS:2606:4700:4700::1111、代替DNS:2606:4700:4700::1001)。 - 「保存」をクリックします。
-
macOS:
- 「システム設定」>「ネットワーク」に移動します。
- 現在のネットワーク接続(例:Wi-Fi)を選択します。
- 「詳細…」をクリックします。
- 「DNS」タブを選択します。
- 下部の「+」ボタンをクリックして新しいDNSサーバーを追加するか、既存のものを選択して「-」をクリックして削除します。
- 選択したDNSサーバーを入力します。
- 「OK」をクリックし、「適用」をクリックします。
5. IPv6を無効にする
VPNがIPv6トンネリングをサポートしておらず、これがリークの原因であると思われる場合は、オペレーティングシステムでIPv6を無効にすることを検討してください。これにより、デバイスはIPv4のみを使用するようになり、すべてのトラフィックがVPNのIPv4トンネルを介して確実に送信されます。
-
Windows:
- 「コントロールパネル」>「ネットワークと共有センター」に移動します。
- 左側の「アダプターの設定の変更」をクリックします。
- 現在のネットワーク接続(例:イーサネットまたはWi-Fi)を右クリックし、「プロパティ」を選択します。
- 「インターネットプロトコルバージョン6(TCP/IPv6)」のチェックを外します。
- 「OK」をクリックします。
-
macOS:
- 「システム設定」>「ネットワーク」に移動します。
- 現在のネットワーク接続を選択します。
- 「詳細…」をクリックします。
- 「TCP/IP」タブを選択します。
- 「IPv6の構成」で「リンクローカルのみ」または「オフ」(利用可能な場合)を選択します。
- 「OK」をクリックし、「適用」をクリックします。
-
Linux:
- ディストリビューションとネットワークマネージャーによって異なります。通常、
/etc/sysctl.confを編集し、IPv6を無効にする行を追加または変更します。例:net.ipv6.conf.all.disable_ipv6 = 1net.ipv6.conf.default.disable_ipv6 = 1その後、sudo sysctl -pを実行して変更を適用します。
- ディストリビューションとネットワークマネージャーによって異なります。通常、
6. ルーターを確認し、設定する
ルーターが特定のDNSサーバーを強制している場合、それに接続されているすべてのデバイスでDNSリークが発生する可能性があります。
- ルーターの管理インターフェースにログインします(通常、ブラウザにルーターのIPアドレス、例:
192.168.1.1を入力します)。 - DNS設定を探します。「自動」に変更するか、信頼できるプライバシー重視のDNSサーバーを使用するか、ルーターの設定がサポートしている場合はVPNのDNSを使用します。
- 変更を保存し、ルーターとデバイスを再起動します。
7. VPNクライアントとオペレーティングシステムを更新する
VPNソフトウェアとオペレーティングシステムの両方が最新であることを確認してください。ソフトウェアのアップデートには、潜在的なDNSリークの脆弱性を修正できるバグ修正とセキュリティ改善が含まれていることがよくあります。
8. VPNカスタマーサポートに連絡する
これらの手順をすべて試してもまだDNSリークが発生している場合は、VPNプロバイダーのカスタマーサポートに連絡してください。彼らは、彼らのサービスに特化したさらなるトラブルシューティング手順を提供できる場合があります。
結論
DNSリークは、VPNを使用している場合でもISPにオンライン活動を公開してしまう重大なプライバシーの脆弱性です。それらがどのように発生し、どのように修正するかを理解することは、デジタルプライバシーを維持するために不可欠です。VPNのDNSリークを定期的にテストし、DNSリクエストがVPN経由で安全にルーティングされるように積極的に対策を講じることは、安全でプライベートなオンライン体験の基本です。VPNが提供する安心感に誤った安心感を抱かせないでください。常に再確認してください!