コンテンツにスキップ

キャプティブポータル検出

キャプティブポータルは、公共のWi-Fiネットワーク(空港、コーヒーショップ、ホテルなど)によって使用され、ユーザーがインターネットへのアクセスを許可する前に利用規約に同意したり、支払いを行ったりすることを求めます。ユーザーがWi-Fiに接続すると、キャプティブポータルはユーザーがブラウザでキャプティブポータルのログインフローを完了するまで、すべてのHTTPSトラフィックをブロックします。これにより、WARPクライアントはCloudflareに接続できなくなります。同時に、WARPはデバイス上にファイアウォールルールを作成し、すべてのトラフィックをCloudflareに送信します。したがって、ユーザーはWARPを一時的に無効にしない限り、キャプティブポータルのログイン画面にアクセスできません。

ユーザーがキャプティブポータルに接続できるようにする

ユーザーがキャプティブポータルを通じて接続できるようにするために、管理者は以下のWARP設定を構成できます。

ユーザーの操作は不要

ユーザーの操作が必要

  • WARPスイッチのロックを有効にし、管理者オーバーライドを有効にします。ユーザーはIT管理者に連絡して、WARPを手動でオフにしてポータルに接続するための一時的なコードを取得できます。
  • 出張する従業員のために、WARPスイッチのロックを無効にし、自動接続の期間を設定します。これにより、ユーザーはITに連絡せずにWARPを手動でオフにすることができます。

キャプティブポータル検出の仕組み

WARPがCloudflareへの接続を確立できない場合、次のことを行います。

  1. システムファイアウォールを一時的に開放し、デバイスがWARPトンネルの外にトラフィックを送信できるようにします。ファイアウォールは以下のトラフィックのみを許可します:

    • TCPポート804438080、および8443のHTTP/HTTPS
    • UDPポート53のDNS
  2. 一連のリクエストをキャプティブポータルテストURLに送信します。HTTPSリクエストが傍受されると、WARPはネットワークがキャプティブポータルの背後にあると判断します。

  3. キャプティブポータルがリダイレクトHTTPレスポンスコード(302303307、または308)を送信した場合、キャプティブポータルのログイン画面を表示するブラウザウィンドウを開きます。

  4. 設定されたタイムアウト期間の後に自動的にファイアウォールを再有効化します。

flowchart TB
accTitle: キャプティブポータル検出


A[DNSリクエストを送信] --成功--> B[HTTPSリクエストを送信]--失敗--> C[HTTPリクエストを送信] --成功--> D[キャプティブポータルが検出されました]--HTTPリダイレクトを受信-->I[キャプティブポータルのログインにリダイレクト]
A --失敗--> F(CF_NO_NETWORKエラー)
C --失敗--> F
B --成功--> G[キャプティブポータルなし]--> H[Cloudflareへの接続を再試行]

制限

  • キャプティブポータル検出の仕組みにより、従業員がWARPをオフにするためにキャプティブポータルを偽装することが可能な場合があります。

  • 一部のキャプティブポータル、特に航空会社のものは、応答が遅く、キャプティブポータル検出のタイムアウトを超える可能性があります。ユーザーは接続を試みるとCF_CAPTIVE_PORTAL_TIMED_OUTエラーを見ることになるでしょう。

  • WARPは、ログインプロセス中にユーザーを異なるネットワークにリダイレクトするマルチステージキャプティブポータルを検出できない場合があります。ユーザーはキャプティブポータルを通過するためにWARPを手動でオフにする必要があります。

  • 一部の公共Wi-FiネットワークはWARPの実行と互換性がありません:

    • すべてのDNSトラフィックを傍受するキャプティブポータルは、WARPのDoH接続をブロックします。ユーザーはキャプティブポータルにログインした後、CF_NO_NETWORKエラーを見ることになるでしょう。
    • HTTPSトラフィックのみを許可するキャプティブポータルは、WARPのWireguard UDP接続をブロックします。ユーザーはキャプティブポータルにログインした後、CF_HAPPY_EYEBALLS_MITM_FAILUREエラーを見ることになるでしょう。