HTTP
Proxy Auto-Configuration (PAC)ファイルを設定することで、ブラウザレベルでGateway HTTPおよびDNSポリシーを適用できます。
PACファイルはa file containing a JavaScript function which can instruct a browser to forward traffic to a proxy server instead of directly to the destination server.
エンドユーザーがウェブサイトを訪れると、彼らのブラウザはリクエストをあなたのアカウントに関連付けられたCloudflareプロキシサーバーに送信し、Gatewayによってフィルタリングされます。PACファイルを使用してプロキシされたすべてのタイプのHTTPトラフィックをGatewayがフィルタリングできるわけではないことに注意してください#limitations。
デバイスにCloudflare証明書をインストールします。
Zero TrustダッシュボードまたはCloudflare APIを通じてプロキシエンドポイントを生成できます。
-
Zero Trust ↗に移動し、Gateway > Proxy Endpointsに進みます。
-
Create endpointを選択します。
-
エンドポイントに任意の名前を付けます。
-
デバイスの公開ソースIPアドレスをCIDR表記で入力します。例えば:
- IPv4:
192.0.2.0/8 - IPv6:
2001:0db8:0000:0000:0000:1234:5678:0000/109
- IPv4:
-
Save endpointを選択し、エンドポイントの作成を確認します。
あなたのCloudflareプロキシサーバーのドメインは次の形式になります:
https://<SUBDOMAIN>.proxy.cloudflare-gateway.com-
次の呼び出しでプロキシエンドポイントを作成します:
Terminal window curl https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/gateway/proxy_endpoints \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{"name": "any_name", "ips": ["<PUBLIC_IP>", "<PUBLIC_IP2>", "<PUBLIC_IP3>"]}'<PUBLIC_IP>をCIDR表記でデバイスのソースIPアドレスに置き換えます。例えば:- IPv4:
192.0.2.0/8 - IPv6:
2001:0db8:0000:0000:0000:1234:5678:0000/32
- IPv4:
-
呼び出しを実行した後、次のような出力が表示されるはずです:
例の出力 {"result": {"id": "d969d7bf-ec28-4291-9af0-86825f472c21","name": "test","created_at": "2022-03-02T10:57:18.094789Z","updated_at": "2022-03-02T10:57:18.094789Z","ips": ["90.90.241.229/8"],"subdomain": "3ele0ss56t"},"success": true,"errors": [],"messages": []}APIから返された
subdomainの値に注意してください。あなたのCloudflareプロキシサーバーのドメインは次の形式になります:<SUBDOMAIN>.proxy.cloudflare-gateway.com上記の例では、サブドメインは
3ele0ss56tで、プロキシサーバーのドメインは3ele0ss56t.proxy.cloudflare-gateway.comです。
-
Zero Trust ↗で、テスト目的のHTTPポリシーを作成します。例えば:
Selector Operator Value Action Domain in example.comBlock -
curlコマンドで何も返されないことを確認します:Terminal window curl --ipv4 --proxytunnel --proxy https://3ele0ss56t.proxy.cloudflare-gateway.com https://example.com
curlが403コードを返す場合、デバイスの公開IPがプロキシサーバーを生成するために使用されたものと一致しないことを意味します。デバイスでWARPがオフになっていることを確認し、curlがIPv6を使用していないことを再確認してください(IPv4を強制するには-4オプションを使用します)。
PACファイルは、どのトラフィックをプロキシサーバーにリダイレクトするかを指定するテキストファイルです。
以下はデフォルトのPACファイルです。ファイルをカスタマイズ ↗し、ブラウザがアクセスできる場所(内部ウェブサーバーやCloudflare Workersなど)にホストできます。
function FindProxyForURL(url, host) { // プライベート(RFC 1918)IPアドレス(イントラネットサイト)にはプロキシを使用しない if ( isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") || isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0") || isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0") ) { return "DIRECT"; }
// localhostにはプロキシを使用しない if (isInNet(dnsResolve(host), "127.0.0.0", "255.0.0.0")) { return "DIRECT"; }
// すべてをプロキシ return "HTTPS 3ele0ss56t.proxy.cloudflare-gateway.com:443";}すべての主要なブラウザはPACファイルをサポートしています。個々のブラウザを構成することも、デバイス上のすべてのブラウザに適用されるシステム設定を構成することもできます。複数のデバイスが、プロキシエンドポイント構成に含まれている限り、同じPACファイルを呼び出すことができます。
Chromiumベースのブラウザ
Chromiumベースのブラウザ(Google Chrome、Microsoft Edge、Braveなど)は、オペレーティングシステムのプロキシサーバー設定に依存しています。PACファイルを使用してGatewayを構成するには、macOS ↗またはWindows ↗のドキュメントを参照してください。
Mozilla Firefox
- Firefoxで、設定に移動し、ネットワーク設定までスクロールします。
- 設定を選択します。
- 自動プロキシ構成URLを選択します。
- PACファイルがホストされているURLを入力します。例えば
https://proxy-pac.cflr.workers.dev/3ele0ss56t.pac。 - OKを選択します。FirefoxからのHTTPトラフィックは現在Gatewayによってフィルタリングされています。
Safari
Safariはオペレーティングシステムのプロキシサーバー設定に依存しています。PACファイルを使用してGatewayを構成するには、macOSのドキュメント ↗を参照してください。
構成をテストするには、ステップ2で作成した例のポリシーなど、任意のサポートされているHTTPポリシーをテストできます。ブラウザでhttps://example.comにアクセスすると、Gatewayのブロックページが表示されるはずです。
これで、networkおよびHTTPポリシーでPACファイルを介してプロキシされたトラフィックをフィルタリングするために、プロキシエンドポイントセレクタを使用できます。
現在、エージェントレスHTTPプロキシはアイデンティティベースのポリシー、mTLS認証、またはUDPトラフィックをサポートしていません。UDPトラフィックに対してHTTPポリシーを強制するには、ユーザーのブラウザでQUICを無効にする必要があります。
Gateway DNSおよびリゾルバポリシーは、デバイスの構成に関係なく、PACファイルを介してプロキシされたトラフィックに常に適用されます。