mcpField
V
VMware NSX Security

VMware NSX Security

本地服务
github.com/vmware-skills安全42 周前更新

关于 VMware NSX Security

VMware NSX Security 是面向 NSX 管理与安全操作的 MCP 服务,适用于配置分布式防火墙和排查网络流量的团队。它涵盖策略、规则、安全组、标签、Traceflow 与 IDPS,并为写操作提供审计和删除预览。

主要功能

  1. 01管理 DFW 策略与规则
  2. 02创建和查询安全组
  3. 03应用或移除 VM 标签
  4. 04运行 Traceflow 数据包追踪
  5. 05查询 IDPS 配置
  6. 06写操作审计及删除预览

适用场景

  1. 01为应用配置微分段策略
  2. 02按标签整理和标记 VM
  3. 03排查数据包经过的路径及丢弃原因
  4. 04检查 DFW 排除列表和成员

MCP 相关

MCP 服务提供 22 个工具,覆盖 NSX DFW、安全组、VM 标签、Traceflow、IDPS 和排除列表;支持通过 stdio 或 HTTPS 供客户端连接,并可限制开放的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"vmware-skills-vmware-nsx-security": {
"command": "uvx",
"args": [
"vmware-nsx-security"
],
"env": {
"VMWARE_NSX_SECURITY_CONFIG": "<VMWARE_NSX_SECURITY_CONFIG>"
}
}
}
}
启动命令uvx vmware-nsx-security
需要配置的环境变量
VMWARE_NSX_SECURITY_CONFIGPath to the config file. Defaults to ~/.vmware-nsx-security/config.yaml.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypivmware-nsx-security1.17.1

工具

22

收录的工具列表 · 更新于 1 周前

参数类型必填说明
limitinteger否页面大小,1..1000(默认值 50)。这不是请求全部结果的方式 — 0 或负数会被拒绝。
offsetinteger否要跳过的匹配策略数,必须为 0 或更大。传入上一个响应的 `next_offset`。
targetany否配置中的 NSX Manager 目标名称;省略时使用默认值。
name_filterany否与策略 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 生命周期、部署、来宾操作、集群49uv tool install vmware-aiops
vmware-monitor只读监控、警报、事件、VM 信息27uv tool install vmware-monitor
vmware-nsxNSX 网络:网段、网关、NAT、IPAM33uv tool install vmware-nsx-mgmt
vmware-storage数据存储、iSCSI、vSAN11uv tool install vmware-storage
vmware-vksTanzu 命名空间、TKC 集群生命周期20uv tool install vmware-vks
vmware-ariaAria Ops 指标、警报、容量规划28uv 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 官方参考资料

远程访问(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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。