VMware NSX Segurança
Aviso: Este é um projeto open-source mantido pela comunidade e não é afiliado, endossado ou patrocinado por VMware, Inc. ou Broadcom Inc. "VMware" e "NSX" são marcas registradas da Broadcom. O código-fonte é publicamente auditável em github.com/zw008/VMware-NSX-Security sob licença MIT.
Microssegmentação e segurança VMware NSX DFW — 21 ferramentas MCP para firewall distribuído, grupos de segurança, tags de VM, Traceflow e IDPS.
Skill de segurança focada em domínio para NSX-T / API de Política NSX 4.x. Skills complementares: vmware-nsx (rede), vmware-aiops (ciclo de vida de VMs), vmware-monitor (monitoramento somente leitura), vmware-avi (AVI/ALB/AKO), vmware-harden (baselines de conformidade). | vmware-pilot (orquestração de fluxos de trabalho) | vmware-policy (auditoria/política)
O Que Esta Skill Faz
| Categoria | Ferramentas | Contagem |
|---|---|---|
| Política DFW | listar, obter, criar, atualizar, excluir, listar regras | 6 |
| Regras DFW | criar, atualizar, excluir, obter estatísticas | 4 |
| Grupos de Segurança | listar, obter, criar, excluir | 4 |
| Tags de VM | listar tags de VM, aplicar tag, remover tag | 3 |
| Traceflow | executar trace, obter resultado | 2 |
| IDPS | listar perfis, obter status | 2 |
Total: 21 ferramentas (10 somente leitura + 11 escrita)
Instalação Rápida
uv tool install vmware-nsx-security
vmware-nsx-security doctor
Quando Usar Esta Skill
- Listar, criar ou modificar políticas e regras de segurança DFW
- Criar grupos de segurança baseados em tags de VM, faixas de IP ou associação a segmentos
- Aplicar ou listar tags NSX em máquinas virtuais
- Executar Traceflow para rastrear o caminho de um pacote e diagnosticar motivos de descarte
- Verificar configuração de perfil IDPS, status de assinatura e configurações globais de IDS
- Implementar microssegmentação zero-trust entre camadas de aplicação
Use skills complementares para:
- Segmentos NSX, gateways, NAT, roteamento, IPAM →
vmware-nsx - Ciclo de vida de VM, implantação, operações convidadas →
vmware-aiops - Inventário vSphere, saúde, alarmes, eventos →
vmware-monitor - Armazenamento: iSCSI, vSAN, datastores →
vmware-storage - Tanzu Kubernetes →
vmware-vks - Balanceamento de carga, AVI/ALB, AKO, Ingress →
vmware-avi
Skills Relacionadas — Roteamento de Skills
| Intenção do Usuário | Skill Recomendada |
|---|---|
| Segurança NSX: regras DFW, grupos de segurança, IDS/IPS | vmware-nsx-security ← esta skill |
| Rede NSX: segmentos, gateways, NAT, roteamento | vmware-nsx |
| Monitoramento vSphere somente leitura, alarmes, eventos | vmware-monitor |
| Ciclo de vida de VM, implantação, operações convidadas | vmware-aiops |
| Armazenamento: iSCSI, vSAN, datastores | vmware-storage |
| Tanzu Kubernetes | vmware-vks |
| Fluxos de trabalho multi-etapas com aprovação | vmware-pilot |
| Baselines de conformidade (CIS / 等保 / PCI-DSS), detecção de desvios, consultor de correção LLM | vmware-harden (uv tool install vmware-harden) |
| Balanceador de carga, AVI, ALB, AKO, Ingress | vmware-avi (uv tool install vmware-avi) |
| Consulta de log de auditoria | vmware-policy (CLI vmware-audit) |
Fluxos de Trabalho Comuns
Implementar Microssegmentação de Camada de Aplicação
Pré-voo (julgamento — mudanças DFW podem bloquear todos) :
- Primeiro permitir por padrão: a primeira regra em qualquer nova política deve ser ALLOW para tráfego de gerenciamento (DNS, NTP, vCenter, SSH a partir do jumphost). Sem ela, no momento em que você adicionar um default-deny, você bloqueará seu próprio acesso.
- Inventário de tags: confirme que as VMs que você pretende proteger realmente possuem a tag (
tag list <vm>). Um grupo baseado em uma tag inexistente corresponde a zero VMs — a política parecerá "aplicada", mas não imporá nada. - Escolha de categoria:
Applicationpara microssegmentação de camada de aplicação (regras avaliadas tarde, depois que regras de Infrastructure passam). UsarEmergencypara regras rotineiras esgotará a capacidade de resposta a incidentes reais. - Stateless? Padrão stateful — NSX DFW é stateful e quase nenhuma regra deve ser stateless. Stateless = ambas as direções devem ser explicitamente permitidas.
- Sempre comece com logging ativado em novas regras; desative depois que for verificado. Descarte silencioso é o pior tipo de bug.
Passos:
- Tagge as VMs primeiro (veja fluxo de trabalho abaixo) — grupos vazios = sem imposição
- Crie grupos via ferramenta MCP
create_groupcomtag_scope/tag_value(a condição de tag é correspondida como"scope|tag", ex.tier|web; note que múltiplos tipos de critério — tag/IP/segmento — são ORed, não ANDed) policy create app-microseg --category Application- Adicione regras na ordem: ALLOW gerenciamento → ALLOW intra-camada → ALLOW web→app na porta da aplicação → DROP any-any com logging
- Verifique com traceflow (veja abaixo) antes de ativar default-deny
Aplicar Tags NSX em VMs
Julgamento: tags conduzem associação a grupos, que conduzem imposição DFW. Uma tag com erro de ortografia exclui silenciosamente uma VM da proteção. Sempre reliste após aplicar.
tag list my-web-vm-01→ registre o ID externo da VM, veja também quais tags já existem (evite duplicatas / colisões de digitação)tag apply <vm-external-id> --scope tier --value web- Verifique:
tag list my-web-vm-01novamente → confirme que a nova tag está presente E nenhuma inesperada
Rastrear um Pacote com Traceflow
Julgamento: traceflow é seu mecanismo de verificação para qualquer mudança DFW. Execute-o antes de ativar regras de negação e após cada modificação de regra. Não confie em "parece correto na interface."
- Obtenha o ID da porta lógica da VM de origem via
vmware-nsx troubleshoot vm-segment traceflow run <lport-id> --src-ip <src> --dst-ip <dst> --proto TCP --dst-port <port>- Inspecione a cadeia de hits DFW: qual regra correspondeu, ALLOW ou DROP, e em qual nó de transporte
- Falha comum: a regra corresponde na categoria Application, mas é ofuscada por um DROP anterior na categoria Environment — leia o trace de cima para baixo, não apenas o veredito final
Verificar Contagens de Hits de Política DFW
vmware-nsx-security policy list
vmware-nsx-security rule list <policy-id>
vmware-nsx-security rule stats <policy-id> <rule-id>
Operações Multi-Alvo
Todos os comandos aceitam --target <nome> para operar contra um NSX Manager específico:
# Alvo padrão
vmware-nsx-security policy list
# Alvo específico
vmware-nsx-security policy list --target nsx-prod
vmware-nsx-security group list --target nsx-lab
Modo de Uso
| Cenário | Recomendado | Por quê |
|---|---|---|
| Modelos locais/pequenos (Ollama, Qwen) | CLI | ~2K tokens vs ~8K para MCP |
| Modelos em nuvem (Claude, GPT-4o) | Qualquer | MCP fornece I/O JSON estruturado |
| Pipelines automatizados | MCP | Parâmetros type-safe, saída estruturada |
Ferramentas MCP (21 — 10 leitura, 11 escrita)
Todas as ferramentas MCP aceitam um parâmetro opcional target.
| Categoria | Ferramenta | Tipo | Descrição |
|---|---|---|---|
| Política DFW | list_dfw_policies | Leitura | Lista todas as políticas de segurança DFW com categoria, sequência e contagem de regras |
get_dfw_policy | Leitura | Obtém detalhes da política: categoria, stateful, bloqueada, escopo, tags | |
create_dfw_policy | Escrita | Cria uma nova política DFW com categoria e número de sequência | |
update_dfw_policy | Escrita | Atualização parcial: display_name, descrição, sequence_number, stateful | |
delete_dfw_policy | Escrita | Exclui política — recusa se regras ativas existirem | |
| Regras DFW | list_dfw_rules | Leitura | Lista regras em uma política: ação, origens, destinos, serviços |
create_dfw_rule | Escrita | Cria regra com origens/destinos/serviços/ação/escopo | |
update_dfw_rule | Escrita | Atualização parcial de campos de regra | |
delete_dfw_rule | Escrita | Exclui uma regra de uma política | |
get_dfw_rule_stats | Leitura | Obtém contagens de pacotes/bytes/sessões/hits e popularity_index para uma regra | |
| Grupos de Segurança | list_groups | Leitura | Lista todos os grupos de segurança com contagem de expressões |
get_group | Leitura | Obtém detalhes do grupo: critérios de expressão + até 50 membros VM efetivos | |
create_group | Escrita | Cria grupo com critérios de associação tag/IP/segmento (tag correspondida como "scope|tag"; múltiplos critérios ORed) | |
delete_group | Escrita | Exclui grupo — recusa se referenciado por regras/escopos DFW, ou se a varredura de referência falhar | |
| Tags de VM | list_vm_tags | Leitura | Lista tags NSX em uma VM por nome de exibição |
apply_vm_tag | Escrita | Aplica uma tag de escopo/valor a uma VM (aditiva, preserva tags existentes) | |
remove_vm_tag | Escrita | Remove uma tag de escopo/valor de uma VM (outras tags preservadas; pode alterar associação a grupos dinâmicos) | |
| Traceflow | run_traceflow | Escrita | Injeta pacote de sonda; retorna operation_state + observações salto a salto (por resource_type) + dfw_hits |
get_traceflow_result | Leitura | Verifica operation_state/observações de um traceflow existente | |
| IDPS | list_idps_profiles | Leitura | Lista perfis IDPS com severidade e critérios de filtro |
get_idps_status | Leitura | Obtém status de assinatura IDPS + configurações globais de IDS (auto_update, exportar syslog) |
Referência Rápida da CLI
# Política DFW
vmware-nsx-security policy list [--target <nome>]
vmware-nsx-security policy get <policy-id>
vmware-nsx-security policy create <id> --name "Nome de Exibição" --category Application [--dry-run]
vmware-nsx-security policy delete <id> [--dry-run]
# Regras 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]
# Grupos de Segurança
vmware-nsx-security group list
vmware-nsx-security group get <group-id>
vmware-nsx-security group delete <group-id> [--dry-run]
# Tags
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 <src-ip> --dst-ip <dst-ip>
# IDPS
vmware-nsx-security idps profiles
vmware-nsx-security idps status
# Diagnóstico
vmware-nsx-security doctor [--skip-auth]
Solução de Problemas
"Não é possível excluir política — regras ativas existem"
delete_dfw_policy verifica regras ativas antes de excluir. Use vmware-nsx-security rule list <policy-id> para ver quais regras precisam ser removidas primeiro. Em seguida, exclua cada regra individualmente antes de tentar novamente a exclusão da política.
"Não é possível excluir grupo — referenciado por regras DFW"
delete_group varre todas as políticas em busca de referências ao grupo em source_groups, destination_groups e escopo applied-to das regras, mais escopo no nível da política. Remova o grupo dessas referências primeiro (via update_dfw_rule substituindo o caminho do grupo por 'ANY' ou outro grupo) e tente novamente. Se o erro disser que a varredura de referência falhou, a exclusão foi abortada como precaução — verifique a conectividade NSX com vmware-nsx-security doctor e tente novamente.
"Nenhuma máquina virtual encontrada com display_name"
list_vm_tags procura VMs pelo nome de exibição via API de fabric NSX. Causas comuns:
- Nome de exibição incorreto — o nome no NSX Manager pode diferir do vCenter. Verifique
vmware-monitor vm listpara o nome de exibição exato do fabric NSX. - VM não registrada — VMs recém-implantadas podem levar um minuto para aparecer no fabric NSX.
- Múltiplas VMs com o mesmo nome — use
apply_vm_tagcom o external_id específico.
Traceflow retorna observações vazias
- Se
operation_stateforIN_PROGRESS, o trace não terminou — consulte novamente comget_traceflow_result <traceflow-id>. - Verifique se
src_lport_idé o UUID correto de anexo de porta lógica — não o caminho da porta de segmento. Obtenha devmware-nsx troubleshoot vm-segment <vm>. - A VM de origem deve estar ligada e conectada a um segmento de overlay NSX.
- Se a VM estiver em um segmento com suporte VLAN, o Traceflow não é suportado.
- O NSX Manager exige que o nó de transporte que hospeda a VM de origem seja acessível. Verifique
vmware-nsx health transport-nodes.
Estatísticas de regra DFW mostram zero hits
Uma regra recém-criada terá contagens de hits zero até que o tráfego corresponda a ela. Se o tráfego esperado ainda mostrar zero:
- Confirme que a regra não está desabilitada (
disabled: falsena saída delist_dfw_rules). - Verifique se a associação do grupo de origem/destino está correta usando
get_group. - Verifique o número de sequência da regra — uma regra com sequência mais baixa com ALLOW/DROP pode estar correspondendo primeiro.
Erro "Senha não encontrada"
Convenção de variável de senha: VMWARE_NSX_SECURITY_<TARGET_UPPER>_PASSWORD
onde hífens são substituídos por underscores. Para alvo nsx-prod:
VMWARE_NSX_SECURITY_NSX_PROD_PASSWORD. Verifique ~/.vmware-nsx-security/.env.
invalid peer certificate: UnknownIssuer (uvx)
Proxy TLS corporativo não confiável pelo armazenamento de certificados agrupado do uv. Use o formulário de comando único v1.5.15+ vmware-nsx-security mcp (sem re-resolução PyPI), ou
export UV_NATIVE_TLS=true para fazer o uv usar o armazenamento de certificados do sistema.
Segurança
- Registro de auditoria: Todas as operações de escrita registradas em
~/.vmware/audit.db(SQLite WAL, via vmware-policy) com timestamp, usuário, alvo, operação, parâmetros e resultado - Verificações de dependência:
delete_dfw_policyverifica regras ativas;delete_groupverifica referências a regras DFW — previne falhas em cascata acidentais - Validação de entrada: Todos os IDs validados contra conjunto de caracteres seguro (alfanuméricos, hífens, underscores, pontos); todos os campos de texto sanitizados para remover caracteres de controle
- Modo dry-run: Comandos de escrita na CLI suportam
--dry-runpara pré-visualizar chamadas de API sem executar - Confirmação dupla: Operações destrutivas na CLI (exclusão) exigem dois prompts de confirmação separados
- Segurança de credenciais: Senhas carregadas apenas de variáveis de ambiente (arquivo
.env), nunca deconfig.yaml - Sem alterações de rede: Não pode modificar segmentos, gateways, NAT ou roteamento — esse escopo pertence a
vmware-nsx - Defesa contra injeção de prompt: Todas as strings originadas da API passam por
_sanitize()antes da inclusão na saída da ferramenta
Configuração
uv tool install vmware-nsx-security
# Configuração interativa
vmware-nsx-security doctor
Links
| Recurso | Link |
|---|---|
| Repositório | github.com/zw008/VMware-NSX-Security |
| Relatar problemas | GitHub Issues |
| Licença | MIT |