跳转到内容
搜索文档

拦截页面

最后更新 查看 MarkdownAgent 设置

当 Gateway 使用 DNSHTTP 拦截策略拦截流量时,您可以配置在用户的浏览器中显示拦截页面。您可以提供拦截流量的描述性原因和联系信息,也可以将用户的浏览器重定向到另一个页面。您可以在全局范围内为每个拦截(Block)策略应用这些自定义,也可以在各条策略中重写该设置。

前提条件

为了让拦截页面显示为被拦截域的 URL,您组织的设备必须安装 Cloudflare 证书。企业(Enterprise)用户也可以部署自己的根 CA 证书。如果您没有安装证书,拦截页面将无法正确显示

配置拦截页面

Gateway 将在流量被拦截的任何用户的浏览器中显示全局拦截页面。默认情况下,对于您开启此功能的任何 DNS 拦截策略以及所有的 HTTP 拦截策略,Gateway 都会显示该拦截页面。您可以在单个策略的设置中开启或重写全局设置

要配置全局拦截页面:

  1. Cloudflare One 中,转到 Reusable components(可重用组件) > Custom pages(自定义页面)
  2. Account Gateway block page(账户 Gateway 阻止页面) 下,Gateway 将显示当前的拦截页面设置。选择 Manage(管理)
  3. 选择是使用默认的 Gateway 拦截页面URL 重定向还是自定义 Gateway 拦截页面
  4. 选择 Save(保存)

使用默认拦截页面

当您选择 Default Gateway block page(默认 Gateway 拦截页面) 时,Gateway 将显示由 Cloudflare 托管的拦截页面。这是 Gateway 拦截所有流量时的默认选项。

重定向到拦截页面

除了显示 Cloudflare 拦截页面外,您还可以配置 Gateway 返回 307(临时重定向)HTTP 响应代码,并重定向到自定义 URL。

将用户重定向到非 Cloudflare 拦截页面的步骤:

  1. Cloudflare One 中,转到 Reusable components(可重用组件) > Custom pages(自定义页面)
  2. Account Gateway block page(账户 Gateway 阻止页面) 下,选择 Manage(管理)
  3. 选择 URL redirect(URL 重定向)
  4. 输入您想要将拦截流量重定向到的 URL。
  5. (可选)开启 Send policy context(发送策略上下文) 以向重定向的 URL 发送附加策略上下文
  6. 选择 Save(保存)

当用户流量匹配配置了拦截页面的 Block 策略时,Gateway 现在将把用户重定向到自定义页面。

要创建 HTTP 策略以重定向 URL,请参阅 Redirect(重定向)操作

策略上下文

开启发送策略上下文时,Gateway 会将匹配请求的详细信息作为查询字符串附加到重定向的 URL 中。并非每个上下文字段都会被包含。可能包含的策略上下文字段包括:

策略上下文字段

字段 定义 示例
User email(用户电子邮件) 发起查询的用户的电子邮件。 &[email protected]
Site URL 原始 HTTP 请求的完整 URL,或 DNS 查询中的域名。 &cf_site_uri=https%3A%2F%2Fmalware.testcategory.com%2F
URL category 要重定向的 URL 的域类别 &cf_request_categories=New%20Domains,Newly%20Seen%20Domains
Original HTTP referer 对于 HTTP 流量,则是 HTTP 请求的原始 HTTP referer 标头。 &cf_referer=https%3A%2F%2Fexample.com%2F
Rule ID 与请求匹配的 Gateway 策略的 ID。 &cf_rule_id=6d48997c-a1ec-4b16-b42e-d43ab4d071d1
Source IP 匹配策略的设备的源 IP 地址。 &cf_source_ip=203.0.113.5
Device ID 匹配策略的设备的 UUID。 &cf_device_id=6d48997c-a1ec-4b16-b42e-d43ab4d071d1
Application names 重定向的域所对应的应用程序名称(如果有)。 &cf_application_name=Salesforce
Filter 触发拦截的流量类型过滤器。 &cf_filter=http, &cf_filter=dns, &cf_filter=av, or &cf_filter=l4
Account ID 关联的 Zero Trust 账户的 Cloudflare 账户 ID &cf_account_id=d57c3de47a013c03ca7e237dd3e61d7d
Query ID 重定向对其生效的 DNS 查询的 ID。 &cf_query_id=f8dc6fd3-a7a5-44dd-8b77-08430bb4fac3
Connection ID 重定向对其生效的代理连接的 ID。 &cf_connection_id=f8dc6fd3-a7a5-44dd-8b77-08430bb4fac3
Request ID 重定向对其生效的 HTTP 请求的 ID。 &cf_request_id=f8dc6fd3-a7a5-44dd-8b77-08430bb4fac3

重定向优先级

