跳转到内容
搜索文档

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 跳过对特定目的地的解密,以便这些应用程序能够继续工作。

这篇文档对您有帮助吗?