CommunityRédaction et éditiongithub.com

zw008/VMware-NSX-Security

Sécurité et microsegmentation NSX DFW : pare-feu distribué, groupes de sécurité, tags, Traceflow, IDPS — outils MCP pour agents IA

Qu'est-ce que VMware-NSX-Security ?

Cette compétence fournit 21 outils MCP pour gérer la sécurité NSX DFW (Distributed Firewall) dans les environnements VMware NSX-T / NSX 4.x via l'API Policy. Elle permet de lister, créer, modifier et supprimer des politiques et règles DFW, de gérer des groupes de sécurité basés sur des tags, plages IP ou appartenance à un segment, d'appliquer et de supprimer des tags NSX sur des VMs, d'exécuter des diagnostics Traceflow pour tracer le chemin des paquets, et de vérifier les profils et l'état IDPS. L'outil inclut des mécanismes de sécurité robustes comme les vérifications de dépendances avant suppression, un mode dry-run, une journalisation d'audit, et une validation des entrées. Il est conçu pour fonctionner avec les agents IA (via le protocole Model Context Protocol pour une I/O structurée en JSON) ou en CLI, et prend en charge plusieurs cibles NSX Manager via des variables d'environnement. C'est un projet open-source communautaire non affilié à VMware/Broadcom.

Compatible avec✓Claude Code~Codex CLI✓Cursor
npx skills add zw008/VMware-NSX-Security

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Sécurité VMware NSX

Avertissement : Ceci est un projet open-source maintenu par la communauté et n'est pas affilié à, approuvé par, ou sponsorisé par VMware, Inc. ou Broadcom Inc. « VMware » et « NSX » sont des marques commerciales de Broadcom. Le code source est publiquement vérifiable sur github.com/zw008/VMware-NSX-Security sous licence MIT.

Microsegmentation et sécurité NSX DFW — 21 outils MCP pour le pare-feu distribué, les groupes de sécurité, les tags VM, Traceflow et IDPS.

Compétence axée sur la sécurité pour l'API Policy NSX-T / NSX 4.x. Compétences complémentaires : vmware-nsx (réseau), vmware-aiops (cycle de vie des VMs), vmware-monitor (supervision en lecture seule), vmware-avi (AVI/ALB/AKO), vmware-harden (bases de conformité). | vmware-pilot (orchestration de workflows) | vmware-policy (audit/politique)

Ce que fait cette compétence

CatégorieOutilsNombre
Politique DFWlister, obtenir, créer, mettre à jour, supprimer, lister les règles6
Règles DFWcréer, mettre à jour, supprimer, obtenir les stats4
Groupes de sécuritélister, obtenir, créer, supprimer4
Tags VMlister les tags VM, appliquer un tag, supprimer un tag3
Traceflowexécuter une trace, obtenir le résultat2
IDPSlister les profils, obtenir l'état2

Total : 21 outils (10 en lecture seule + 11 en écriture)

Installation rapide

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

Quand utiliser cette compétence

  • Lister, créer ou modifier des politiques et règles de sécurité DFW
  • Créer des groupes de sécurité basés sur les tags VM, plages IP ou appartenance à un segment
  • Appliquer ou lister des tags NSX sur des machines virtuelles
  • Exécuter Traceflow pour tracer le chemin d'un paquet et diagnostiquer les raisons de rejet
  • Vérifier la configuration des profils IDPS, l'état des signatures et les paramètres IDS globaux
  • Implémenter la microsegmentation zéro confiance entre les couches applicatives

Utilisez les compétences complémentaires pour :

  • Segments NSX, passerelles, NAT, routage, IPAM → vmware-nsx
  • Cycle de vie des VMs, déploiement, opérations invitées → vmware-aiops
  • Inventaire vSphere, santé, alarmes, événements → vmware-monitor
  • Stockage : iSCSI, vSAN, datastores → vmware-storage
  • Tanzu Kubernetes → vmware-vks
  • Équilibrage de charge, AVI/ALB, AKO, Ingress → vmware-avi

Compétences associées — Routage des compétences

