跳转到内容
搜索文档

Gateway 拦截页面

最后更新 查看 MarkdownAgent 设置

借助 Cloudflare Zero Trust,当用户被 Gateway 策略阻断时,你可以向他们提供可操作的反馈。自定义拦截消息可以减少用户的困惑并降低你的 IT 工单负担。

有两种显示拦截消息的不同方式:

自定义拦截页面

当用户被 Gateway DNS 或 HTTP 策略阻断时,你可以在浏览器中显示自定义拦截页面。这是一个静态页面,用于向用户解释他们为何被阻断以及如何联系 IT 部门。

自定义拦截页面有一些缺点:

  • 要显示拦截页面,你必须在最终用户设备上安装用户侧证书
  • 当用户被 Gateway 网络策略阻断时,拦截页面不会出现。
  • 自定义拦截页面仅在用户在浏览器中加载站点时显示。例如,如果允许用户访问某个站点但不允许上传文件,则文件上传将静默失败,用户不会看到拦截页面。

要解决这些局限性,我们建议使用 Cloudflare One Client 拦截通知

为 DNS 策略启用拦截页面

对于 DNS 策略,你需要按策略分别启用拦截页面。

  1. Cloudflare 仪表板中,转到 Zero Trust > Traffic policies(流量策略) > Firewall policies(防火墙策略) > DNS
  2. 选择 Add a policy(添加策略) 以创建新策略,或者选择您要自定义的策略并选择 Edit(编辑)。您只能为具有 Block 操作的策略编辑拦截页面。
  3. Configure policy settings(配置策略设置) 下,turn onModify Gateway block behavior(修改 Gateway 拦截行为)
  4. 选择您的拦截行为:
    • Use account-level block setting(使用账户级拦截设置):使用在您账户设置中配置的全局拦截页面设置。全局设置可以是默认 Gateway 拦截页面、HTTP 重定向自定义 Gateway 拦截页面
    • Override account setting with URL redirect(使用 URL 重定向覆盖账户设置):使用 307 HTTP 重定向将用户重定向到您在策略级别指定的 URL。
  5. (可选)如果您的账户级拦截页面设置使用自定义 Gateway 拦截页面,您可以启用 When traffic matches this policy, add an additional message on the custom block page(当流量与此策略匹配时,在自定义拦截页面中添加附加消息),以便在流量被此策略拦截时向您的自定义拦截页面添加自定义消息。此选项将替换 Message(消息) 字段。
  6. 选择 Save policy(保存策略)

根据您的设置,当用户被此策略拦截时,Gateway 将在用户的浏览器中显示拦截页面,或将他们重定向到指定的 URL。

  1. 为你的 cloudflare_api_token 添加以下权限:

    • Zero Trust Write
  2. 选择具有 Block 操作的 DNS 策略。

  3. 在策略的 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),自定义都将适用。

要自定义您的拦截页面:

  1. Cloudflare 仪表板中,转到 Zero Trust > Reusable components(可重用组件) > Custom pages(自定义页面)
  2. Account Gateway block page(账户 Gateway 拦截页面) 下,选择 Customize(自定义)
  3. 选择 Customize Gateway block page(自定义 Gateway 拦截页面)。Gateway 将显示自定义拦截页面的预览。可用的自定义设置包括:
    • 您的组织名称
    • 徽标
    • 标头文本
    • 全局拦截消息,它将显示在特定策略的拦截消息上方
    • Mailto 链接
    • 背景颜色
  4. 选择 Save(保存)
  1. 向您的 cloudflare_api_token 添加以下权限:

    • Zero Trust Write
  2. 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 拦截页面。

Cloudflare One Client 拦截通知

为了提供更细粒度的用户反馈,你可以在任何 Gateway DNS 或 Network Block 策略上启用 Cloudflare One Client 拦截通知。被阻断的用户将收到来自 Cloudflare One Client 的操作系统通知,其中包含你设置的自定义消息。

客户端通知比自定义拦截页面提供了更多的功能:

  • 客户端通知适用于网络策略,这意味着你可以针对用户流量上的所有部分操作表面提供反馈,包括阻断特定端口、文件上传或协议。

  • 客户端通知允许你将用户引导至每条独立策略的唯一链接。例如,你可以将用户链接到组织的接受使用规则、数据保护策略或任何现有的 IT 故障排查基础设施。如果组织内部不存在此类基础设施,你可以快速在 Cloudflare Pages 上部署一个 HTML 站点,将该站点置于 Cloudflare Access 策略 保护之下,并基于用户 Access JWT 中发现的身份和设备姿态值提供动态反馈。

这篇文档对您有帮助吗?