关于 VMware NSX Security
VMware NSX Security 是面向 NSX 管理与安全操作的 MCP 服务,适用于配置分布式防火墙和排查网络流量的团队。它涵盖策略、规则、安全组、标签、Traceflow 与 IDPS,并为写操作提供审计和删除预览。
主要功能
- 01管理 DFW 策略与规则
- 02创建和查询安全组
- 03应用或移除 VM 标签
- 04运行 Traceflow 数据包追踪
- 05查询 IDPS 配置
- 06写操作审计及删除预览
适用场景
- 01为应用配置微分段策略
- 02按标签整理和标记 VM
- 03排查数据包经过的路径及丢弃原因
- 04检查 DFW 排除列表和成员
MCP 相关
MCP 服务提供 22 个工具,覆盖 NSX DFW、安全组、VM 标签、Traceflow、IDPS 和排除列表;支持通过 stdio 或 HTTPS 供客户端连接,并可限制开放的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
22收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 页面大小,1..1000(默认值 50)。这不是请求全部结果的方式 — 0 或负数会被拒绝。 |
| offset | integer | 否 | 要跳过的匹配策略数,必须为 0 或更大。传入上一个响应的 `next_offset`。 |
| target | any | 否 | 配置中的 NSX Manager 目标名称;省略时使用默认值。 |
| name_filter | any | 否 | 与策略 display_name 进行子字符串/通配符匹配。 |
详细介绍
VMware NSX Security
作者:Wei Zhou,VMware by Broadcom — [email protected] 这是由 VMware 工程师发起的社区项目,并非 VMware 官方产品。 如需 VMware 官方开发者工具,请参阅 developer.broadcom.com。
VMware NSX DFW 微分段与安全 MCP 技能 — 包含 22 个工具,用于管理分布式防火墙策略/规则、安全组、VM 标签、DFW 排除列表、Traceflow 数据包追踪和 IDPS。
配套技能:vmware-nsx(网络)、vmware-aiops(VM 生命周期)、vmware-monitor(监控)
快速开始
uv tool install vmware-nsx-security
mkdir -p ~/.vmware-nsx-security
cp config.example.yaml ~/.vmware-nsx-security/config.yaml
# Edit config.yaml with your NSX Manager host
echo "VMWARE_NSX_SECURITY_NSX_PROD_PASSWORD=your_password" > ~/.vmware-nsx-security/.env
chmod 600 ~/.vmware-nsx-security/.env
vmware-nsx-security doctor
离线 / 隔离网络环境安装(从源代码安装)
本项目使用现代 PEP 517 构建系统(hatchling),因此设计上不包含
setup.py——这是预期行为,并非文件缺失。如果你克隆了源代码,并遇到
ERROR: File "setup.py" or "setup.cfg" not found ... editable mode currently requires a setuptools-based build,说明你的 pip 版本低于 21.3,
无法使用非 setuptools 后端执行可编辑(-e)安装。可编辑模式只是开发便利功能,并非运行此工具所必需——请选择以下一种方式:
# From the source tree — a normal (non-editable) install builds a wheel:
pip install . # NOT pip install -e .
# ...or upgrade pip first, and editable works too:
pip install --upgrade pip && pip install -e .
对于完全隔离网络的主机,请在联网机器上构建 wheel 包并复制过去——目标主机无需联网:
# On a connected machine, collect this package + its dependencies as wheels:
pip wheel . -w dist # → dist/*.whl (or: uv build, for just this package)
# Copy dist/ to the air-gapped host, then install offline:
pip install --no-index --find-links dist vmware-nsx-security
功能
| 类别 | 工具 |
|---|---|
| DFW 策略 | 列出、获取、创建、更新、删除、列出规则 |
| DFW 规则 | 创建、更新、删除、统计 |
| 安全组 | 列出、获取、创建、删除 |
| VM 标签 | 列出标签、应用标签、移除标签 |
| Traceflow | 运行追踪、获取结果 |
| IDPS | 列出配置文件、签名状态 + 设置 |
| DFW 排除项 | 列出排除成员 |
共计:22 个 MCP 工具(11 个只读 + 11 个写入)
DFW 排除列表
位于 NSX 分布式防火墙排除列表中的 VM,其数据路径上没有 DFW:引用该 VM 的规则仍然存在,但没有任何规则会应用于它。在 VCF 环境中,管理 VM(vCenter、VCF Operations、NSX 管理器)通常会被列入其中——某个真实的 NSX 9.1 网络中,12 个 VM 有 10 个被排除。list_dfw_exclusions 会显示此列表,而 list_vm_tags / get_group / list_dfw_policies 会注明成员是否被排除,因此不会将「受 DFW 策略保护」报告给 DFW 无法检测到的 VM。dfw_excluded: null 表示无法读取此列表——并不等同于 false。
MCP 服务设置
执行 uv tool install vmware-nsx-security 后,只需一条命令即可启动 MCP 服务(v1.5.15+):
# Recommended — single command, no network re-resolve
vmware-nsx-security mcp
# With a custom config path
VMWARE_NSX_SECURITY_CONFIG=/path/to/config.yaml vmware-nsx-security mcp
添加到 ~/.claude.json:
{
"mcpServers": {
"vmware-nsx-security": {
"command": "vmware-nsx-security",
"args": ["mcp"],
"env": {
"VMWARE_NSX_SECURITY_CONFIG": "~/.vmware-nsx-security/config.yaml"
}
}
}
}
替代方式:使用 uvx(无需安装)或旧版入口点
# Run without installing (requires PyPI access each launch)
uvx --from vmware-nsx-security vmware-nsx-security mcp
# Legacy entry point (still works, kept for backward compatibility)
vmware-nsx-security-mcp
在企业 TLS 代理后? uvx 可能会因
invalid peer certificate: UnknownIssuer而失败。 请使用上面推荐的vmware-nsx-security mcp形式(无需联网),或设置UV_NATIVE_TLS=true。
常见工作流
对应用进行微分段
# 1. Create groups by tag — via the create_group MCP tool
# (tag_scope=tier, tag_value=web → matched as Condition value "tier|web";
# multiple criteria types — tag/IP/segment — are ORed)
# 2. Create DFW policy
vmware-nsx-security policy create web-app-policy --name "Web to App" --category Application
为 VM 添加标签
# Find VM and its external ID
vmware-nsx-security tag list my-vm-01
# Apply tag using the external ID
vmware-nsx-security tag apply <external-id> --scope tier --value web
追踪数据包
vmware-nsx-security traceflow run <src-lport-id> \
--src-ip 10.0.1.5 --dst-ip 10.0.2.10 --proto TCP --dst-port 443
输出会报告 operation_state(IN_PROGRESS/FINISHED/FAILED)、按 resource_type 区分的逐跳 observations(Dropped* 条目包含 reason + acl_rule_id),以及 dfw_hits 汇总。
安全性
- 依赖检查:无法删除包含有效规则的策略,也无法删除被 DFW 或网关防火墙规则/作用域引用,或被父组引用的组;如果引用扫描失败,组删除操作将中止
- 审计日志记录:所有写入操作均记录在
~/.vmware-nsx-security/audit.log - 输入验证:验证 ID;对所有 API 文本进行清理,以防提示词注入
- 试运行模式:所有 CLI 写入命令均支持
--dry-run - MCP 删除预览:
delete_dfw_policy、delete_dfw_rule和delete_group默认会预览;未设置confirm=True时,它们会返回blast_radius(将被移除的内容、blockers、unmeasured),不会删除任何内容;如果仍有阻止项或读取失败,设置confirm=True也会被拒绝 - 凭据安全:密码仅从环境变量读取,绝不存放在配置文件中
配套 Skills
| Skill | 范围 | 工具 | 安装 |
|---|---|---|---|
| vmware-aiops ⭐ 入口 | VM 生命周期、部署、来宾操作、集群 | 49 | uv tool install vmware-aiops |
| vmware-monitor | 只读监控、警报、事件、VM 信息 | 27 | uv tool install vmware-monitor |
| vmware-nsx | NSX 网络:网段、网关、NAT、IPAM | 33 | uv tool install vmware-nsx-mgmt |
| vmware-storage | 数据存储、iSCSI、vSAN | 11 | uv tool install vmware-storage |
| vmware-vks | Tanzu 命名空间、TKC 集群生命周期 | 20 | uv tool install vmware-vks |
| vmware-aria | Aria Ops 指标、警报、容量规划 | 28 | uv tool install vmware-aria |
版本兼容性
| NSX 版本 | 支持情况 | 备注 |
|---|---|---|
| NSX 9.1 / VCF 9.1 | ✅ 完全支持 | 通过 Policy API 支持 DFW + Security Group + Traceflow + IDS/IPS。需要 VDS 7.0+。(N-VDS 已在 NSX 9 中移除。) |
| NSX 9.0 / VCF 9.0 | ✅ 完全支持 | 与 9.1 相同。裸机 NSX Agent 已移除。 |
| NSX 4.x / VCF 5.x | ✅ 完全支持 | 支持所有功能。 |
| NSX-T 3.2 / VCF 4.5 | ✅ 完全支持 | Policy API 稳定。 |
Broadcom 官方参考资料
- SDK:https://developer.broadcom.com/sdks — VMware NSX for Python SDK(未来迁移目标)
- REST API:https://developer.broadcom.com/xapis — NSX-T Data Center REST API
- CLI 工具:https://developer.broadcom.com/tools — VCF PowerCLI 9.1
远程访问(HTTPS)与限制工具
默认情况下,vmware-nsx-security mcp 通过 stdio 与一个本地客户端通信,并提供所有工具。以下两个选项可以改变这一行为
(vmware-policy ≥ 1.21.0)。
通过 HTTPS 提供服务,让其他机器上的客户端也能连接。每个调用方都需要一个 bearer token:
vmware-audit token create alice # prints the token once; give it to alice
vmware-audit token list # names only
vmware-audit token revoke alice # refused from its next request, no restart
vmware-nsx-security mcp --transport https --host 0.0.0.0 --port 8443 \
--cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \
--public-name mcp.example.com
连接客户端(此处以 Claude Code 为例;任何支持 streamable HTTP 和自定义标头的 MCP 客户端都适用):
claude mcp add --transport http vmware-nsx-security https://mcp.example.com:8443/mcp \
--header "Authorization: Bearer $VMWARE_MCP_TOKEN"
{
"mcpServers": {
"vmware-nsx-security": {
"type": "http",
"url": "https://mcp.example.com:8443/mcp",
"headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
}
}
}
- 未设置令牌时,服务不会启动;对于
--public-name以外的 Host/Origin 值,服务会拒绝请求,并会在绑定前检查未经身份验证的请求是否返回 401。请使用客户端信任的、适用于这些名称的证书。 - 如果在同一台机器上使用终止 TLS 的反向代理,请使用
--transport http --host 127.0.0.1 --public-name mcp.example.com,并透传Authorization标头。 - 如果负载均衡器或网关位于另一台机器上,请保留
--transport https(自签名证书也可以),在--public-name中列出负载均衡器发送的 Host 主机名,并让它转发Authorization。其健康探测可使用GET /healthz,无需令牌,仅返回{"status": "ok"}(vmware-policy ≥ 1.23.0)。 - 每个请求都发送
traceparent或X-Request-ID,以便将其记录在审计行中;随后使用vmware-audit log --correlation-id ID查找某个平台请求对应的调用。 - 审计日志会将每个调用方记录为
token:<name>。调用会并行运行,无论是否指定目标:每个目标最多保留VMWARE_MCP_POOL_SIZE个会话(默认值为 2),每个会话都对应在目标上的一次登录。如果某次调用发现所有会话都正忙,最多会等待 300 s。 - 任何能访问此端点的人,都会以此服务的账户身份操作。 令牌用于识别调用方;它们不会授予任何平台权限。每个权限级别都应运行一个独立端点。
- 在一个端点上支持多个人员或角色: 运行一次
vmware-audit roles enable,然后为每个令牌分配一个角色(vmware-audit token create NAME --role reader,或在roles.yaml中指定工具和目标的角色;vmware-policy ≥ 1.24.0)。角色会限制令牌在此端点上可调用的内容,但不能授予超过账户已有权限的权限。请参阅 vmware-policy 的 README 中的“网络调用方的角色”。
仅提供读取工具,以及你选择的写入工具:
vmware-nsx-security mcp --expose read --allow-write apply_vm_tag
# or: VMWARE_NSX_SECURITY_MCP_EXPOSE=read VMWARE_NSX_SECURITY_MCP_ALLOW_WRITE=apply_vm_tag vmware-nsx-security mcp
未提供的工具不会出现在客户端的工具列表中。值无效或写入工具未知时,服务会停止运行 (exit 2)。这会限制向客户端提供的内容;这不是授权机制,因此账户本身应遵循最小权限原则。
详情请参阅:skills/vmware-nsx-security/references/setup-guide.md(“通过 HTTPS 提供 MCP 服务”“限制提供的工具”)。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。