NSX 分布式防火牆(DFW)最佳實踐與資安防護全貌
從 5 大 Category 到 ATP——給新手工程師的完整導覽
VMware NSX 的「分布式防火牆 (Distributed Firewall, DFW)」是微分段 (Micro-segmentation) 的核心元件。本篇給剛接觸 NSX DFW 的工程師:從 NSX Manager 畫面上看到的分頁開始,逐步拆解 5 大 Category 的設計邏輯、初次建置的標準作業順序、Zone/Tag/Group 的關係、Emergency 應變流程,以及 DFW 之外還有哪些資安防護模組(IDS/IPS、防毒沙箱、URL Filter),各自需要什麼授權與架構元件。
一、從畫面看起:「所有規則」vs「類別特定的規則」
打開 NSX Manager → Security → Distributed Firewall,會看到兩個頁籤:
| 頁籤 | 涵蓋範圍 | 用途 |
|---|---|---|
| 所有規則 (All Rules) | 把 5 個 Category 攤平成一張表,依實際比對順序排列 | 故障排除:「這個封包到底先撞到哪一條規則?」 |
| 類別特定的規則 (Category Specific Rules) | 一次只看單一 Category | 日常維運:按權責分工編輯規則,不誤觸其他 Category |
二、5 大 Category 與處理順序(最重要的核心觀念)
DFW 規則永遠按照固定順序處理,不可調整:
Ethernet → Emergency → Infrastructure → Environment → Application
L2層 緊急隔離 基礎設施依賴 區域/Zone之間 應用程式微分段
⚠️ 比對機制:第一個 Match 就停止
Category 之間「由左到右」評估,每個 Category 內部規則「由上到下」評估。第一個 Match 的規則就停止比對——所以 Emergency 的 Drop 一定會蓋過後面 Application 的 Allow,不管 Application 規則寫得多寬鬆。
| Category | 內容 | 範例 |
|---|---|---|
| Ethernet | L2 層,依 EtherType 過濾 | 多數環境此區為空,較少使用 |
| Emergency | 緊急隔離/圍堵,最高優先 | Any → 受感染VM, Drop |
| Infrastructure | 環境共用的基礎服務 | 所有 VM → AD/DNS/NTP/Backup,Allow |
| Environment | Zone/區域之間的關係 | DEV Zone → PROD Zone, Drop |
| Application | 應用程式微分段 | Web-Tier → App-Tier, TCP 8443, Allow |
DFW 運作在每台 ESXi 的 vNIC 層級,專門處理 East-West(VM 之間) 流量:
三、初次建置 DFW 的標準作業順序(SOP)
💡 給新手的一句話總結
「先觀察、後收斂;先排除、再鎖門」——這兩句話涵蓋了官方最佳實踐裡最容易出錯的兩個步驟。
Step 1:vCenter / 管理元件先排除(Exclusion List)
在做任何規則收斂之前,先確認以下物件已在 DFW Exclusion List 裡:
| 自動排除(不用管) | 需手動加入 |
|---|---|
| NSX Manager / Controller / Edge VM | vCenter Server(最關鍵) |
| vCenter 的 SQL/Web Server(若分離部署) | |
| 需要 Promiscuous Mode 的 VM(IDS/IPS、流量監控工具) | |
| 虛擬 Load Balancer / 其他 VNF |
🚨 順序錯了會死鎖
一定要先把 vCenter 加入 Exclusion List,再去改 Default Rule。如果順序反了,Default Rule 一改成 Drop,vCenter 自己可能瞬間連不上,而你又需要 vCenter 介面去修正設定——形成死鎖。
Step 2:Infrastructure Category — 先讓環境「能跑」
建立「全環境共用」的規則,Source 通常是 All-VMs(一個涵蓋所有 VM 的動態 Group):
| Source | Destination | Service | Action |
|---|---|---|---|
| All-VMs | AD/DC | TCP/UDP 88,389,445,464 | Allow |
| All-VMs | DNS | TCP/UDP 53 | Allow |
| All-VMs | NTP | UDP 123 | Allow |
💡 順序建議
很多團隊會先衝去寫 Application 規則(業務需求最明確),結果上線後所有 VM 連不到 AD/DNS。建議先把 Infrastructure 規則建好,確保環境基本運作,再逐步收斂 Application 層。
Step 3:Environment Category — 畫出 Zone 邊界
依 PROD/Non-PROD、DMZ/Internal/Restricted 等 Zone 維度,先建立「兩個 Zone 之間預設 Deny」的粗粒度規則:
| Source | Destination | Action |
|---|---|---|
| SG-ENV-NONPROD | SG-ENV-PROD | Drop |
| SG-ZONE-DMZ | SG-ZONE-RESTRICTED-DB | Drop |
Step 4:Application Category — 用「Allow + Log」觀察
對每個應用系統,先寫 Allow 規則並開啟 Log,觀察一段時間:
Web-Tier → App-Tier, TCP 8443, Allow, Log ✅
App-Tier → DB-Tier, TCP 1433, Allow, Log ✅
Step 5:收斂 Default Rule 為 Drop
確認所有合法流量都已被 Allow 規則涵蓋後,把最底層 Default Rule 從 Allow 改成 Drop,並開啟 Log 持續監控是否有合法流量被誤擋。
ℹ️ 官方原文重點
「先建好所有必要的 Allow 規則,最後才把 Default Rule 改成 Drop」——這是 DFW 上線最容易被忽略、卻最關鍵的收尾步驟。如果忘記這一步,DFW 等於形同虛設(因為最底層永遠 Allow All)。
四、Zone、Tag、Group 三者的關係(新手最常搞混)
Zone(邏輯概念,安全分類,例如「PROD」「DMZ」)
↓ 透過
NSX Group(規則實際引用的物件)
↓ 成員定義方式(可混用)
├─ Tag(最常用,動態打標籤,如 env:prod)
├─ VM 名稱規則
├─ Segment / 網段
└─ IP Range
- Tag = 貼在 VM 上的「屬性標籤」(單一維度)
- Group = DFW 規則實際引用的「物件」,成員條件可以用 Tag 動態抓取
- Zone = 人類理解架構用的「邏輯分類」,最終會落地成一個或多個 Group
常見 Zone 劃分維度(可疊加使用):
| 維度 | 範例 |
|---|---|
| 環境生命週期 | PROD / Dev / Test / UAT |
| 信任等級 | DMZ / Internal / Restricted / Management |
| 業務單位 | Finance / HR / R&D |
| 應用分層(落在 Application Category) | Web / App / DB Tier |
💡 Tag 命名建議
用「維度前綴」分開不同 Tag,例如 env:prod、zone:restricted、bu:finance——一台 VM 可以同時擁有多個維度的 Tag,組成 Group 時用 AND 條件交叉,避免 Tag 數量隨 N×M 爆炸成長。
五、Emergency Category:怎麼用、隔離後怎麼辦
5.1 典型用法:平時空白,事件時精準打擊
平時:Emergency Category = (空白)
↓ VM-Web03 疑似中毒
事件中:
Rule 1: Any → VM-Web03, Drop, Log✅
Rule 2: VM-Web03 → Any, Drop, Log✅
↓ 事件處理完畢
事後:移除規則,恢復空白
⚠️ 常見誤解
Emergency 不是「整個環境全擋只留管理流量」的全域設計——那是 Default Rule 收斂(長期)的範疇。Emergency 是臨時、針對特定 VM 的應變機制,兩者目的不同不要混用。
5.2 VM 被全面隔離後,要怎麼進去處理?
方法 A:VM Console(推薦,完全繞過 DFW)
DFW 作用在 vNIC 層級,而 VM Console 透過 Hypervisor 直接存取,不經過 vNIC,不受任何 DFW 規則影響:
VM Console:VM ←→ Hypervisor(不經過 vNIC,DFW 管不到)
透過 vCenter → 該 VM → 啟動主控台,即使 Emergency 規則寫了「全擋」,依然可以登入處理(前提:VM 已安裝 VMware Tools)。
方法 B:白名單鑑識通道
若需要遠端 SSH/RDP/EDR 工具持續作業,把 Allow 規則放在 Drop 之前:
| 順序 | Source | Destination | Service | Action |
|---|---|---|---|---|
| 1 | SG-FORENSICS-JUMP | VM-Web03 | SSH/EDR Port | Allow |
| 2 | VM-Web03 | SG-FORENSICS-JUMP | EDR Port | Allow |
| 3 | Any | VM-Web03 | Any | Drop |
| 4 | VM-Web03 | Any | Any | Drop |
💡 兩者搭配
平時用方法 B 讓 EDR 持續蒐證;真的要動手清除惡意檔案/重灌時改用方法 A(Console),避免清除過程中惡意程式利用「鑑識通道」反向逃逸。
六、DFW Log 在哪裡看
| 位置 | 說明 |
|---|---|
本機:/var/log/dfwpktlogs.log | SSH 到該 VM 所在的 ESXi Host 查看 |
| 集中化:Syslog Exporter | 送到 vRealize Log Insight (vRLI) / vRNI / 第三方 SIEM |
🚨 必須先做的事
Log 預設關閉,需要逐條規則手動開啟 Log 開關,否則 dfwpktlogs.log 完全是空的。實務上常見只在 Application Category 關鍵規則 與 Default Drop Rule 上開 Log,避免大量 I/O 影響效能。
七、L7 Context Profile:App-ID / FQDN / URL Filtering
7.1「Application Category」≠「OSI Layer 7」
這是命名上的混淆陷阱:
- Application Category:5 大 Category 之一,預設仍是 L3/L4(IP+Port 的 5-tuple)
- Layer 7 Context Profile:獨立的選配功能,可以加在任何 Category 的任何規則上
7.2 Context Profile 五種屬性
| 屬性 | 說明 | 是否需要解密 |
|---|---|---|
| App-ID | 識別實際應用程式協定(流量指紋) | ❌ 不需要 |
| Domain (FQDN) Name | 依網域名稱做白名單/黑名單 | ❌ 不需要(靠 DNS Snooping + TLS SNI) |
| Custom URL / URL Category / URL Reputation | 完整 URL 路徑層級過濾 | ✅ 需要 TLS Inspection |
ℹ️ FQDN Filtering 不需解密的原理
- DNS Snooping:監聽 DNS 查詢/回應,建立 IP↔FQDN 對應表(必須先設一條 DNS Rule,FQDN 規則放它下面)
- TLS SNI:HTTPS 的 ClientHello 封包裡,SNI 欄位明文帶有目標網域,加密前就傳輸
⚠️ 建議搭配開啟 SpoofGuard,避免 DNS Spoofing 繞過 FQDN 規則。
7.3 授權需求
Context Profile 屬於進階功能,基礎版(NSX Standard)通常不含。在 VCF 9 訂閱模式下,「Full NSX」已涵蓋此功能(詳見第十節)。
八、NSX 完整資安防護全貌(對照傳統 NGFW)
| 傳統 NGFW 功能 | NSX 對應功能 |
|---|---|
| Antivirus | Malware Prevention(動態沙箱,偵測已知+Zero-day) |
| IPS | Distributed IDS/IPS(簽章式 + 行為式:DNS Tunneling、Beaconing) |
| URL Filter | Context Profile:URL Category/Reputation |
| App Control | Context Profile:App-ID |
| User-ID | Identity Firewall(規則可用 AD 使用者/群組) |
| SIEM 關聯分析 | NDR:把上述告警彙整成「入侵活動鏈」 |
來源:Overview of NSX IDS/IPS and Malware Prevention
九、純 DFW vs 完整防護:缺什麼元件?
| 功能 | 純 DFW 能用嗎? | 額外需求 |
|---|---|---|
| DFW 5 大 Category(L3/L4) | ✅ | 無 |
| Identity Firewall | ✅(需 AD 整合) | 對應授權 |
| L7 Context Profile(App-ID/FQDN/URL) | ⚠️ | 不需額外平台,但需 Advanced 以上授權(VCF 已含) |
| Distributed IDS/IPS(基礎簽章式) | ⚠️ | 跑在同一個 Kernel 模組,不需要 NAPP,但需授權 |
| Malware Prevention / NTA / NDR | ❌ | 必須部署 NSX Application Platform (NAPP) |
NAPP 是什麼?
NAPP(NSX Application Platform)= 一個額外部署的 Kubernetes 叢集,不在流量路徑上,DFW 把事件/樣本「送過去」做進階分析:
| 需求項目 | 說明 |
|---|---|
| Kubernetes 叢集 | Tanzu Kubernetes Grid (TKG) 或 CNCF 相容 K8s |
| Load Balancer | NSX Manager 存取 NAPP 服務用 |
| Harbor | 儲存 image / Helm charts |
| 額外運算資源 | K8s 節點本身的 CPU/記憶體/儲存 |
⚠️ NAPP ≠ NSX Edge
兩者都是「DFW 之外的額外元件」,但完全不同:
- NSX Edge = 網路服務閘道(T0/T1 路由、NAT、LB、Gateway Firewall),處理 North-South 流量,是資料平面的必要元件
- NAPP = K8s 微服務平台,跑 Malware Prevention/NTA/NDR,不處理流量,是選配的分析平面
如果環境裡完全沒有 Edge Node,通常代表這是「純微分段部署」——只用 DFW 做東西向防護,路由/NAT 仍交給原本的實體防火牆。
十、VCF 授權對應
Broadcom 收購後,VCF 9 改成單一 per-core 訂閱,不再分 Standard/Advanced/Enterprise Plus:
| 項目 | 是否包含在 VCF 9 訂閱 |
|---|---|
| vSphere、vSAN、SDDC Manager | ✅ |
| Full NSX:DFW、L7 Context Profile、Identity Firewall、多層路由 | ✅ |
| Malware Prevention / NTA / NDR(ATP) | ❌ 另購 Add-on,且需部署 NAPP |
💡 實務判斷
- 只需要微分段 + App-ID/FQDN + Identity Firewall → VCF 訂閱應已涵蓋
- 需要 Malware Prevention/NTA/NDR → 另購 vDefend ATP,並規劃 NAPP 部署
⚠️「per-core 訂閱」的實際 entitlement 會隨簽約版本(VCF vs VVF)而異,務必請業務提供書面 Feature Entitlement 對照表。
十一、實務建議與延伸思考
- 「Kernel-based」vs「微服務-based」是理解功能分層的關鍵:DFW、Context Profile、基礎 IDS/IPS 跑在 ESXi Kernel,效能高、不需額外平台;Malware Prevention/NTA/NDR 需要大量運算(沙箱引爆、行為模型),所以被抽成獨立 K8s 微服務(NAPP)。這個架構決策直接決定了專案要不要多蓋一個 K8s 平台。
- 授權與架構是兩個獨立關卡:買了 ATP 授權,沒部署 NAPP,Malware Prevention/NTA/NDR 一樣不會動。基礎防護(DFW+L7+IDS/IPS)可以先上線,NAPP 平台排在後續階段。
- DFW 看不到 VM 內部:DFW/IDS/IPS 運作在 Hypervisor 層,看不到 VM 作業系統內部的 process/檔案行為——這部分仍需 EDR 補足,兩者是互補關係。
- 東西向防護是 NSX 的核心價值:傳統 Gateway IPS/AV 只在「進出資料中心」時檢查流量;NSX 把這些能力分散到每個 vNIC,VM 之間的橫向移動也會被偵測到,沒有監控死角。
參考資源
- Distributed Firewall - Broadcom TechDocs (NSX-T 3.2)
- Distributed Firewall Categories - Broadcom TechDocs (NSX 9.0)
- VMware Well-Architected Design: Distributed Firewalls Use Cases
- Preparing for Distributed Security - NSX-T 3.2
- Manage a Firewall Exclusion List
- Layer 7 Context Profile - Broadcom TechDocs
- FQDN Filtering - Broadcom TechDocs
- Overview of NSX IDS/IPS and Malware Prevention
- FAQ - NSX Application Platform (NAPP)
- Licensing Overview - VCF 9.0
- Design NSX Firewall Policies in a smart way - SECUREFEVER
- VMware NSX Layer 7 Firewall Features - Virtualization Howto