跳转到内容
搜索文档

HTTP 过滤

最后更新 查看 MarkdownAgent 设置

Secure Web Gateway 允许您检查 HTTP 流量并控制用户可以访问哪些网站。DNS 过滤只能阻止或允许整个域名(例如,所有的 dropbox.com)。HTTP 过滤则更深一步 —— 它检查完整的 URL 和请求内容,因此您可以阻止像 dropbox.com/shared-folder 这样的特定页面,扫描上传的文件中是否含有敏感数据,或者根据用户在网站上的实际行为强制执行可接受使用策略。

1. 连接到 Gateway

HTTP 过滤需要三个组件协同工作:Cloudflare One Client 将设备流量路由通过 Cloudflare;根证书允许 Gateway 解密 HTTPS 流量以检查 URL 和内容;而 Gateway 代理使 Gateway 能够拦截并评估 HTTP 请求。如果没有该证书,Gateway 只能看到域名,而无法看到完整的 URL 或请求体。

要过滤来自设备的 HTTP 请求:

  1. 在您的设备上安装 Cloudflare 根证书。
  2. 在您的设备上安装 Cloudflare One Client。
  3. 在 Cloudflare One Client 设置中,登录到您组织的 Cloudflare One 实例。
  4. 为 TCP 启用 Gateway 代理。还可以选择启用 UDP 代理以检查端口 443 上的 QUIC 流量 —— 这涵盖了某些浏览器默认使用的较新协议 HTTP/3。
  5. 要检查 HTTPS 流量,请启用 TLS 解密。TLS 解密允许 Gateway 读取加密的请求。如果没有它,Gateway 看到用户访问了 example.com,但无法看到具体的页面或他们上传的内容。
  6. (可选)要扫描上传和下载的文件是否存在恶意软件,请启用反病毒扫描。

2. 验证设备连接性

要验证您的设备是否已连接到 Cloudflare One 且流量正在流经 Gateway:

  1. 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Traffic policies(流量策略) > Traffic settings(流量设置)。
  2. 在记录流量活动下,为所有 HTTP 日志启用活动日志记录。
  3. 在您的设备上,打开浏览器并访问任何网站。
  4. 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Insights(洞察) > Logs(日志) > HTTP。
  5. 确保显示来自您设备的 HTTPrequests。

在下一步中创建您的第一条 HTTP 策略后,您可以通过访问您的策略应该阻止的 URL 并确认该请求被拒绝来对其进行测试。

3. 创建您的第一条 HTTP 策略

HTTP 策略定义要匹配哪些请求(例如,上传到文件共享网站)以及要采取的操作(例如,阻止)。

要创建新的 HTTP 策略:

  1. 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Traffic policies(流量策略) > Firewall policies(防火墙策略)。

  2. 在 HTTP 选项卡中,选择 Add a policy(添加策略)。

  3. 为策略命名。

  4. 在 Traffic(流量) 下,构建一个逻辑表达式,定义您要允许或阻止的流量。

  5. 选择当流量匹配该逻辑表达式时要采取的 Action(操作)。例如,如果您配置了 TLS 解密,某些使用 嵌入式证书 的应用程序可能不支持 HTTP 检测(例如某些 Google 产品)。您可以创建一条策略来为这些应用程序绕过检测:

    选择器 运算符 值 操作
    应用程序 (Application) in 不检测 (Do Not Inspect) 不检测 (Do Not Inspect)

    Cloudflare 还建议根据 Cloudflare 的威胁情报,添加一条策略以阻止 已知威胁(例如命令与控制 (Command & Control)、僵尸网络 (Botnet) 和恶意软件 (Malware)):

    选择器 运算符 值 操作
    安全类别 (Security Categories) in 所有安全风险 (All security risks) 阻止 (Block)
  6. 选择 Create policy(创建策略)。

  1. 创建具有以下权限的 API 令牌:

    类型 项目 权限
    Account Zero Trust Edit

2.(可选)配置您的 API 环境变量以包含您的 账户 ID 和 API 令牌。 3. 向 创建 Zero Trust Gateway 规则 端点发送 POST 请求。例如,如果您配置了 TLS 解密,某些使用 嵌入式证书 的应用程序可能不支持 HTTP 检测(例如某些 Google 产品)。您可以创建一条策略来为这些应用程序绕过检测:

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 还建议根据 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 策略。

4. 添加可选策略

请参阅我们的常用 HTTP 策略列表,以了解您可能想要创建的其他策略。常见的添加包括按类型阻止文件下载,在远程浏览器中隔离有风险的网站,以及为在 TLS 解密下发生故障的应用程序添加 Do Not Inspect(不检测) 规则(例如使用证书固定来强制执行其自身证书的应用程序)。不检测规则告诉 Gateway 跳过对特定目的地的解密,以便这些应用程序能够继续工作。

这篇文档对您有帮助吗?