Community寫作與編輯github.com

zw008/VMware-NSX-Security

VMware NSX DFW 微分段與安全:分散式防火牆、安全群組、標籤、Traceflow、IDPS — 專為 AI 代理提供的 MCP 工具

VMware-NSX-Security 是什麼?

VMware NSX Security 是一個社群維護的 MCP 工具集,專門用於管理 VMware NSX 的分散式防火牆 (DFW)、微分段和安全功能。它提供了 21 個工具,涵蓋 DFW 政策與規則管理、安全群組、VM 標籤、Traceflow 路徑追蹤和 IDPS 設定等核心操作。此技能專為 AI 代理(如 Claude Code、Coder、Codex)設計,支援 CLI 和 MCP 兩種使用模式,無論是本地小型模型還是雲端大型模型都能順暢運作。透過它,使用者可以實現零信任微分段、診斷網路連線問題、自動化安全政策部署,並與其他 VMware 技能(如 vmware-nsx、vmware-monitor)無縫整合,構成完整的基礎設施管理生態系。

相容平台✓Claude Code~Codex CLI✓Cursor
npx skills add zw008/VMware-NSX-Security

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

VMware NSX 安全性

免責聲明:此為社群維護的開源專案,與 VMware, Inc. 或 Broadcom Inc. 無關聯、亦未獲得其背書或贊助。「VMware」與「NSX」為 Broadcom 之商標。原始碼以 MIT 授權公開於 github.com/zw008/VMware-NSX-Security,可供稽核。

VMware NSX DFW 微分段與安全性 — 21 個 MCP 工具,涵蓋分散式防火牆、安全群組、VM 標籤、Traceflow 及 IDPS。

以安全性為導向的領域技能,適用於 NSX-T / NSX 4.x Policy API。 配套技能:vmware-nsx(網路)、vmware-aiops(VM 生命週期)、vmware-monitor(唯讀監控)、vmware-avi(AVI/ALB/AKO)、vmware-harden(合規基準)。 | vmware-pilot(工作流程編排)| vmware-policy(稽核/政策)|

此技能的功能

類別工具數量
DFW 政策列出、取得、建立、更新、刪除、列出規則6
DFW 規則建立、更新、刪除、取得統計資料4
安全群組列出、取得、建立、刪除4
VM 標籤列出 VM 標籤、套用標籤、移除標籤3
Traceflow執行追蹤、取得結果2
IDPS列出設定檔、取得狀態2

總計:21 個工具(10 個唯讀 + 11 個寫入)

快速安裝

uv tool install vmware-nsx-security
vmware-nsx-security doctor

何時使用此技能

  • 列出、建立或修改 DFW 安全政策與規則
  • 根據 VM 標籤、IP 範圍或區段成員資格建立安全群組
  • 在虛擬機器上套用或列出 NSX 標籤
  • 執行 Traceflow 以追蹤封包路徑並診斷丟棄原因
  • 檢查 IDPS 設定檔配置、特徵碼狀態與全域 IDS 設定
  • 在應用程式層之間實施零信任微分段

使用配套技能來處理:

  • NSX 區段、閘道、NAT、路由、IPAM → vmware-nsx
  • VM 生命週期、部署、Guest 操作 → vmware-aiops
  • vSphere 庫存、健康狀態、警示、事件 → vmware-monitor
  • 儲存:iSCSI、vSAN、資料存放區 → vmware-storage
  • Tanzu Kubernetes → vmware-vks
  • 負載平衡、AVI/ALB、AKO、Ingress → vmware-avi

相關技能 — 技能路由

使用者意圖建議技能
NSX 安全:DFW 規則、安全群組、IDS/IPSvmware-nsx-security ← 此技能
NSX 網路:區段、閘道、NAT、路由vmware-nsx
唯讀式 vSphere 監控、警示、事件vmware-monitor
VM 生命週期、部署、Guest 操作vmware-aiops
儲存:iSCSI、vSAN、資料存放區vmware-storage
Tanzu Kubernetesvmware-vks
多步驟工作流程(需審核)vmware-pilot
合規基準(CIS / 等保 / PCI-DSS)、漂移偵測、LLM 修復顧問vmware-harden(uv tool install vmware-harden)
負載平衡器、AVI、ALB、AKO、Ingressvmware-avi(uv tool install vmware-avi)
稽核日誌查詢vmware-policy(vmware-audit CLI)

