Cloudflare Zero Trust では、Gateway ポリシーでブロックされたユーザーに、対処につながるフィードバックを表示できます。カスタムのブロックメッセージは、ユーザーの混乱を減らし、IT への問い合わせも減らせます。
ブロックメッセージの出し方は 2 通りあります。
Gateway の DNS または HTTP ポリシーでブロックされたとき、ブラウザーにカスタムブロックページを表示できます。ブロックされた理由と IT への連絡方法を伝える、静的なページです。
カスタムブロックページには、次の制約があります。
- ブロックページを表示するには、エンドユーザーのデバイスに ユーザー側証明書 をインストールする必要があります。
- Gateway のネットワークポリシーでブロックされた場合、ブロックページは表示されません。
- カスタムブロックページは、ユーザーがブラウザーでサイトを読み込んだときだけ表示されます。たとえば、サイトの閲覧は許可されていてもファイルのアップロードが許可されていない場合、アップロードは何も表示されずに失敗し、ブロックページは出ません。
これらの制約を避けるには、Cloudflare One Client のブロック通知 の利用を推奨します。
DNS ポリシーでは、ポリシーごとにブロックページを有効にします。
- Cloudflare ダッシュボード ↗ で Zero Trust > Traffic policies > Firewall policies > DNS を開きます。
- 新しいポリシーを作る場合は Add a policy を選びます。既存のポリシーを編集する場合は、対象ポリシーを選んで Edit を選びます。ブロックページを編集できるのは、Block アクションのポリシーだけです。
- Configure policy settings で、turn on Modify Gateway block behavior。
- ブロック時の動作を選びます。
- Use account-level block setting: アカウント設定で構成したグローバルなブロックページ設定を使います。グローバル設定は、デフォルトの Gateway ブロックページ、HTTP リダイレクト、または カスタム Gateway ブロックページ のいずれかです。
- Override account setting with URL redirect: ポリシー単位で指定した URL へ、
307HTTP リダイレクトでユーザーをリダイレクトします。
- (任意)アカウントレベルのブロックページ設定でカスタム Gateway ブロックページを使っている場合、Add an additional message to your custom block page when traffic matches this policy をオンにすると、このポリシーでトラフィックがブロックされたときにカスタムブロックページへ追加メッセージを表示できます。このオプションは Message フィールドの代わりになります。
- Save policy を選びます。
設定に応じて、Gateway はこのポリシーでブロックされたユーザーのブラウザーにブロックページを表示するか、指定した URL へリダイレクトします。
-
cloudflare_api_token↗ に次の権限を追加します。Zero Trust Write
-
Block アクションの DNS ポリシーを選びます。
-
ポリシーの
rule_settings↗ でblock_page_enabledをオンにします。カスタム Gateway ブロックページ を設定済みの場合は、このポリシーでトラフィックがブロックされたときに追加のblock_reasonを表示できます。resource "cloudflare_zero_trust_gateway_policy" "dns_block_security_categories" { name = "Block DNS Security Categories" enabled = true account_id = var.cloudflare_account_id description = "Managed by Terraform - Generic security policy based on Cloudflare Threat Intelligence categories." precedence = 101 action = "block" filters = ["dns"] /* Categories being enabled here: - 80: "Command and Control & Botnet" - 83: "Cryptomining" - 117: "Malware" - 131: "Phishing" - 153: "Spyware" - 175: "DNS Tunneling" - 176: "DGA Domains" - 178: "Brand Embedding" */ traffic = "any(dns.security_category[*] in {80 83 117 131 153 175 176 178})" identity = "" rule_settings = { block_page_enabled = true block_reason = "This domain has been flagged as a potential security risk." // Adds an additional message to the custom block page. Requires enabling custom block page in cloudflare_zero_trust_gateway_settings. } }
Cloudflare がホストするブロックページは、全体に適用する変更でカスタマイズできます。Gateway は、ユーザーがブロックページに到達するたびにその内容を表示します。カスタマイズは、トラフィックをブロックするポリシーの種類(DNS または HTTP)に関係なく適用されます。
ブロックページをカスタマイズするには:
- Cloudflare ダッシュボード ↗ で、Zero Trust > Reusable components > Custom pages を開きます。
- Account Gateway block page で Customize を選択します。
- Custom Gateway block page を選びます。Gateway はカスタムブロックページのプレビューを表示します。次の項目をカスタマイズできます。
- 組織名
- ロゴ
- ヘッダーテキスト
- グローバルなブロックメッセージ(ポリシー固有のブロックメッセージの上に表示されます)
- Mailto リンク
- 背景色
- Save を選択します。
-
cloudflare_api_token↗ に次の権限を追加します。Zero Trust Write
-
cloudflare_zero_trust_gateway_settings↗ で、block_page引数にカスタマイズ内容を設定します。resource "cloudflare_zero_trust_gateway_settings" "team_name" { account_id = var.cloudflare_account_id settings = { block_page = { enabled = true //do not use the default Gateway block page mode = "customized_block_page" //use a custom block page name = "Cloudflare" logo_path = "https://logos.com/a.png" header_text = "--header--" footer_text = "--footer--" mailto_address = "[email protected]" mailto_subject = "Blocked Request" background_color = "#ffffff" suppress_footer = false } } }
以降、ユーザーがブロックされた Web サイトにアクセスすると、Gateway はカスタムの Gateway ブロックページを表示します。
より細かいユーザー向けフィードバックとして、任意の Gateway DNS または Network の Block ポリシーで、Cloudflare One Client のブロック通知を有効にできます。ブロックされたユーザーには、設定したカスタムメッセージ付きの OS 通知が Cloudflare One Client から届きます。
クライアント通知は、カスタムブロックページ より次の点が優れています。
-
クライアント通知はネットワークポリシーでも動作します。特定のポート、ファイルアップロード、プロトコルのブロックなど、ユーザー通信に対する部分的な操作にもフィードバックを出せます。
-
クライアント通知では、ポリシーごとに固有のリンクへユーザーを誘導できます。たとえば、組織の利用規定、データ保護ポリシー、既存の IT トラブルシューティング基盤へリンクできます。社内にそうした基盤がない場合は、Cloudflare Pages に HTML サイトをすばやくデプロイし、Cloudflare Access ポリシー の背後に置き、ユーザーの Access JWT にあるアイデンティティとデバイスポスチャの値に基づいて動的なフィードバックを返せます。