重定向 URL 中的路径和查询优先于原始 URL。当您开启 Send policy context(发送策略上下文) 时,Gateway 将在重定向 URL 的末尾附加上下文。例如,如果原始 URL 是 example.com/path/to/page?querystring=X&k=1,而重定向 URL 是 cloudflare.com/redirect-path?querystring=Y,Gateway 将把请求重定向到:

cloudflare.com/redirect-path?querystring=Y&[email protected]

自定义拦截页面

您可以通过进行全局更改来自定义 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 = "[email protected]"
    			mailto_subject = "Blocked Request"
    			background_color = "#ffffff"
    			suppress_footer = false
    		}
    	}
    }

当您的用户访问被拦截的网站时,Gateway 现在将显示自定义 Gateway 拦截页面。

添加徽标图片

您可以添加外部徽标图像以显示在您的自定义拦截页面上。拦截页面会将所有图像的大小调整为 146x146 像素。URL 必须有效且长度不能超过 2048 个字符。支持的文件类型包括 SVG、PNG、JPEG 和 GIF。

允许用户给管理员发邮件

您可以向自定义拦截页面添加 Mailto 链接,这允许用户就拦截的网站直接向您发送电子邮件。当用户在拦截页面上选择 Contact your Administrator(联系您的管理员) 时,会打开一个电子邮件模板,其中包含您配置的电子邮件地址和主题行,以及以下诊断信息:

字段 描述
Site URL 被拦截页面的 URL。
Rule ID 拦截该页面的 Gateway 策略的 ID。
Source IP 用户设备的公共源 IP。
Account ID 与拦截策略关联的 Cloudflare 账户。
User ID 访问该页面的用户的 ID。目前,用户 ID 不会在仪表板中显示,只能通过调用 API 来查看。
Device ID 访问该页面的设备的 ID。这是由 Cloudflare One Client 生成的。
Block Reason 您针对特定策略设置的拦截消息。

配置策略拦截行为

对于 DNS 拦截策略,您需要为每个您希望显示的策略开启拦截页面。对于 HTTP 拦截策略,Gateway 默认会自动显示您的全局拦截页面设置。您可以在每条策略的设置中,针对这两种策略类型重写全局拦截页面设置。

要为单个策略开启拦截页面或重写全局拦截页面设置:

  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 仪表板中,转到 Zero Trust > Traffic policies(流量策略) > Firewall policies(防火墙策略) > HTTP
  2. 选择 Add a policy(添加策略) 以创建新策略,或者选择您要自定义的策略并选择 Edit(编辑)。您只能为具有 Block 操作的策略编辑拦截页面。
  3. Configure policy settings(配置策略设置) 下,go toModify 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。

限制

证书错误

如果您的用户在访问被拦截的页面时,在其浏览器中收到安全风险警告,请检查您是否已正确在其设备上安装了证书。如果未安装证书,或者安装的证书无效或已过期,您的用户浏览器可能会:

  • 显示 HTTP Response Code: 526 错误页面,指示不安全的上游。
  • 关闭连接且无法显示任何页面。

有关解决证书问题的更多信息,请参阅故障排除

不兼容的 DNS 记录类型

为了拦截对类型非 AAAAA 的 DNS 记录的查询解析,Gateway 将返回 REFUSED (RCODE:5) DNS 返回码。Gateway 会拦截该请求,但不会显示拦截页面。

第三方过滤冲突

Gateway 无法正确过滤通过第三方 VPN 或其他互联网过滤软件(例如 iCloud 专用代理Google Chrome IP 保护)发送的流量。为确保您的 DNS 策略应用于您的流量,Cloudflare 建议关闭可能会干扰 Gateway 的软件。

要关闭 iCloud 专用代理,请参阅适用于 macOSiOS 的 Apple 用户指南。

数据中心与 IP 地址匹配

如果匹配拦截策略的 HTTP 请求与对应的 DNS 查询没有到达同一个 Cloudflare 数据中心,Gateway 将显示默认拦截页面,而不是您的自定义拦截页面。

这适用于发送到任何 Gateway 解析器终端节点的 DNS 查询,包括通过 IPv4、IPv6 以及加密协议(如 DoH (DNS over HTTPS) 和 DoT (DNS over TLS))发送的查询。如果 DNS 查询被路由到与对应的 HTTP 请求不同的 Cloudflare 数据中心(例如,如果 DoH 流量在 WARP 隧道外发送),Gateway 将无法关联这两个请求,并会显示默认拦截页面,而不是您的自定义拦截页面。

如果 HTTP 请求来自与 DNS 请求不同的 IP 地址,Gateway 可能不会在拦截页面上显示规则 ID、自定义消息或其他字段。这可能发生在递归 DNS 解析器的源 IP 地址与用户设备的 IP 地址不同的情况下。

这篇文档对您有帮助吗?