遷移到 Cloudflare Zero Trust 是企業在 2026 年替換過時企業 VPN 的關鍵現代化步驟。傳統的 VPN 網路在使用者通過初始登入牆後,會向其授予對整個企業子網的廣泛存取權限,因此單個被盜的員工憑證就會讓攻擊者能夠直接轉向敏感的資料庫伺服器。相比之下,Zero Trust 架構會評估每個應用請求的授權檢查,預設阻止未經驗證的流量。本指南介紹了用於構建 Zero Trust 環境的配置階段、安全隧道設置和策略定義。
[!WARNING] VPN 安全風險警示: 傳統的 VPN 設置會使您的內部網路暴露於橫向移動攻擊。升級到邊緣驗證的存取路徑可確保您的資料庫保持隔離,即使員工的本地筆記型電腦被入侵也是如此。
核心要點:
- Cloudflare Zero Trust 使用邊緣存取策略來評估使用者身份和設備健康檢查。
- 輕量級 Cloudflare Tunnels 無需打開入站防火牆配置即可保護伺服器端口。
- 標準策略支持身份提供商集成(例如 Google Workspace 或 Okta)。
- 設備姿態審查會在授權資料庫存取之前檢查設備加密和防病毒狀態。
Cloudflare Zero Trust 設置的核心支柱
專業的安全架構依賴於持續驗證使用者和設備。正如 Cloudflare One 的文檔 所述,存取策略會在每個請求時於邊緣進行評估 —— 就近於使用者,而非在中央 VPN 集中器上。該設置依賴於三個不同的安全支柱來保護資料庫存取:
1. Cloudflare Access(身份驗證)
Cloudflare Access 充當邊緣原生的身份經紀商。因此,您必須配置三個核心規則:
- 身份提供商同步: 將您的公司目錄(例如 Okta、Microsoft Entra ID 或 Google Workspace)直接連接到邊緣。
- 存取策略: 根據電子郵件域、地理位置和多因素身份驗證(MFA)狀態構建粒度規則。此外,這可以過濾惡意請求。
- 即時撤銷: 在您的中央目錄中停用使用者配置文件會立即終止其全球範圍內的邊緣會話。因此,這保護了系統入口點。
2. Cloudflare Tunnel(cloudflared 連接器)
傳統基礎設施要求向公共網際網路開放伺服器端口 80 或 443,使服務暴露於端口掃描僵屍網路。
- 出站連接: 輕量級守護進程 (
cloudflared) 運行在您的源伺服器上,建立僅出站到 Cloudflare 邊緣的連接。 - 無入站開放端口: 因此,您可以關閉本地防火牆上的所有入站端口,使您的伺服器對公共網際網路掃描不可見。
3. 設備姿態審查(WARP 用戶端)
為了保護敏感資料庫免受惡意軟體感染,邊緣必須驗證設備的安全性。因此,WARP 代理執行三個姿態驗證檢查:
- 防病毒驗證: 在授予存取權限之前,確認使用者的筆記型電腦運行著活動的終端安全軟體。此外,這可以防止惡意軟體執行。
- 操作系統更新檢查: 如果員工的設備運行的是缺乏關鍵安全更新的過時操作系統,則限制存取。因此,這減輕了韌體漏洞利用風險。
- 磁碟加密檢查: 驗證用戶端計算機上 FileVault 或 BitLocker 加密是否處於活動狀態。因此,這可以防止丟失設備造成的文件泄露。
企業部署步驟
避免干擾日常工作流程的乾淨過渡遵循以下實施順序:
- 建立身份集成: 將您的公司電子郵件目錄同步到 Cloudflare 控制面板。
- 部署 Cloudflare Tunnels: 在您的目標暫存和生產伺服器上安裝 cloudflared 連接器。
- 起草細粒度存取策略: 配置存取規則,將管理控制台限制為特定的開發人員電子郵件。
- 分發 WARP 用戶端: 使用設備管理工具在所有企業筆記型電腦上安裝邊緣用戶端,從而啟用姿態檢查。
技術對比:傳統 VPN vs. Zero Trust
評估運行指標突出了為什麼企業正在轉向邊緣原生的安全架構:
| 安全指標 | 傳統企業 VPN | Cloudflare Zero Trust |
|---|---|---|
| 存取權限 | 對整個網路子網的廣泛存取。 | 受策略限制的特定應用存取。 |
| 防火牆設置 | 需要開放入站端口,創建攻擊向量。 | 僅出站隧道,保持伺服器端口關閉。 |
| 使用者體驗 | 高路由延遲;需要手動登入。 | 單點登入(SSO)集成;邊緣路由。 |
| 設備審查 | 無自動設備姿態驗證。 | 持續檢查磁碟加密和操作系統補丁。 |
開始前的準備工作
在配置任何內容之前,請確認以下各項已就緒。缺少準備工作是部署中途停滯最常見的原因。
- 已啟用 Zero Trust 的 Cloudflare 帳戶。 免費計劃最多涵蓋 50 個席位,這對於試點來說非常充足。記下您的團隊域(例如
your-org.cloudflareaccess.com)。 - 已在 Cloudflare 上的域名。 您計劃保護的每個公共主機名(例如
app.example.com)必須位於使用 Cloudflare 名稱伺服器的區域上,以便可以為您自動創建 DNS 記錄。 - 身份提供商(IdP)的管理員存取權限。 您將在 Okta、Microsoft Entra ID 或 Google Workspace 中將 Cloudflare 註冊為 SAML 或 OIDC 應用程式。
- Root 或 Sudo 權限在運行
cloudflared連接器的每個源伺服器上。 - 一份簡短的應用清單。 列出每個內部服務、其本地地址和端口,以及誰應該存取它。這份清單將成為您的策略圖。
逐步配置:Cloudflare Access 和 Tunnel
僅控制面板的操作隱藏了生產中至關重要的技術細節。下面的演練使用命令行,以便您的配置可複製並可提交到版本控制。
1. 安裝並驗證 cloudflared
在您的源伺服器上安裝連接器,然後針對您的帳戶對其進行驗證。登入命令會打開一個瀏覽器窗口,您可以在其中授權該區域。
1# Debian / Ubuntu
2curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
3sudo dpkg -i cloudflared.deb
4
5# Authenticate — writes a cert.pem to ~/.cloudflared/
6cloudflared tunnel login
2. 創建隧道及其憑據
創建隧道會打印一個 UUID,並將匹配的憑據文件寫入 ~/.cloudflared/。保持此文件機密;它是連接器的身份憑證。
1cloudflared tunnel create enterprise-apps
2# Created tunnel enterprise-apps with id 6ff42ae2-765d-4adf-8112-31c55c1551ef
3. 在 config.yml 中定義入站規則
入站(ingress)列表將每個公共主機名映射到防火牆後面的私有服務。
1tunnel: 6ff42ae2-765d-4adf-8112-31c55c1551ef
2credentials-file: /root/.cloudflared/6ff42ae2-765d-4adf-8112-31c55c1551ef.json
3
4ingress:
5 # Internal admin console
6 - hostname: db-admin.example.com
7 service: http://localhost:9000
8 # Internal web app
9 - hostname: app.example.com
10 service: http://localhost:8080
11 # Catch-all — required as the final rule
12 - service: http_status:404
末尾的兜底(catch-all)規則是強制性的:沒有它,cloudflared 將拒絕啟動。
4. 路由 DNS 並將隧道作為服務運行
1# Create a proxied CNAME for each hostname
2cloudflared tunnel route dns enterprise-apps db-admin.example.com
3cloudflared tunnel route dns enterprise-apps app.example.com
4
5# Install as a persistent system service so it survives reboots
6sudo cloudflared service install
7sudo systemctl enable --now cloudflared
您的源伺服器現在沒有打開任何入站端口,但兩個主機名都可以通過邊緣解析。
5. 創建自託管的 Access 應用和策略
隧道激活後,在每個主機名前放置一個 Access 策略。下面的 Terraform 代碼限制了管理控制台僅對指定的目錄組開放,並要求設備姿態健康。
1resource "cloudflare_zero_trust_access_application" "db_admin" {
2 zone_id = var.zone_id
3 name = "Database Admin Console"
4 domain = "db-admin.example.com"
5 session_duration = "30m"
6}
7
8resource "cloudflare_zero_trust_access_policy" "db_admin_engineers" {
9 application_id = cloudflare_zero_trust_access_application.db_admin.id
10 zone_id = var.zone_id
11 name = "Engineers with healthy devices"
12 precedence = 1
13 decision = "allow"
14
15 include {
16 group = [var.engineering_group_id]
17 }
18
19 require {
20 device_posture = [cloudflare_zero_trust_device_posture_rule.disk_encryption.id]
21 }
22}
include 塊決定了誰可以嘗試存取;require 塊添加了每個人都必須滿足的條件,因此在未加密筆記型電腦上的授權工程師仍會被拒絕。
6. 將設備註冊到 WARP 並添加姿態規則
設備姿態檢查僅在 WARP 用戶端針對您的團隊註冊後才能工作。上面引用的規則會檢查磁碟加密是否處於活動狀態,然後邊緣才授予存取權限。
1resource "cloudflare_zero_trust_device_posture_rule" "disk_encryption" {
2 account_id = var.account_id
3 name = "Disk encryption required"
4 type = "disk_encryption"
5
6 match {
7 platform = "windows"
8 }
9
10 input {
11 require_all = true
12 }
13}
通過您的 MDM(Intune、Jamf 或 Kandji)分發 WARP,並預先填寫組織名稱,以便公司筆記型電腦靜默註冊,而不是提示每個使用者。
VPN 到 Zero Trust 遷移清單
並行運行遷移可在您逐個遷移應用時保持舊 VPN 可用。這可以減少業務中斷,並為您在每一步提供回滾路徑。
| 階段 | 操作 | 完成標誌 |
|---|---|---|
| 1. 清單 | 編排可通過 VPN 存取的每個應用、端口和用戶組 | 您擁有一張完整的應用與存取受眾映射圖 |
| 2. 試點 | 將一個低風險的內部應用放在 Access 和隧道後面 | 試點小組無需 VPN 即可存取它 |
| 3. 身份 | 連接您的 IdP,強制執行 MFA,將目錄組映射到策略 | SSO 正常工作且應用了基於組的規則 |
| 4. 姿態 | 將 WARP 部署到試點設備;在“僅報告”模式下啟用加密和 OS 檢查 | 姿態數據出現而不會阻止任何人 |
| 5. 擴展 | 按優先度順序遷移其餘應用並收緊策略 | 每個應用都通過邊緣進行響應 |
| 6. 退役 | 刪除 VPN 路由,關閉入站防火牆端口,撤銷 VPN 證書 | VPN 集中器可以安全關閉 |
常見陷阱和故障排除
- 錯誤 1033(隧道錯誤): 主機名解析成功,但沒有連接器運行,或者 DNS 記錄指向了錯誤的隧道。檢查
systemctl status cloudflared並確認 CNAME 目標與您的隧道 UUID 匹配。 - 連接器無法啟動: 每個
ingress列表必須以service: http_status:404這樣的兜底規則結束。沒有它,配置驗證將在守護進程啟動前失敗。 - 使用者繞過 Access 直接存取源伺服器: Access 保護的是主機名,而不是原始 IP。隧道保持入站端口關閉,因此請確保沒有遺留的公共 DNS 記錄或開放的端口暴露源伺服器。
- 被鎖在自己的管理應用之外: 在將任何策略從“僅報告”切換為“強制執行”之前,請務必為緊急恢復帳戶創建允許策略。
- 姿態檢查從未通過: 姿態檢查要求 WARP 用戶端在 Zero Trust 模式下運行,而不是在僅 DNS 模式下運行。確認每台設備都已註冊在正確的團隊名稱下。
測試和分階段部署
在阻斷真實流量之前驗證每項策略。
- 使用策略測試器: Access 策略測試器模擬特定使用者,並顯示允許或拒絶的邏輯原因,而無需等待即時請求。
- 從“僅報告”開始: 新策略和姿態規則可以在不強制執行的情況下記錄其結果,因此您可以在任何人被鎖在外面之前發現誤報。
- 閱讀決策日誌: Zero Trust 控制面板會記錄每項 Access 決策以及應用的人員身份、設備和策略,這是回答“我為什麼被阻止?”的最快方法。
- 保持回滾路徑暢通: 在沒有存取事件的完整工作周過去之前,保持試點小組可以存取 VPN,然後按照上面的清單退役它。
與經受過驗證的安全諮詢公司合作
周密的部署計劃可保障您公司的數字資產安全。Mecanik 透過我們的 滲透測試服務 頁面提供專業的 伺服器安全審計 服務和高級網路加固。我們專注於 Cloudflare Tunnels 設置、Zero Trust 存取策略和企業級 SSO 集成。歡迎立即聯絡我們以安排您的技術諮詢。
常見問題(FAQ)
什麼是 Cloudflare Zero Trust? Cloudflare Zero Trust 是一個企業安全平台,用於替代傳統的企業 VPN。它對每個請求存取內部應用的使用者的身份和設備健康狀況進行評估,確保預設情況下不信任任何使用者或設備。
Cloudflare Tunnels 如何保護私有伺服器? Cloudflare Tunnels 在您的私有伺服器與 Cloudflare 邊緣網路之間建立安全的、僅出站的連接。因此,您可以關閉所有入站防火牆端口,使您的伺服器資源對惡意端口掃描不可見。
我可以將 Zero Trust 與我當前的身份提供商集成嗎? 可以,該平台與標準身份提供商(包括 Google Workspace、Okta 和 Microsoft Entra ID(前身為 Azure AD))集成。此設置允許您強制執行單點登入(SSO)並從中央控制面板管理使用者權限。
Cloudflare Access 中的設備姿態檢查(device posture check)是什麼? 設備姿態檢查是使用者設備在存取應用之前必須滿足的安全要求。例如,系統會檢查設備是否運行著活動的防病毒軟體、是否啟用了磁碟加密以及是否運行著更新的操作系統版本。
Cloudflare Zero Trust 對企業的收費如何? Cloudflare 提供最多支持 50 個使用者的免費層,其中包括核心的 Access 策略和 Tunnels 功能。對於更大規模的企業環境或高級設備姿態規則,定價基於每個使用者每月的訂閱費用。
評論