常見工作流程

實施應用程式層微分段

前置檢查(判斷 — DFW 變更可能將所有人鎖在門外):

  • 先預設允許:任何新政策中的第一條規則必須是 ALLOW 管理流量(DNS、NTP、vCenter、來自跳板機的 SSH)。若無此規則,一旦您加入預設拒絕,便會立即阻斷自己的存取。
  • 標籤清查:確認您要保護的 VM 確實帶有標籤(tag list <vm>)。基於不存在的標籤的群組比對到零個 VM — 政策看似「已套用」,但實際上毫無作用。
  • 類別選擇:應用程式層微分段應使用 Application(規則在基礎架構規則通過後才進行評估,執行順序較晚)。若將例行規則設為 Emergency,將耗盡真正的突發事件回應容量。
  • 無狀態?預設為有狀態 — NSX DFW 是有狀態的,幾乎沒有規則應設為無狀態。無狀態 = 雙向都必須明確允許。
  • 務必先在新規則上啟用記錄,待驗證後再關閉。無聲丟棄是最難除錯的錯誤。

步驟:

  1. 先為 VM 加上標籤(請見下方工作流程)— 空的群組 = 無實際強制力
  2. 使用 create_group MCP 工具,搭配 tag_scope/tag_value 來建立群組(標籤條件比對為 "scope|tag",例如 tier|web;請注意多種條件類型 — 標籤/IP/區段 — 是以 OR 而非 AND 方式結合)
  3. policy create app-microseg --category Application
  4. 依序加入規則:ALLOW 管理流量 → ALLOW 階層內流量 → ALLOW web→app 於 app-port → DROP any-any(含記錄)
  5. 在啟用預設拒絕之前,先使用 traceflow 進行驗證(請見下方)

將 NSX 標籤套用至 VM

判斷:標籤驅動群組成員資格,進而驅動 DFW 強制力。拼錯的標籤會讓 VM 在無聲中被排除在保護之外。套用後務必重新列出確認。

  1. tag list my-web-vm-01 → 記錄 VM 外部 ID,同時查看已存在的標籤(避免重複/拼寫衝突)
  2. tag apply <vm-external-id> --scope tier --value web
  3. 驗證:再次執行 tag list my-web-vm-01 → 確認新標籤已存在,且無意外出現的標籤

使用 Traceflow 追蹤封包

判斷:Traceflow 是您對任何 DFW 變更的驗證機制。請在啟用拒絕規則之前以及每次規則修改之後執行。切勿相信「UI 上看起來正確」。

  1. 透過 vmware-nsx troubleshoot vm-segment 取得來源 VM 的邏輯連接埠 ID
  2. traceflow run <lport-id> --src-ip <src> --dst-ip <dst> --proto TCP --dst-port <port>
  3. 檢查 DFW 命中鏈:哪條規則匹配、ALLOW 或 DROP、以及在哪個傳輸節點上
  4. 常見失敗:規則在 Application 類別匹配,但被較早的 Environment 類別中的 DROP 規則遮蔽 — 請從頭到尾閱讀追蹤結果,而非僅看最終判決

檢查 DFW 政策命中計數

vmware-nsx-security policy list
vmware-nsx-security rule list <policy-id>
vmware-nsx-security rule stats <policy-id> <rule-id>

多目標操作

所有指令皆可接受 --target <name> 來針對特定 NSX Manager 操作:

# 預設目標
vmware-nsx-security policy list

# 特定目標
vmware-nsx-security policy list --target nsx-prod
vmware-nsx-security group list --target nsx-lab

使用模式