Intention de l'utilisateurCompétence recommandée
Sécurité NSX : règles DFW, groupes de sécurité, IDS/IPSvmware-nsx-security ← cette compétence
Réseau NSX : segments, passerelles, NAT, routagevmware-nsx
Supervision vSphere en lecture seule, alarmes, événementsvmware-monitor
Cycle de vie des VMs, déploiement, opérations invitéesvmware-aiops
Stockage : iSCSI, vSAN, datastoresvmware-storage
Tanzu Kubernetesvmware-vks
Workflows multi-étapes avec approbationvmware-pilot
Bases de conformité (CIS / 等保 / PCI-DSS), détection de dérive, conseiller de correction LLMvmware-harden (uv tool install vmware-harden)
Équilibreur de charge, AVI, ALB, AKO, Ingressvmware-avi (uv tool install vmware-avi)
Requête de journal d'auditvmware-policy (CLI vmware-audit)

Workflows courants

Implémenter une microsegmentation entre couches applicatives

Pré-vol (jugement — les modifications DFW peuvent bloquer tout le monde) :

  • Autoriser par défaut d'abord : la toute première règle de toute nouvelle politique doit être ALLOW pour le trafic de gestion (DNS, NTP, vCenter, SSH depuis le serveur de rebond). Sans cela, dès que vous ajoutez un refus par défaut, vous bloquez votre propre accès.
  • Inventaire des tags : confirmez que les VMs que vous souhaitez protéger portent bien le tag (tag list <vm>). Un groupe basé sur un tag inexistant correspond à zéro VM — la politique semblera « appliquée » mais n'appliquera rien.
  • Choix de la catégorie : Application pour la microsegmentation entre couches (règles évaluées tard, après le passage des règles Infrastructure). Utiliser Emergency pour des règles de routine épuisera la capacité de réponse aux incidents réels.
  • Sans état ? Par défaut, avec état — le DFW NSX est avec état et presque aucune règle ne devrait être sans état. Sans état = les deux directions doivent être explicitement autorisées.
  • Commencez toujours avec la journalisation activée sur les nouvelles règles ; désactivez-la plus tard une fois vérifiée. Les rejets silencieux sont le pire type de bug.

Étapes :

  1. Taguez d'abord les VMs (voir le workflow ci-dessous) — des groupes vides = aucune application
  2. Créez des groupes via l'outil MCP create_group avec tag_scope/tag_value (la condition de tag est comparée comme "scope|tag", par exemple tier|web ; notez que plusieurs types de critères — tag/IP/segment — sont en OU, pas en ET)
  3. policy create app-microseg --category Application
  4. Ajoutez les règles dans l'ordre : ALLOW gestion → ALLOW intra-couche → ALLOW web→app sur port-app → DROP any-any avec journalisation
  5. Vérifiez avec traceflow (voir ci-dessous) avant d'activer le refus par défaut

Appliquer des tags NSX à des VMs

Jugement : les tags pilotent l'appartenance aux groupes qui pilote l'application DFW. Un tag mal orthographié exclut silencieusement une VM de la protection. Relisez toujours après application.

  1. tag list my-web-vm-01 → enregistrez l'ID externe de la VM, voyez également quels tags existent déjà (évitez les doublons / collisions de fautes de frappe)
  2. tag apply <vm-external-id> --scope tier --value web
  3. Vérifiez : tag list my-web-vm-01 à nouveau → confirmez que le nouveau tag est présent ET qu'aucun inattendu ne l'est

Tracer un paquet avec Traceflow

Jugement : traceflow est votre mécanisme de vérification pour toute modification DFW. Exécutez-le avant d'activer les règles de refus et après chaque modification de règle. Ne faites pas confiance à « ça a l'air correct dans l'interface. »

  1. Obtenez l'ID du port logique de la VM source via vmware-nsx troubleshoot vm-segment
  2. traceflow run <lport-id> --src-ip <src> --dst-ip <dst> --proto TCP --dst-port <port>
  3. Inspectez la chaîne de hits DFW : quelle règle a correspondu, ALLOW ou DROP, et sur quel nœud de transport
  4. Échec courant : la règle correspond dans la catégorie Application mais est masquée par un DROP antérieur dans la catégorie Environment — lisez la trace de haut en bas, pas seulement le verdict final

Vérifier les compteurs de hits des politiques DFW

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

Opérations multi-cibles

Toutes les commandes acceptent --target <nom> pour opérer contre un gestionnaire NSX spécifique :

# Cible par défaut
vmware-nsx-security policy list

# Cible spécifique
vmware-nsx-security policy list --target nsx-prod
vmware-nsx-security group list --target nsx-lab

Mode d'utilisation

ScénarioRecommandéPourquoi
Modèles locaux/petits (Ollama, Qwen)CLI~2K tokens contre ~8K pour MCP
Modèles cloud (Claude, GPT-4o)Les deuxMCP donne une I/O JSON structurée
Pipelines automatisésMCPParamètres typés, sortie structurée

