Secure Web Gateway を使うと、HTTP トラフィックを検査し、ユーザーが訪問できる Web サイトを制御できます。DNS フィルタリングはドメイン全体(例: dropbox.com 全体)のブロックまたは許可しかできません。HTTP フィルタリングはより深く、完全な URL とリクエスト内容を検査します。そのため、dropbox.com/shared-folder のような特定のページをブロックしたり、ファイルアップロードをスキャンして機密データを検出したり、ユーザーがサイト上で実際に行っている操作に基づいて利用ポリシーを適用したりできます。
HTTP フィルタリングには、連動する 3 つの要素が必要です。Cloudflare One Client がデバイスのトラフィックを Cloudflare 経由でルーティングし、ルート証明書によって Gateway が HTTPS トラフィックを復号して URL と内容を検査できるようになり、Gateway プロキシが HTTP リクエストを傍受して評価します。証明書がないと、Gateway が見られるのはドメイン名だけであり、完全な URL やリクエスト本文は見えません。
デバイスからの HTTP リクエストをフィルタリングするには:
- デバイスに Cloudflare のルート証明書をインストール します。
- デバイスに Cloudflare One Client をインストール します。
- Cloudflare One Client の Settings で、組織の Cloudflare One インスタンス にログインします。
- TCP 向けに Gateway プロキシを有効 にします。必要に応じて UDP プロキシも有効にすると、ポート 443 の QUIC トラフィックも検査できます。これは、一部のブラウザーが既定で使う新しいプロトコル HTTP/3 を対象にします。
- HTTPS トラフィックを検査するには、TLS 復号を有効 にします。TLS 復号により、Gateway は暗号化されたリクエストを読めます。無効だと、Gateway はユーザーが
example.comを訪問したことは分かっても、どのページか、何をアップロードしたかは分かりません。 - (任意)ファイルのアップロードとダウンロードをマルウェア検査するには、アンチウイルススキャンを有効 にします。
デバイスが Cloudflare One に接続され、トラフィックが Gateway を経由していることを確認するには:
- Cloudflare ダッシュボード ↗ で、Zero Trust > Traffic policies > Traffic settings を開きます。
- Log traffic activity で、すべての HTTP ログのアクティビティログを有効にします。
- デバイスでブラウザーを開き、任意の Web サイトへ移動します。
- Cloudflare ダッシュボード ↗ で、Zero Trust > Insights > Logs > HTTP を開きます。
- デバイスからの HTTP requests が表示されることを確認します。
次の手順で最初の HTTP ポリシーを作成したあと、ポリシーがブロックするはずの URL にアクセスし、リクエストが拒否されることを確認してテストできます。
HTTP ポリシーは、一致させるリクエスト(例: ファイル共有サイトへのアップロード)と、取るアクション(例: ブロック)を定義します。
新しい HTTP ポリシーを作成するには:
-
Cloudflare ダッシュボード ↗ で Zero Trust > Traffic policies > Firewall policies を開きます。
-
HTTP タブで Add a policy を選びます。
-
ポリシーに名前を付けます。
-
Traffic で、許可またはブロックするトラフィックを定義する論理式を組み立てます。
-
論理式に一致したトラフィックに対する Action を選びます。たとえば、TLS 復号を設定している場合、埋め込み証明書 を使う一部のアプリケーション(一部の Google 製品など)は HTTP 検査に対応していないことがあります。こうしたアプリケーションの検査をバイパスするポリシーを作成できます。
セレクター 演算子 値 アクション Application in Do Not Inspect Do Not Inspect Cloudflare の脅威インテリジェンスに基づき、Command & Control、Botnet、Malware などの 既知の脅威 をブロックするポリシーの追加も推奨します。
セレクター 演算子 値 アクション Security Categories in All security risks Block -
Create policy を選びます。
-
次の権限を持つ API トークンを作成 します。
種類 項目 権限 Account Zero Trust Edit -
(任意)API の環境変数に アカウント ID と API トークンを含めます。
-
Create a Zero Trust Gateway rule エンドポイントへ
POSTリクエストを送ります。たとえば、TLS 復号を設定している場合、埋め込み証明書 を使う一部のアプリケーション(一部の Google 製品など)は HTTP 検査に対応していないことがあります。こうしたアプリケーションの検査をバイパスするポリシーを作成できます。Create a Zero Trust Gateway rulebash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "Do not inspect applications", "description": "Bypass TLS decryption for unsupported applications", "precedence": 0, "enabled": true, "action": "off", "filters": [ "http" ], "traffic": "any(app.type.ids[*] in {16})", "identity": "", "device_posture": "" }'{ "success": true, "errors": [], "messages": [] }API は、ポリシーの概要とリクエストの結果を返します。
Cloudflare の脅威インテリジェンスに基づき、Command & Control、Botnet、Malware などの 既知の脅威 をブロックするポリシーの追加も推奨します。
Create a Zero Trust Gateway rulebash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "Block known risks", "description": "Block all default Cloudflare HTTP security categories", "precedence": 0, "enabled": true, "action": "block", "filters": [ "http" ], "traffic": "any(http.request.uri.security_category[*] in {68 178 80 83 176 175 117 131 134 151 153})", "identity": "", "device_posture": "" }'
詳細は HTTP ポリシー を参照してください。
作成したいほかのポリシーについては、よく使う HTTP ポリシー の一覧を参照してください。よくある追加としては、種類別のファイルダウンロードのブロック、リスクのある Web サイトの リモートブラウザー での隔離、TLS 復号で動作が壊れるアプリケーション(独自証明書を強制する証明書ピン留めを使うアプリなど)向けの Do Not Inspect ルールの追加があります。Do Not Inspect ルールは、特定の宛先の復号を Gateway にスキップさせ、それらのアプリケーションが動き続けるようにします。