zw008/VMware-NSX-Security
GitHub: zw008/VMware-NSX-Security
为 AI 智能体提供 VMware NSX 分布式防火墙、微分段、Traceflow 及 IDPS 等网络安全管理能力的 MCP 工具集。
Stars: 3 | Forks: 0
# VMware NSX Security
VMware NSX DFW 微分段与安全 MCP 技能 —— 包含 21 个用于分布式防火墙策略/规则、安全组、虚拟机标签、Traceflow 数据包追踪和 IDPS 的工具。
- **只读模式** (v1.8.0) —— 一个环境变量 (`VMWARE_READ_ONLY=true`) 即可在启动时从 MCP 注册表中移除所有 11 个写入工具(DFW 策略/规则写入、安全组、虚拟机标签、Traceflow 注入),仅保留 10 个读取工具;非常适合用于审计、PoC 和不受信任的/本地模型。详见[只读模式](#read-only-mode)。
## 快速开始
```
uv tool install vmware-nsx-security
mkdir -p ~/.vmware-nsx-security
cp config.example.yaml ~/.vmware-nsx-security/config.yaml
# 使用你的 NSX Manager 主机编辑 config.yaml
echo "VMWARE_NSX_SECURITY_NSX_PROD_PASSWORD=your_password" > ~/.vmware-nsx-security/.env
chmod 600 ~/.vmware-nsx-security/.env
vmware-nsx-security doctor
```
## 只读模式
提示词指令仅是建议 —— 模型可以忽略它。只读模式是结构性的:设置 `VMWARE_READ_ONLY=true` 后,所有 11 个写入工具(DFW 策略和规则的创建-更新-删除、安全组创建/删除、虚拟机标签应用/移除、Traceflow 数据包注入)都会在启动时从 MCP 注册表中移除 —— `list_tools()` 永远不会提供它们,因此模型无法调用它看不到的内容。剩余的 10 个读取工具会被保留,包括 DFW 规则统计和 IDS/IPS 配置文件及签名检查。默认关闭,并且采用故障关闭(fail-closed)机制:如果请求了该模式但无法保证,服务器将拒绝启动。
三种启用方式:
```
{
"mcpServers": {
"vmware-nsx-security": {
"command": "vmware-nsx-security",
"args": ["mcp"],
"env": { "VMWARE_READ_ONLY": "true" }
}
}
}
```
- 单个技能覆盖:`VMWARE_NSX_SECURITY_READ_ONLY=true`(优先级高于全局的 `VMWARE_READ_ONLY`)
- 配置替代方案:在 `~/.vmware-nsx-security/config.yaml` 中设置 `read_only: true`
优先级顺序:单技能环境变量 → 全局环境变量 → 配置 → 关闭。启动日志会准确列出哪些工具被屏蔽。
## 功能说明
| 类别 | 工具 |
|----------|-------|
| DFW 策略 | 列表、获取、创建、更新、删除、列出规则 |
| DFW 规则 | 创建、更新、删除、统计 |
| 安全组 | 列表、获取、创建、删除 |
| 虚拟机标签 | 列出标签、应用标签、移除标签 |
| Traceflow | 运行追踪、获取结果 |
| IDPS | 列出配置文件、签名状态 + 设置 |
**总计:21 个 MCP 工具**(10 个只读 + 11 个写入)
## MCP 服务器设置
**在执行 `uv tool install vmware-nsx-security` 之后,使用单个命令即可启动 MCP 服务器** (v1.5.15+):
```
# 推荐 — 单条命令,无需网络重新解析
vmware-nsx-security mcp
# 使用自定义 config 路径
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"
}
}
}
}
```
## 常见工作流
### 对应用程序进行微分段
```
# 1. 通过 create_group MCP 工具按 tag 创建 group
# (tag_scope=tier, tag_value=web → 匹配为 Condition 值 "tier|web";
# 多个条件类型 — tag/IP/segment — 进行 OR 运算)
# 2. 创建 DFW policy
vmware-nsx-security policy create web-app-policy --name "Web to App" --category Application
```
### 为虚拟机打标签
```
# 查找 VM 及其 external ID
vmware-nsx-security tag list my-vm-01
# 使用 external ID 应用 tag
vmware-nsx-security tag apply --scope tier --value web
```
### 追踪数据包
```
vmware-nsx-security traceflow run \
--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 文本以防范提示词注入
- **Dry-run 模式**:所有 CLI 写入命令均支持 `--dry-run`
- **凭证安全**:密码仅从环境变量获取,绝不存放在配置文件中
### 配套技能
| 技能 | 范围 | 工具数 | 安装 |
|-------|-------|:-----:|---------|
| **[vmware-aiops](https://github.com/zw008/VMware-AIops)** ⭐ 入口点 | 虚拟机生命周期、部署、客户机操作系统、集群 | 49 | `uv tool install vmware-aiops` |
| **[vmware-monitor](https://github.com/zw008/VMware-Monitor)** | 只读监控、警报、事件、虚拟机信息 | 27 | `uv tool install vmware-monitor` |
| **[vmware-nsx](https://github.com/zw008/VMware-NSX)** | NSX 网络:分段、网关、NAT、IPAM | 33 | `uv tool install vmware-nsx-mgmt` |
| **[vmware-storage](https://github.com/zw008/VMware-Storage)** | Datastores, iSCSI, vSAN | 11 | `uv tool install vmware-storage` |
| **[vmware-vks](https://github.com/zw008/VMware-VKS)** | Tanzu 命名空间, TKC 集群生命周期 | 20 | `uv tool install vmware-vks` |
| **[vmware-aria](https://github.com/zw008/VMware-Aria)** | Aria Ops 指标、警报、容量规划 | 28 | `uv tool install vmware-aria` |
## 版本兼容性
| NSX 版本 | 支持 | 说明 |
|-------------|---------|-------|
| NSX 9.1 / VCF 9.1 | ✅ 完全支持 | 通过 Policy API 支持 DFW + 安全组 + Traceflow + IDS/IPS。要求 VDS 7.0 及以上版本(NSX 9 中已移除 N-VDS)。 |
| NSX 9.0 / VCF 9.0 | ✅ 完全支持 | 与 9.1 相同。移除了裸机 NSX 代理。 |
| NSX 4.x / VCF 5.x | ✅ 完全支持 | 支持所有功能。 |
| NSX-T 3.2 / VCF 4.5 | ✅ 完全支持 | Policy API 已稳定。 |
#### 官方 Broadcom 参考资料
- **SDKs**: — VMware NSX for Python SDK(未来迁移目标)
- **REST APIs**: — NSX-T Data Center REST API
- **CLI Tools**: — VCF PowerCLI 9.1
## License
MIT
替代方案:uvx(免安装)或旧版入口
``` # 不安装直接运行(每次启动需要 PyPI 访问权限) uvx --from vmware-nsx-security vmware-nsx-security mcp # 遗留入口点(仍然有效,保留用于向后兼容) vmware-nsx-security-mcp ```标签:AI代理, Docker 部署, MCP工具, VMware NSX, 分布式防火墙, 微分段, 网络运维, 逆向工具