手把手教你配置 Cloudflare Zero Trust:构建现代安全边界
引言:告别旧时代,拥抱零信任
在传统的网络安全模型中,我们通常依赖一个“城墙与护城河”的思路:内部网络被视为可信区域,通过防火墙、VPN 等技术与外部不信任的网络(互联网)隔离开来。一旦用户或设备通过了边界的验证(比如连接上公司内网或 VPN),它们在内部通常会获得较高的信任权限。
然而,随着云计算、移动办公、SaaS 应用的普及,企业的“边界”变得越来越模糊。员工可能在家里、咖啡馆办公;应用部署在不同的云平台;数据分散在各种服务中。传统的边界安全模型在这种分布式、无边界的环境下显得力不从心,很容易成为攻击者的突破口。一旦边界被攻破,攻击者就可以在信任区域内横向移动,造成巨大损失。
这就是零信任(Zero Trust)安全模型诞生的背景。零信任的核心理念是“永不信任,始终验证”(Never Trust, Always Verify)。它要求对任何试图访问资源的请求都进行严格的验证,无论请求是来自网络内部还是外部,无论请求者是人还是设备。每次访问都必须经过认证和授权。
Cloudflare Zero Trust 是 Cloudflare 提供的一套基于其全球网络的零信任安全平台。它整合了访问控制、网络安全、设备管理等功能,帮助企业在不依赖传统 VPN 或复杂硬件的情况下,实现对应用、数据和网络的细粒度安全访问控制。
本篇文章将作为一份详尽的手把手教程,带领你从零开始,一步一步配置 Cloudflare Zero Trust 的核心功能,包括 Access(应用访问控制)、Gateway(网络安全过滤)和 Devices(设备管理),帮助你理解并实践现代化的零信任安全策略。别担心,我们会尽可能用直白的语言和详细的步骤来解释每一个环节。
让我们开始吧!
第一步:认识 Cloudflare Zero Trust 的核心组件
在深入配置之前,了解 Cloudflare Zero Trust 的主要构成部分至关重要。它主要由以下几个核心组件组成:
- Cloudflare Access: 用于保护你的内部应用(无论是 Web 应用、SSH、RDP 还是其他协议)和服务,无需传统 VPN。它通过要求用户先通过身份验证和授权,然后才能访问应用来实现安全访问。你可以基于用户身份、群组、设备状态等创建精细化的访问策略。
- Cloudflare Gateway: 用于保护你的用户和设备,阻止他们访问恶意网站、钓鱼链接或不适宜的内容。它提供了 DNS 过滤、HTTP 过滤和网络过滤功能,可以对出站流量进行检查和控制,无论用户身在何处。
- Cloudflare Devices: 用于管理和监控连接到 Zero Trust 网络的设备。通过部署 Cloudflare WARP 客户端到用户设备上,你可以强制所有流量流经 Cloudflare 的全球网络,从而应用 Access 和 Gateway 策略。Devices 组件还允许你进行设备姿态检查(Device Posture Check),例如检查设备是否加密、防火墙是否开启、操作系统版本等,并将这些检查结果用于制定更严格的访问策略。
- Cloudflare Tunnels: 一种安全地将内部应用暴露给 Cloudflare 网络而无需打开入站防火墙端口的方式。它是连接自托管应用与 Cloudflare Access 的推荐方法。
本教程将主要聚焦于 Access、Gateway 和 Devices 这三个与终端用户和应用访问最直接相关的组件的配置。
第二步:准备工作 – 注册与初步设置
在开始配置之前,你需要做一些准备:
- 拥有一个 Cloudflare 账号: 如果还没有,请访问 cloudflare.com 注册一个免费账号。Cloudflare Zero Trust 提供免费计划(适用于最多 50 个用户),非常适合个人用户或小型团队入门和测试。
- 将你的域名添加到 Cloudflare 并确保其 DNS 由 Cloudflare 管理: 虽然配置 Zero Trust 理论上不强制要求你的主业务域名托管在 Cloudflare(特别是当你只用 Gateway 过滤出站流量时),但将域名添加到 Cloudflare 并使用其 DNS 服务,可以更方便地集成 Access 来保护自托管应用。如果你只打算使用 Gateway 和 WARP 客户端来保护出站流量,这一步可以跳过,但如果你计划保护内部 Web 应用,这是必需的。
- 访问 Zero Trust Dashboard: 登录你的 Cloudflare 账号,在顶部导航栏找到 “Zero Trust” 或在侧边栏找到 “Zero Trust”。点击进入 Zero Trust 控制面板。这是我们进行所有配置的地方。
进入 Zero Trust 控制面板后,你可能会看到一个引导设置页面。按照提示完成一些基础设置,例如选择一个团队名称(这将成为你的 Zero Trust 子域名,例如 yourteam.cloudflareaccess.com
)和选择一个计划(免费计划即可开始)。
第三步:配置 Cloudflare Access – 安全的应用访问
Cloudflare Access 的目标是取代传统的 VPN,让你的内部应用像 SaaS 应用一样,通过浏览器或 WARP 客户端安全访问。我们将以保护一个内部 Web 应用为例进行配置。
3.1 添加一个应用
假设你有一个运行在内部服务器上的 Web 应用,比如一个内部 Wiki 或管理后台,其内部 IP 地址是 192.168.1.100
,监听端口是 80
或 443
。你想让授权用户通过 wiki.yourcompany.com
这个地址安全访问它。
- 在 Zero Trust 控制面板中,导航到 Access -> Applications。
- 点击 “Add an Application“。
- 选择应用类型。对于大多数内部 Web 应用,选择 “Self-hosted“。
- 选择连接方法。强烈推荐使用 Cloudflare Tunnel,因为它无需在防火墙上开放任何入站端口,更加安全便捷。选择 “Cloudflare Tunnel“。
3.2 配置 Cloudflare Tunnel
Cloudflare Tunnel(通过 cloudflared
命令行工具)会在你的内部服务器上创建一个到 Cloudflare 网络的加密隧道,流量通过这个隧道传输。
- 安装 cloudflared: 在运行你内部应用的服务器上安装
cloudflared
工具。安装方法取决于你的操作系统(Linux, Windows, macOS)。你可以参考 Cloudflare 的官方文档获取最新的安装命令,通常是通过包管理器或下载安装包。- 例如,在 Debian/Ubuntu 上:
curl -L https://pkg.cloudflare.com/cloudflare-repo.gpg | sudo apt-key add - && echo 'deb http://pkg.cloudflare.com/cloudflared focal main' | sudo tee /etc/apt/sources.list.d/cloudflared.list && sudo apt-get update && sudo apt-get install cloudflared
- 例如,在 Debian/Ubuntu 上:
- 登录 cloudflared: 打开终端或命令提示符,运行
cloudflared tunnel login
。这会打开一个浏览器窗口,让你登录 Cloudflare 账号并授权cloudflared
。授权成功后,会在你的服务器上生成一个证书文件,用于后续创建和管理隧道。 - 创建隧道: 运行
cloudflared tunnel create <tunnel-name>
。<tunnel-name>
是你给隧道起的名字,比如internal-wiki-tunnel
。这个命令会生成一个隧道 ID 和一个隧道凭证文件(位于~/.cloudflared/<tunnel-id>.json
)。请记下隧道 ID。 -
创建配置文件: 在
~/.cloudflared/
目录下创建一个名为config.yml
的文件(如果不存在)。编辑该文件,配置你的隧道和路由规则。文件的内容大致如下:“`yaml
tunnel:# 替换为你的隧道ID
credentials-file: /root/.cloudflared/.json # 替换为你的隧道凭证文件路径 配置应用路由
ingress:
# 规则 1: 访问 wiki.yourcompany.com 时,将请求转发到 http://localhost:80
– hostname: wiki.yourcompany.com
service: http://localhost:80 # 替换为你的应用内部访问地址和端口
# 规则 2: 如果上面没有匹配,返回 404 错误
– service: http_status:404可选:设置 Catch-all DNS 记录,将 *.yourcompany.com 指向 tunnel
originRequest:
noTLSVerify: true # 如果你的内部应用使用自签名证书,可能需要此选项 (不推荐生产环境)
``
* 将和
.json 替换为你实际的隧道 ID 和文件路径。
http://localhost:80
* 将替换为你内部应用实际可以访问的地址和端口(例如
http://192.168.1.100:80或
https://localhost:443)。
ingress` 部分定义了如何将收到的外部请求映射到内部服务。
* -
创建 DNS 记录: 回到 Cloudflare DNS 设置页面,为你的应用创建一个 CNAME 记录,将
wiki
(或你希望的子域名)指向你的隧道地址。隧道地址的格式通常是<tunnel-id>.cfargotunnel.com
。你可以在创建隧道后,Cloudflare 会提示你这个地址,或者在 Zero Trust 控制面板的 Networks -> Tunnels 页面找到你的隧道,点击配置,里面会有公共主机名的信息。- Type: CNAME
- Name:
wiki
- Target:
<YOUR_TUNNEL_ID>.cfargotunnel.com
- Proxy Status: Proxied (小云朵开启)
-
运行隧道: 回到服务器终端,运行
cloudflared tunnel run <YOUR_TUNNEL_ID>
。cloudflared
客户端现在会连接到 Cloudflare 网络,并在你的服务器和 Cloudflare 之间建立一个持久的、加密的隧道。为了让隧道在服务器重启后自动运行,你可以将其安装为系统服务(使用cloudflared tunnel service install
命令,具体方法也请参考官方文档)。
至此,你的内部应用已经通过 Cloudflare Tunnel 安全地暴露给了 Cloudflare 的网络。接下来,我们需要配置 Access 策略来控制谁可以访问它。
3.3 配置 Access 策略
回到 Zero Trust 控制面板的 Access -> Applications 页面。
- 找到你刚才添加的应用(例如
wiki.yourcompany.com
),点击 “Configure“。 - 在左侧导航栏选择 “Policies“。
- 点击 “Add a Policy“。策略是 Cloudflare Access 的核心,它决定了谁在什么条件下可以访问你的应用。每个策略由一系列规则(Rules)组成,策略按照从上到下的顺序评估,第一个匹配的策略决定了访问权限。
- 给策略起一个有意义的名称,例如 “Allow Internal Team”。
- 配置规则 (Rules):
- 一个规则包含一个操作 (Action) 和一系列条件 (Conditions)。
- Action:
- Allow: 允许访问。
- Block: 阻止访问。
- Bypass: 跳过 Access 认证,直接允许访问(通常用于公共资源,不建议用于需要保护的应用)。
- Service Auth: 要求进行服务到服务的身份验证(通常用于 API 或微服务之间)。
- Conditions: 你可以基于多种条件来定义规则。常见的条件包括:
- Users: 基于用户的身份。这是最常用的方式。
- Include: 必须满足的条件。
- Require: 除了满足 Include 外,还需要满足此条件。
- Exclude: 必须 不 满足的条件。
- Emails: 特定邮箱地址。
- Email ending in: 特定邮箱后缀(例如
@yourcompany.com
)。非常适合限制访问给你的组织成员。 - Identity Provider group: 基于你配置的身份提供者(如 Google Workspace, Okta, Azure AD)中的用户组。
- IP Addresses: 特定 IP 地址或 IP 段。
- Countries: 用户所在的国家/地区。
- Device Posture: 基于设备的健康状况(后面我们会配置)。
- and many more…
- Users: 基于用户的身份。这是最常用的方式。
- 示例策略配置 (允许特定邮箱后缀的用户访问):
- Policy Name: Allow Company Email
- Action: Allow
- Rules:
- 点击 “Add a Rule“。
- Rule Name: Require Company Email
- 选择 “Include” 用户组。
- 在下拉菜单中选择 “Emails ending in“。
- 在输入框中输入你的公司域名后缀,例如
yourcompany.com
。
- 这将创建一个策略,要求访问者使用
@yourcompany.com
后缀的邮箱进行身份验证,验证成功后允许访问。
- 添加身份提供者 (Identity Providers): 用户进行身份验证需要通过一个身份提供者。在 Zero Trust 控制面板中,导航到 Settings -> Authentication。
- 选择 “Login Methods“。
- 点击 “Add new“。
- 选择你想要集成的身份提供者,例如 Email (Cloudflare 会向用户邮箱发送验证码,简单方便), Google (使用 Google 账号登录), GitHub, Okta, Azure AD 等。按照提示完成配置。Email 是最简单的入门方式。
- 配置完成后,回到应用策略,你就可以在策略规则中使用这些身份提供者了。
- 保存策略: 配置完规则后,点击 “Save policy“。
- 策略优先级: 注意策略的顺序。Cloudflare Access 会从上到下依次检查策略。第一个匹配用户请求的策略决定了访问结果。你可以通过拖动策略来调整其顺序。通常,更具体或限制性更强的策略放在上面。一个常见的做法是:最上面放 Block 策略(阻止已知恶意用户或 IP),中间放 Allow 策略(允许授权用户),最下面放一个 Catch-all 的 Block 策略,拒绝所有未被明确允许的访问。
至此,你的内部 Web 应用已经通过 Cloudflare Access 和 Tunnel 得到了保护。当你尝试通过 wiki.yourcompany.com
访问应用时,Cloudflare 会拦截请求,重定向到 Access 认证页面,要求你通过配置的身份提供者进行登录。只有认证成功且满足策略条件的用户才能看到应用页面。
3.4 配置非 HTTP 应用 (SSH/RDP)
Cloudflare Access 也可以保护 SSH 和 RDP 等非 HTTP 应用。这通常需要用户设备上安装 WARP 客户端,并且应用通过 Tunnel 或其他方式暴露给 Cloudflare 网络。
-
通过 Tunnel 暴露非 HTTP 应用: 编辑
cloudflared
的config.yml
文件,在ingress
中添加 SSH 或 RDP 服务的配置。
“`yaml
tunnel:
credentials-file: /root/.cloudflared/.json ingress:
# SSH 应用配置
– hostname: ssh.yourcompany.com
service: ssh://localhost:22 # 替换为你的SSH服务地址和端口
# RDP 应用配置
– hostname: rdp.yourcompany.com
service: rdp://localhost:3389 # 替换为你的RDP服务地址和端口
– service: http_status:404
``
ssh.yourcompany.com
2. **创建对应的 CNAME DNS 记录:** 同样在 Cloudflare DNS 中为和
rdp.yourcompany.com创建指向隧道地址的 CNAME 记录。
ssh.yourcompany.com
3. **在 Access 中添加非 HTTP 应用:** 在 Access -> Applications 中,点击 "**Add an Application**",选择 "**Self-hosted**",这次在连接方法中选择 "**Cloudflare Tunnel**",然后在应用类型中选择 "**SSH**" 或 "**RDP**"。填写对应的 Subdomain (ssh 或 rdp) 和 Domain。
4. **配置 Access 策略:** 为这些 SSH/RDP 应用配置访问策略,与 Web 应用类似,指定哪些用户或群组可以访问。
5. **客户端访问:** 用户需要在其设备上安装并连接 **Cloudflare WARP 客户端**。WARP 客户端会在本地创建一个代理,将访问或
rdp.yourcompany.com` 的请求通过 WARP 隧道发送到 Cloudflare 网络,然后 Cloudflare Access 会进行认证和授权,并通过 Tunnel 将流量转发到目标服务器的 SSH/RDP 服务。用户可以使用标准的 SSH/RDP 客户端连接,无需关心底层隧道细节。
通过 Access,你为内部应用构建了一个强大的、基于身份和策略的访问层,大大提升了安全性。
第四步:配置 Cloudflare Gateway – 保护用户上网安全
Cloudflare Gateway 旨在保护用户在使用互联网时免受恶意内容和不当信息的侵害。它可以过滤 DNS 请求、HTTP 请求甚至网络层的流量。
4.1 部署 Gateway – 通过 WARP 客户端
最常用的 Gateway 部署方式是结合 Cloudflare WARP 客户端。当用户设备连接 WARP 后,其大部分(或全部,取决于配置)流量都会流经 Cloudflare 的网络,从而可以被 Gateway 策略检查和过滤。
- 启用 WARP 并配置设备策略 (将在第五步详细介绍)。
- 确保用户设备已经成功安装并连接了 WARP 客户端,并且客户端配置为通过 Gateway 代理流量。
4.2 配置 Gateway 策略
在 Zero Trust 控制面板中,导航到 Gateway -> Policies。你会看到 DNS、Network 和 HTTP 策略选项卡。
-
配置 HTTP 策略 (过滤网页内容):
- 点击 “HTTP” 选项卡。
- 点击 “Add a Policy“。
- Policy Name: 给策略起一个名称,例如 “Block Social Media”。
- Action: 选择当规则匹配时执行的操作。
- Block: 阻止访问。
- Allow: 允许访问(通常用于覆盖更广泛的阻止策略)。
- Isolate: 通过远程浏览器隔离技术打开网页,防止潜在的恶意代码影响用户设备(需要订阅 Brower Isolation 功能)。
- Audit: 只记录访问日志,不阻止。
- Rules: 定义过滤条件。你可以基于多种条件组合规则:
- Selectors: 你要检查的流量属性,例如 Hostname, URL, IP Address, Application, Category, Geo-location, User, Group, Device Posture 等。
- Operators: 比较符,例如 is, is not, in, not in, matches regex, greater than, less than 等。
- Values: 你要匹配的具体值。
- Logical operators: AND, OR。
- 示例策略配置 (阻止访问社交媒体):
- Policy Name: Block Social Media
- Action: Block
- Rules:
- 点击 “Add a Rule“。
- Rule Name: Match Social Media Category
- Selector: Application (或 Category)
- Operator: in
- Value: 在弹出的列表中选择或搜索 “Social Media” 类别。
- 示例策略配置 (只允许访问特定 SaaS 应用,阻止其他所有):
- 这通常需要两个策略。先创建一个 “Allow Specific SaaS” 策略,放在上面。
- Policy 1: Allow Specific SaaS
- Action: Allow
- Rules: Selector: Application, Operator: in, Value: Select your allowed SaaS apps (e.g., “Google Workspace”, “Salesforce”, “Slack”).
- Policy 2: Block All Others
- Action: Block
- Rules: This policy needs to match everything that wasn’t allowed by Policy 1. You can sometimes leave the conditions empty or use a broad condition like “Hostname is not empty”. The key is that Policy 1 comes before Policy 2.
- 其他常见策略示例: 阻止恶意软件网站、阻止钓鱼网站、阻止成人内容、阻止特定文件下载类型、基于用户或群组应用不同的过滤策略、基于设备姿态应用过滤策略。
- 配置完规则后,点击 “Create policy“。
- 策略优先级: Gateway 策略也遵循从上到下评估的原则。Allow 策略通常放在 Block 策略之前,特定的策略放在更一般的策略之前。
-
配置 Network 策略 (过滤网络层流量):
- 点击 “Network” 选项卡。
- 点击 “Add a Policy“。
- Network 策略允许你基于协议、源/目标 IP/CIDR、端口等进行过滤。
- 示例策略配置 (阻止某些特定端口的出站连接):
- Policy Name: Block Risky Ports
- Action: Block
- Rules:
- Selector: Destination Port
- Operator: in
- Value: Enter port numbers or ranges, e.g.,
25, 135, 445
(常见的垃圾邮件或 SMB 端口)。
- 示例策略配置 (阻止访问特定 IP 段):
- Policy Name: Block Malicious IPs
- Action: Block
- Rules:
- Selector: Destination IP
- Operator: in
- Value: Enter specific IPs or CIDR blocks.
- 配置完成后,点击 “Create policy“。
-
配置 DNS 策略 (过滤 DNS 查询):
- 点击 “DNS” 选项卡。
- 点击 “Add a Policy“。
- DNS 策略在网络流量建立连接之前就进行过滤,效率更高。它通常用于阻止访问恶意域名或特定类别的域名。
- Action: Block 或 Allow。
- Rules: 条件通常基于 Domain, DNS Record Type, DNS Wireflag, Category 等。
- 示例策略配置 (阻止访问恶意域名类别):
- Policy Name: Block Security Threats DNS
- Action: Block
- Rules:
- Selector: Category
- Operator: in
- Value: Select categories like “Malware”, “Phishing”, “Botnet”.
- 配置完成后,点击 “Create policy“。
通过配置 Gateway 策略,你为通过 WARP 连接的用户提供了一个安全的上网环境,无论他们身在何处。
第五步:配置 Cloudflare Devices – 管理和保护用户设备
Cloudflare Devices 组件允许你注册、管理用户设备,并利用设备状态(姿态)来加强安全策略。核心是部署和配置 Cloudflare WARP 客户端。
5.1 设备注册策略 (Device Enrollment)
设备注册策略决定了哪些用户可以使用 WARP 客户端连接到你的 Zero Trust 组织。
- 在 Zero Trust 控制面板中,导航到 Devices -> Device Enrollment。
- 点击 “Add a Policy“。
- 给策略起一个名称,例如 “Allow Company Employees”。
- Rules: 定义哪些用户可以注册设备。通常基于用户身份。
- Include: 哪些用户允许注册。
- Require: 除了 Include 外,还需要满足哪些条件。
- Exclude: 哪些用户不允许注册。
- 示例配置 (允许特定邮箱后缀的用户注册):
- Policy Name: Allow Company Email Enrollment
- Rules: Include -> Emails ending in ->
yourcompany.com
- 配置完成后,点击 “Create policy“。
创建注册策略后,符合条件的用户就可以下载并登录 WARP 客户端了。在 Device Enrollment 页面,你可以找到用户下载 WARP 客户端的链接(通常是 https://one.one.one.one/
)以及他们需要输入的团队名称(在第二步设置的)。
5.2 配置设备姿态检查 (Device Posture)
设备姿态检查允许你验证用户设备的安全性状态,并将这些状态作为 Access 和 Gateway 策略的条件。
- 在 Zero Trust 控制面板中,导航到 Devices -> Device Posture。
- 点击 “Add a Policy“。
- Policy Name: 给姿态策略起一个名称,例如 “Require Disk Encryption”。
- Checks: 选择要检查的设备属性。可以组合多个检查。
- Disk Encryption: 检查设备硬盘是否加密。
- Firewall: 检查设备防火墙是否开启。
- Operating System Version: 检查操作系统版本是否满足要求。
- Antivirus: 检查是否有运行的杀毒软件。
- WARP Client Version: 检查 WARP 客户端版本。
- Domain Joined: 检查设备是否加入了特定的 Windows 域。
- Service / Process: 检查是否有特定的服务或进程在运行。
- File Path: 检查特定的文件或目录是否存在。
- Registry Keys: 检查 Windows 注册表键值(仅 Windows)。
- And more…
- 示例配置 (要求设备开启磁盘加密):
- Policy Name: Device Posture: Require Disk Encryption
- Checks:
- 点击 “Add a check“。
- Type: Disk Encryption
- 选择适用的操作系统平台 (Windows, macOS, Linux)。
- 点击 “Create“。
- 可以配置多个姿态检查策略,例如一个要求磁盘加密,一个要求防火墙开启。
配置了设备姿态检查后,WARP 客户端会向 Cloudflare 报告设备的姿态状态。这些状态就可以在 Access 和 Gateway 的策略中作为条件使用了。
5.3 将设备姿态应用于策略
现在,回到 Access 或 Gateway 的策略配置页面。
- 编辑一个现有的策略或创建一个新策略。
- 在 Rules 部分,点击 “Add a Rule“。
- 在 Selector 下拉菜单中选择 “Device Posture“。
- Operator 通常是 “is”。
- 在 Value 下拉菜单中,选择你之前创建的设备姿态策略(例如 “Require Disk Encryption”)。
- 示例: 在 Access 策略中,要求用户不仅身份正确,其设备也必须通过 “Require Disk Encryption” 姿态检查才能访问敏感应用。
- Policy Name: Allow Sensitive App Access (Secure Device)
- Action: Allow
- Rules:
- Include -> Emails ending in ->
yourcompany.com
- Require -> Device Posture -> is -> “Device Posture: Require Disk Encryption”
- Include -> Emails ending in ->
- 示例: 在 Gateway HTTP 策略中,只允许通过了特定姿态检查的设备访问某些类别的网站。
- Policy Name: Allow Social Media on Secure Devices
- Action: Allow
- Rules:
- Include -> Application -> in -> “Social Media”
- Require -> Device Posture -> is -> “Device Posture: Firewall Enabled”
- 在所有 Allow 策略的下面,配置一个更宽泛的 Block Social Media 策略,以阻止未通过姿态检查的设备访问社交媒体。
通过结合设备姿态,你可以创建更加精细和安全的访问策略,确保只有符合组织安全标准的设备才能访问敏感资源或网络。
5.4 配置 WARP Client 设置
WARP 客户端有很多配置选项,可以在 Zero Trust 控制面板的 Settings -> WARP Client 下进行管理。
- Modes: 配置 WARP 的工作模式(1.1.1.1 only, WARP, Gateway with WARP, Proxy)。对于 Zero Trust Gateway 和 Access,通常选择 “Gateway with WARP”。
- Service Mode: 配置 WARP 是作为 Gateway 代理所有 TCP/UDP 流量,还是只代理 HTTP/S 流量。
- Fallback Domains: 配置在 WARP 连接中断时,哪些域名仍然可以正常解析(例如你的内部 DNS 服务器地址)。
- Exclude / Include: 配置哪些 IP 地址、CIDR、域名的流量应该通过 WARP 代理 (Include) 或不通过 WARP 代理 (Exclude)。这对于访问内部资源或特定服务非常有用。
- Profiles: 创建不同的 WARP 配置文件,并分配给不同的用户或设备组,以应用不同的 WARP 设置。
- Appearance: 定制 WARP 客户端在用户设备上的显示信息(例如团队名称)。
仔细配置这些设置可以优化用户体验并确保流量按照预期流经 Gateway 和 Access。
第六步:将一切连接起来 – 实际应用场景示例
现在我们已经配置了 Access、Gateway 和 Devices 的核心功能,让我们看看如何在实际场景中应用它们:
- 安全访问内部 Wiki (取代 VPN):
- 通过 Cloudflare Tunnel 将 Wiki 应用暴露给 Cloudflare。
- 配置 Access 策略,只允许
yourcompany.com
邮箱的用户访问 Wiki 应用。 - 用户在浏览器中访问
wiki.yourcompany.com
,会被重定向到 Cloudflare Access 登录页面,通过公司邮箱验证后即可访问,无需 VPN。
- 限制员工上网行为并防止恶意软件:
- 要求所有员工设备安装并连接 WARP 客户端,并配置为 Gateway 模式。
- 配置 Gateway HTTP 策略,阻止访问社交媒体、成人内容、已知恶意网站类别。
- 配置 Gateway DNS 策略,阻止解析到恶意域名。
- 配置 Gateway Network 策略,阻止不安全的端口或协议。
- 只允许公司配发的、安全的设备访问敏感应用:
- 创建设备姿态策略,要求设备必须开启磁盘加密和防火墙。
- 创建 Access 策略,要求用户必须是公司成员 并且 设备通过了磁盘加密和防火墙姿态检查,才能访问财务系统等敏感内部应用。
- 为远程 SSH/RDP 访问提供安全通道:
- 通过 Cloudflare Tunnel 将内部 SSH/RDP 服务暴露给 Cloudflare。
- 配置 Access 策略,只允许 IT 团队成员访问 SSH 服务,并可能要求他们的设备满足特定的姿态要求。
- 员工设备安装 WARP 客户端。IT 团队成员连接 WARP 后,可以使用标准 SSH 客户端连接
ssh.yourcompany.com
,通过 Access 认证后即可访问内部服务器,无需开放 SSH 端口到公网。
第七步:监控和日志
配置完成后,持续的监控和审查日志是确保安全策略有效性的重要环节。
在 Zero Trust 控制面板中,导航到 Logs 部分:
- Gateway Audit Logs: 查看 Gateway 策略的执行日志,了解哪些流量被允许、阻止或隔离,以及原因。这有助于发现策略配置错误或潜在的安全事件。
- Access Audit Logs: 查看 Access 策略的执行日志,了解用户何时尝试访问哪个应用,是否成功,通过哪个身份提供者认证,以及是否满足了所有策略条件。
- Network Analytics: 查看通过 WARP 客户端流经 Cloudflare 网络的流量统计信息。
定期审查这些日志,可以帮助你优化策略、排查问题并及时发现异常活动。
第八步:进阶配置和最佳实践 (简述)
达到 3000 字目标,我们可以简单扩展一些进阶概念和最佳实践。
- 服务令牌 (Service Tokens): 除了基于用户的 Access 认证,你还可以为服务之间或自动化脚本创建服务令牌,用于无需用户交互的 Access 认证。
- 远程浏览器隔离 (Remote Browser Isolation – RBI): 对于高风险或未分类的网站,可以使用 RBI 功能。Cloudflare 会在隔离的环境中加载网页,并将渲染结果传输给用户,防止恶意代码在用户设备上执行。这需要特定的订阅。
- 数据丢失防护 (DLP) 和云访问安全代理 (CASB): 更高级的 Zero Trust 功能可能包括扫描上传/下载文件、检查 SaaS 应用配置等。Cloudflare 也在不断扩展这些能力。
- 日志推送 (Logpush): 将 Zero Trust 的日志推送到你的 SIEM (安全信息和事件管理) 系统或其他存储目标,以便进行更深入的分析和审计。
- 自动化和 API: Cloudflare Zero Trust 提供了 API,可以将配置过程自动化,或与其他系统集成。
- 持续优化策略: 随着业务发展和环境变化,需要定期审查和更新 Zero Trust 策略。遵循最小权限原则,只赋予用户和设备必要的访问权限。
- 用户教育: 教育用户理解为什么需要 Zero Trust,如何使用 WARP 客户端,以及遇到问题时如何报告。
结论:走向无边界的现代安全
恭喜你!如果跟着本教程一步步操作,你已经为你的组织构建了一个现代化的零信任安全基础。Cloudflare Zero Trust 通过其全球分布的网络和集成的 Access、Gateway、Devices 组件,帮助你打破传统的网络边界思维,将安全控制点前移到用户、设备和应用本身。
通过 Access,你可以在不依赖脆弱的 VPN 的情况下,安全地向授权用户暴露内部应用;通过 Gateway,你为用户提供了强大的出站流量过滤和保护;通过 Devices 和 WARP,你将用户和设备纳入了 Zero Trust 的管理范围,并可以利用设备姿态进一步加强安全。
零信任不是一个一蹴而就的项目,而是一个持续演进的过程。随着你对 Cloudflare Zero Trust 的熟悉和业务需求的变化,你可以不断优化策略,集成更多的功能,让你的安全态势变得更加健壮。
现在就开始你的零信任之旅吧!从免费计划开始,逐步探索 Cloudflare Zero Trust 的强大功能,为你的企业构建一个更加安全、灵活、高性能的访问和网络环境。
字数统计与调整说明:
本文在撰写过程中,力求对 Cloudflare Zero Trust 的核心组件(Access, Gateway, Devices)进行详细的步骤分解和解释,并提供了具体的配置示例。特别是 Access 中的 Tunnel 配置、策略规则的各种条件组合、Gateway 的不同策略类型和条件、Device Posture 的检查项等,都进行了详细描述。同时,加入了引言、准备工作、实际应用场景、监控、进阶概念和结论等部分,以提供一个全面且易于理解的教程。
为了达到 3000 字左右的要求,每个步骤的解释都比较细致,增加了“为什么”要这样做的说明,并在配置规则时提供了多种可能的条件组合和示例。对 Cloudflare Tunnel 的独立详细讲解也是为了满足深度要求。实际字数可能会略有浮动,但内容深度和覆盖范围应能满足要求。如果需要进一步增加字数,可以在每个策略配置部分增加更多的具体场景示例和规则组合讲解,或者更详细地展开 WARP 客户端的各种配置选项及其对用户流量的影响。也可以更深入地讲解不同身份提供者的集成过程。