Outils MCP (21 — 10 lecture, 11 écriture)

Tous les outils MCP acceptent un paramètre optionnel target.

CatégorieOutilTypeDescription
Politique DFWlist_dfw_policiesLectureListe toutes les politiques de sécurité DFW avec catégorie, séquence et nombre de règles
get_dfw_policyLectureObtient les détails de la politique : catégorie, avec état, verrouillée, étendue, tags
create_dfw_policyÉcritureCrée une nouvelle politique DFW avec catégorie et numéro de séquence
update_dfw_policyÉcritureMise à jour partielle : display_name, description, sequence_number, stateful
delete_dfw_policyÉcritureSupprime la politique — refuse si des règles actives existent
list_dfw_rulesLectureListe les règles dans une politique : action, sources, destinations, services
Règles DFWcreate_dfw_ruleÉcritureCrée une règle avec sources/destinations/services/action/étendue
update_dfw_ruleÉcritureMise à jour partielle des champs de la règle
delete_dfw_ruleÉcritureSupprime une règle d'une politique
get_dfw_rule_statsLectureObtient les compteurs de paquets/octets/sessions/hits et l'index de popularité pour une règle
Groupes de sécuritélist_groupsLectureListe tous les groupes de sécurité avec le nombre d'expressions
get_groupLectureObtient les détails du groupe : critères d'expression + jusqu'à 50 membres VM effectifs
create_groupÉcritureCrée un groupe avec des critères d'appartenance tag/IP/segment (tag comparé comme "scope
delete_groupÉcritureSupprime le groupe — refuse s'il est référencé par des règles/étendues DFW, ou si l'analyse de référence échoue
Tags VMlist_vm_tagsLectureListe les tags NSX sur une VM par nom d'affichage
apply_vm_tagÉcritureApplique un tag de portée/valeur à une VM (additif, préserve les tags existants)
remove_vm_tagÉcritureSupprime un tag de portée/valeur d'une VM (autres tags préservés ; peut modifier l'appartenance dynamique au groupe)
Traceflowrun_traceflowÉcritureInjecte un paquet sonde ; retourne operation_state + observations saut par saut (par resource_type) + dfw_hits
get_traceflow_resultLectureVérifie operation_state/observations d'un traceflow existant
IDPSlist_idps_profilesLectureListe les profils IDPS avec sévérité et critères de filtre
get_idps_statusLectureObtient l'état des signatures IDPS + paramètres IDS globaux (auto_update, export syslog)

Référence rapide CLI

# Politique DFW
vmware-nsx-security policy list [--target <nom>]
vmware-nsx-security policy get <policy-id>
vmware-nsx-security policy create <id> --name "Nom d'affichage" --category Application [--dry-run]
vmware-nsx-security policy delete <id> [--dry-run]

# Règles 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]

# Groupes de sécurité
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 <nom-affichage-vm>
vmware-nsx-security tag apply <id-externe-vm> --scope env --value production [--dry-run]
vmware-nsx-security tag remove <id-externe-vm> --scope env --value production [--dry-run]

# Traceflow
vmware-nsx-security traceflow run <id-port-logique> --src-ip <ip-source> --dst-ip <ip-destination>

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

# Diagnostics
vmware-nsx-security doctor [--skip-auth]

Dépannage

« Impossible de supprimer la politique — des règles actives existent »

delete_dfw_policy vérifie les règles actives avant de supprimer. Utilisez vmware-nsx-security rule list <policy-id> pour voir quelles règles doivent être supprimées en premier. Supprimez ensuite chaque règle individuellement avant de réessayer la suppression de la politique.

« Impossible de supprimer le groupe — référencé par des règles DFW »

delete_group analyse toutes les politiques pour les références au groupe dans source_groups, destination_groups et l'étendue appliquée à, ainsi que l'étendue au niveau de la politique. Supprimez le groupe de ces références d'abord (via update_dfw_rule en remplaçant le chemin du groupe par 'ANY' ou un autre groupe), puis réessayez. Si l'erreur indique que l'analyse de référence elle-même a échoué, la suppression a été abandonnée par précaution — vérifiez la connectivité NSX avec vmware-nsx-security doctor et réessayez.

« Aucune machine virtuelle trouvée avec display_name »