情境建議原因
本地/小型模型(Ollama、Qwen)CLI約 2K tokens,相較於 MCP 的約 8K
雲端模型(Claude、GPT-4o)兩者皆可MCP 提供結構化 JSON I/O
自動化管線MCP型別安全參數、結構化輸出

MCP 工具(21 個 — 10 個讀取、11 個寫入)

所有 MCP 工具皆可接受選用 target 參數。

類別工具類型說明
DFW 政策list_dfw_policies讀取列出所有 DFW 安全政策,包含類別、順序與規則數量
get_dfw_policy讀取取得政策詳細資料:類別、有狀態、鎖定、範圍、標籤
create_dfw_policy寫入建立新的 DFW 政策,包含類別與序號
update_dfw_policy寫入部分更新:display_name、description、sequence_number、stateful
delete_dfw_policy寫入刪除政策 — 若存在作用中規則則拒絕
list_dfw_rules讀取列出政策中的規則:動作、來源、目的地、服務
DFW 規則create_dfw_rule寫入建立規則,包含來源/目的地/服務/動作/範圍
update_dfw_rule寫入部分更新規則欄位
delete_dfw_rule寫入從政策中刪除規則
get_dfw_rule_stats讀取取得規則的封包/位元組/工作階段/命中計數與 popularity_index
安全群組list_groups讀取列出所有安全群組及其表達式數量
get_group讀取取得群組詳細資料:表達式條件 + 最多 50 個有效 VM 成員
create_group寫入建立群組,包含標籤/IP/區段成員資格條件(標籤比對為 "scope
delete_group寫入刪除群組 — 若被 DFW 規則/範圍參照,或參照掃描失敗則拒絕
VM 標籤list_vm_tags讀取依顯示名稱列出 VM 上的 NSX 標籤
apply_vm_tag寫入將 scope/value 標籤套用至 VM(累加式,保留現有標籤)
remove_vm_tag寫入從 VM 移除 scope/value 標籤(其他標籤保留;可能變更動態群組成員資格)
Traceflowrun_traceflow寫入注入探測封包;傳回 operation_state + 逐跳觀察(依 resource_type)+ dfw_hits
get_traceflow_result讀取檢查現有 traceflow 的 operation_state/observations
IDPSlist_idps_profiles讀取列出 IDPS 設定檔及其嚴重性與過濾條件
get_idps_status讀取取得 IDPS 特徵碼狀態 + 全域 IDS 設定(auto_update、syslog 匯出)

CLI 快速參考

# DFW 政策
vmware-nsx-security policy list [--target <name>]
vmware-nsx-security policy get <policy-id>
vmware-nsx-security policy create <id> --name "Display Name" --category Application [--dry-run]
vmware-nsx-security policy delete <id> [--dry-run]

# DFW 規則
vmware-nsx-security rule list <policy-id>
vmware-nsx-security rule stats <policy-id> <rule-id>
vmware-nsx-security rule delete <policy-id> <rule-id> [--dry-run]

# 安全群組
vmware-nsx-security group list
vmware-nsx-security group get <group-id>
vmware-nsx-security group delete <group-id> [--dry-run]

# 標籤
vmware-nsx-security tag list <vm-display-name>
vmware-nsx-security tag apply <vm-external-id> --scope env --value production [--dry-run]
vmware-nsx-security tag remove <vm-external-id> --scope env --value production [--dry-run]

# Traceflow
vmware-nsx-security traceflow run <lport-id> --src-ip &lt;src-ip&gt; --dst-ip &lt;dst-ip&gt;

# IDPS
vmware-nsx-security idps profiles
vmware-nsx-security idps status

# 診斷
vmware-nsx-security doctor [--skip-auth]

疑難排解

「無法刪除政策 — 存在作用中規則」

delete_dfw_policy 會在刪除前檢查是否含有作用中規則。請使用 vmware-nsx-security rule list <policy-id> 查看需要先移除哪些規則。然後逐一刪除每個規則,再重試刪除政策。

「無法刪除群組 — 被 DFW 規則參照」

delete_group 會掃描所有政策中,規則的 source_groups、destination_groups 以及套用範圍 (applied-to) 是否參照此群組,同時也會檢查政策層級的範圍。請先從這些參照中移除該群組(透過 update_dfw_rule 將群組路徑取代為 'ANY' 或其他群組),然後重試。若錯誤訊息指出參照掃描本身失敗,則基於預防措施已中止刪除 — 請使用 vmware-nsx-security doctor 驗證 NSX 連線後重試。

「未找到顯示名稱為 ... 的虛擬機器」

list_vm_tags 會透過 NSX fabric API 依顯示名稱查詢 VM。常見原因:

  1. 顯示名稱不符 — NSX Manager 中的名稱可能與 vCenter 不同。請使用 vmware-monitor vm list 確認確切的 NSX fabric 顯示名稱。
  2. VM 未註冊 — 新部署的 VM 可能需要一分鐘才會出現在 NSX fabric 中。
  3. 多個 VM 同名 — 請使用 apply_vm_tag 搭配特定的 external_id。

Traceflow 傳回空白的觀察結果

  1. 若 operation_state 為 IN_PROGRESS,表示追蹤尚未完成 — 請使用 get_traceflow_result <traceflow-id> 再次輪詢。
  2. 確認 src_lport_id 是正確的邏輯連接埠連接 UUID — 而非區段連接埠路徑。請從 vmware-nsx troubleshoot vm-segment <vm> 取得。
  3. 來源 VM 必須已開機並連接到 NSX Overlay 區段。
  4. 若 VM 位於 VLAN 支援的區段上,則不支援 Traceflow。
  5. NSX Manager 需要能夠連線到託管來源 VM 的傳輸節點。請使用 vmware-nsx health transport-nodes 檢查。

DFW 規則統計顯示零命中

新建立的規則在流量匹配之前,命中計數會是零。若預期有流量但仍顯示零:

  1. 確認規則未被停用(在 list_dfw_rules 輸出中 disabled: false)。
  2. 使用 get_group 檢查來源/目的地群組成員資格是否正確。
  3. 驗證規則序號 — 序號較低的規則(ALLOW/DROP)可能優先匹配。

「找不到密碼」錯誤

密碼變數慣例:VMWARE_NSX_SECURITY_<TARGET_UPPER>_PASSWORD 其中連字號以底線取代。對於目標 nsx-prod: VMWARE_NSX_SECURITY_NSX_PROD_PASSWORD。請檢查 ~/.vmware-nsx-security/.env。

invalid peer certificate: UnknownIssuer(uvx)

企業 TLS Proxy 不受 uv 內建憑證儲存庫信任。請使用 v1.5.15+ 的單指令形式 vmware-nsx-security mcp(不重新解析 PyPI),或設定 export UV_NATIVE_TLS=true 讓 uv 使用系統憑證儲存庫。

安全性

  • 稽核記錄:所有寫入操作皆記錄至 ~/.vmware/audit.db(SQLite WAL,透過 vmware-policy),包含時間戳記、使用者、目標、操作、參數與結果
  • 相依性檢查:delete_dfw_policy 檢查作用中規則;delete_group 檢查 DFW 規則參照 — 防止意外的連鎖失敗
  • 輸入驗證:所有 ID 皆驗證安全字元集(字母數字、連字號、底線、點號);所有文字欄位皆經消毒以移除控制字元
  • 試執行模式:CLI 寫入指令支援 --dry-run 以預覽 API 呼叫而不實際執行
  • 雙重確認:CLI 破壞性操作(刪除)需要兩個獨立的確認提示
  • 憑證安全:密碼僅從環境變數(.env 檔案)載入,絕不來自 config.yaml
  • 不修改網路設定:無法修改區段、閘道、NAT 或路由 — 該範疇屬於 vmware-nsx
  • 提示注入防禦:所有來自 API 的字串在納入工具輸出前,皆會通過 _sanitize() 處理

設定

uv tool in

相關技能