借助 Cloudflare Zero Trust,当用户被 Gateway 策略阻断时,你可以向他们提供可操作的反馈。自定义拦截消息可以减少用户的困惑并降低你的 IT 工单负担。
有两种显示拦截消息的不同方式:
当用户被 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 onModify Gateway block behavior(修改 Gateway 拦截行为)。
- 选择您的拦截行为:
- Use account-level block setting(使用账户级拦截设置):使用在您账户设置中配置的全局拦截页面设置。全局设置可以是默认 Gateway 拦截页面、HTTP 重定向或自定义 Gateway 拦截页面。
- Override account setting with URL redirect(使用 URL 重定向覆盖账户设置):使用
307HTTP 重定向将用户重定向到您在策略级别指定的 URL。
- (可选)如果您的账户级拦截页面设置使用自定义 Gateway 拦截页面,您可以启用 When traffic matches this policy, add an additional message on the custom block page(当流量与此策略匹配时,在自定义拦截页面中添加附加消息),以便在流量被此策略拦截时向您的自定义拦截页面添加自定义消息。此选项将替换 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(账户 Gateway 拦截页面) 下,选择 Customize(自定义)。
- 选择 Customize Gateway block page(自定义 Gateway 拦截页面)。Gateway 将显示自定义拦截页面的预览。可用的自定义设置包括:
- 选择 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 // 不要使用默认的 Gateway 拦截页面 mode = "customized_block_page" // 使用自定义拦截页面 name = "Cloudflare" logo_path = "https://logos.com/a.png" header_text = "--header--" footer_text = "--footer--" mailto_address = "admin@example.com" mailto_subject = "Blocked Request" background_color = "#ffffff" suppress_footer = false } } }
当您的用户访问被拦截的网站时,Gateway 现在将显示自定义 Gateway 拦截页面。
为了提供更细粒度的用户反馈,你可以在任何 Gateway DNS 或 Network Block 策略上启用 Cloudflare One Client 拦截通知。被阻断的用户将收到来自 Cloudflare One Client 的操作系统通知,其中包含你设置的自定义消息。
客户端通知比自定义拦截页面提供了更多的功能:
-
客户端通知适用于网络策略,这意味着你可以针对用户流量上的所有部分操作表面提供反馈,包括阻断特定端口、文件上传或协议。
-
客户端通知允许你将用户引导至每条独立策略的唯一链接。例如,你可以将用户链接到组织的接受使用规则、数据保护策略或任何现有的 IT 故障排查基础设施。如果组织内部不存在此类基础设施,你可以快速在 Cloudflare Pages 上部署一个 HTML 站点,将该站点置于 Cloudflare Access 策略 保护之下,并基于用户 Access JWT 中发现的身份和设备姿态值提供动态反馈。