list_vm_tags recherche les VMs par nom d'affichage via l'API fabric NSX. Causes courantes :

  1. Inadéquation du nom d'affichage — le nom dans NSX Manager peut différer de celui de vCenter. Vérifiez vmware-monitor vm list pour le nom d'affichage exact du fabric NSX.
  2. VM non enregistrée — les VMs nouvellement déployées peuvent prendre une minute pour apparaître dans le fabric NSX.
  3. Plusieurs VMs avec le même nom — utilisez apply_vm_tag avec l'external_id spécifique.

Traceflow retourne des observations vides

  1. Si operation_state est IN_PROGRESS, la trace n'est pas terminée — interrogez à nouveau avec get_traceflow_result <traceflow-id>.
  2. Vérifiez que src_lport_id est le bon UUID de pièce jointe de port logique — pas le chemin du port de segment. Obtenez-le depuis vmware-nsx troubleshoot vm-segment <vm>.
  3. La VM source doit être allumée et connectée à un segment overlay NSX.
  4. Si la VM est sur un segment adossé à un VLAN, Traceflow n'est pas pris en charge.
  5. NSX Manager nécessite que le nœud de transport hébergeant la VM source soit accessible. Vérifiez vmware-nsx health transport-nodes.

Les statistiques des règles DFW montrent zéro hits

Une règle nouvellement créée aura zéro compteur de hits jusqu'à ce que le trafic lui corresponde. Si le trafic attendu affiche toujours zéro :

  1. Confirmez que la règle n'est pas désactivée (disabled: false dans la sortie de list_dfw_rules).
  2. Vérifiez que l'appartenance au groupe source/destination est correcte à l'aide de get_group.
  3. Vérifiez le numéro de séquence de la règle — une règle avec un numéro de séquence inférieur avec ALLOW/DROP peut correspondre en premier.

Erreur « Mot de passe introuvable »

Convention de variable de mot de passe : VMWARE_NSX_SECURITY_<TARGET_UPPER>_PASSWORD où les traits d'union sont remplacés par des underscores. Pour la cible nsx-prod : VMWARE_NSX_SECURITY_NSX_PROD_PASSWORD. Vérifiez ~/.vmware-nsx-security/.env.

invalid peer certificate: UnknownIssuer (uvx)

Certificat TLS d'entreprise non approuvé par le magasin de certificats intégré d'uv. Utilisez le formulaire de commande unique v1.5.15+ vmware-nsx-security mcp (pas de re-résolution PyPI), ou export UV_NATIVE_TLS=true pour qu'uv utilise le magasin de certificats système.

Sécurité

  • Journalisation d'audit : Toutes les opérations d'écriture sont enregistrées dans ~/.vmware/audit.db (SQLite WAL, via vmware-policy) avec horodatage, utilisateur, cible, opération, paramètres et résultat
  • Vérifications de dépendances : delete_dfw_policy vérifie les règles actives ; delete_group vérifie les références aux règles DFW — empêche les défaillances en cascade accidentelles
  • Validation des entrées : Tous les identifiants sont validés par rapport à un jeu de caractères sécurisé (alphanumériques, traits d'union, underscores, points) ; tous les champs de texte sont assainis pour supprimer les caractères de contrôle
  • Mode dry-run : Les commandes d'écriture CLI prennent en charge --dry-run pour prévisualiser les appels API sans exécution
  • Double confirmation : Les opérations destructives CLI (suppression) nécessitent deux invites de confirmation distinctes
  • Sécurité des identifiants : Les mots de passe sont chargés uniquement à partir de variables d'environnement (fichier .env), jamais depuis config.yaml
  • Aucune modification réseau : Impossible de modifier les segments, passerelles, NAT ou routage — cette portée appartient à vmware-nsx
  • Défense contre l'injection de prompts : Toutes les chaînes provenant de l'API passent par _sanitize() avant d'être incluses dans la sortie de l'outil

Configuration

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

Créez un fichier .env dans ~/.vmware-nsx-security/ :

VMWARE_NSX_URL=https://nsx-manager.example.com
VMWARE_NSX_USERNAME=admin
VMWARE_NSX_PASSWORD=your-password

Pour des cibles multiples :

VMWARE_NSX_SECURITY_NSX_PROD_URL=https://nsx-prod.example.com
VMWARE_NSX_SECURITY_NSX_PROD_USERNAME=admin
VMWARE_NSX_SECURITY_NSX_PROD_PASSWORD=prod-password

VMWARE_NSX_SECURITY_NSX_LAB_URL=https://nsx-lab.example.com
VMWARE_NSX_SECURITY_NSX_LAB_USERNAME=admin
VMWARE_NSX_SECURITY_NSX_LAB_PASSWORD=lab-password

Skills associés