跳转到内容
搜索文档

网络过滤

最后更新 查看 MarkdownAgent 设置

Secure Web Gateway 允许您在网络层应用策略,以控制用户可以访问哪些网站和非 HTTP 应用程序。当您需要控制非网页浏览流量时,这非常有用 —— 例如,在您的组织内阻止远程桌面连接或限制文件传输工具。

网络策略检查单个 TCP 和 UDP 数据包(携带所有互联网流量的底层数据单元),这意味着您可以过滤 DNSHTTP 策略无法触及的流量。DNS 策略只能看到域名查找,HTTP 策略只能看到 Web 请求 —— 而网络策略更为深入,能够捕获像 SSH(远程终端访问)、RDP(远程桌面)以及运行在非标准端口上的自定义应用程序等协议。

1. 连接到 Gateway

连接设备

要过滤来自设备(如笔记本电脑或手机)的网络流量:

  1. 在您的设备上安装 Cloudflare One Client
  2. 在 Cloudflare One Client 设置中,登录到您组织的 Cloudflare One 实例
  3. (可选)如果想在用户被阻止时显示自定义阻止页面,请在您的设备上安装 Cloudflare 根证书。如果没有证书,被阻止的用户将看到通用的浏览器连接错误,而不是信息丰富的提示页面。
  4. 为 TCP 启用 Gateway 代理。Gateway 代理是将设备流量路由通过 Cloudflare 以使网络策略可以检查它的组件 —— 如果不启用它,您的策略将不会生效。或者,还可以选择启用 UDP 代理以检查端口 443 上的 QUIC 流量(HTTP/3 连接使用的一种较新协议)。

连接私有网络

要过滤来自私有网络(未向公共互联网开放的公司内部网络)的流量,请参阅 Cloudflare Tunnel 指南

2. 验证设备连接性

验证连接性可确保在您针对设备流量构建策略之前,设备的流量确实正流经 Cloudflare。

要验证您的设备已连接到 Cloudflare One:

  1. Cloudflare 仪表板中,转到 Zero Trust > Traffic policies(流量策略) > Traffic settings(流量设置)
  2. Log traffic activity(记录流量活动) 下,启用所有网络日志的活动日志记录。这会指示 Cloudflare 记录网络层流量,以便您确认设备是否出现在日志中。
  3. 在您的 Cloudflare One Client 设备上,打开浏览器并访问任意网站。这会生成应该出现在日志中的流量。
  4. 确定设备的源 IP(即 Cloudflare 看到的您连接的公网地址):
  1. 打开 Cloudflare One Client。
  2. 转到 Profile(配置文件)
  3. 记录 Client Interface IP(客户端接口 IP)。这与将在网络日志中显示为源 IP 的地址相同。
  1. 打开 Cloudflare One Client。
  2. 转到 Settings(设置,齿轮图标) > Preferences(偏好设置) > General(常规)
  3. 记录 Public IP(公网 IP)。这与将在网络日志中显示为源 IP 的地址相同。
  1. Cloudflare 仪表板中,转到 Zero Trust > Insights(洞察) > Logs(日志) > Network logs(网络日志)。在构建网络策略之前,请确保能看到来自您设备分配的源 IP 的网络日志。

如果几分钟后没有日志出现,请检查两点:第一,验证 Gateway 代理是否已打开;第二,通过检查 Cloudflare One Client 连接状态,确认该设备已注册到您的 Zero Trust 组织中。

3. 创建您的第一条网络策略

网络策略包含两个部分:选择对哪些流量采取行动的匹配器(例如,发往端口 22(SSH 的默认端口)的所有数据包)以及决定对其执行什么操作的操作(例如,阻止连接)。

要创建新的网络策略:

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

  2. Network(网络) 选项卡中,选择 Add a network policy(添加网络策略)

  3. 为策略命名。

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

  5. 选择当流量匹配该逻辑表达式时要采取的 Action(操作)。例如,您可以使用 设备序列号 列表,以确保用户只有在从公司设备使用 Cloudflare One 客户端连接时才能访问应用程序:

    选择器 运算符 逻辑 操作
    SNI 域名 (SNI Domain) is internalapp.com 且 (And) 阻止 (Block)
    通过设备状态检测 (Passed Device Posture Checks) not in 设备序列号 (Device serial numbers)
  6. 选择 Create policy(创建策略)

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

    类型 项目 权限
    Account Zero Trust Edit

2.(可选)配置您的 API 环境变量以包含您的 账户 ID 和 API 令牌。 3. 向 创建 Zero Trust Gateway 规则 端点发送 POST 请求。例如,您可以使用 设备序列号 列表,以确保用户只有在从公司设备使用 Cloudflare One 客户端连接时才能访问应用程序:

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": "Enforce device posture",
		"description": "Ensure only devices in Zero Trust organization can connect to application",
		"precedence": 0,
		"enabled": true,
		"action": "block",
		"filters": [
				"l4"
		],
		"traffic": "any(net.sni.domains[*] == \"internalapp.com\")",
		"identity": "",
		"device_posture": "not(any(device_posture.checks.passed[*] in {\"LIST_UUID\"}))"
	}'
{
	 "success": true,
	 "errors": [],
	 "messages": []
}

API 将返回该策略的摘要以及您的请求结果。

有关详细信息,请参阅 网络策略

4. 添加可选策略

请参阅我们的常用网络策略列表,以了解您可能想要创建的策略。常见的添加包括阻止发往特定 IP 范围的流量,限制访问非标准端口(除了众所周知的端口如用于 HTTP 的 80 和用于 HTTPS 的 443 之外的端口),以及使用协议检测基于流量模式(而不仅仅是端口号)来识别 BitTorrent 等应用程序。

这篇文档对您有帮助吗?