Was macht VMware NSX Sicherheit?
Haftungsausschluss: Dies ist ein von der Community gepflegtes Open-Source-Projekt und steht in keiner Verbindung zu VMware, Inc. oder Broadcom Inc. und wird von diesen nicht unterstützt oder gesponsert. „VMware“ und „NSX“ sind Marken von Broadcom. Der Quellcode ist öffentlich einsehbar unter github.com/zw008/VMware-NSX-Security unter der MIT-Lizenz.
VMware NSX DFW Mikrosegmentierung und Sicherheit – 21 MCP-Werkzeuge für Distributed Firewall, Sicherheitsgruppen, VM-Tags, Traceflow und IDPS.
Domänenfokussierte Sicherheitsfähigkeit für die NSX-T / NSX 4.x Policy API. Komplementäre Fähigkeiten: vmware-nsx (Netzwerk), vmware-aiops (VM-Lebenszyklus), vmware-monitor (reine Überwachung), vmware-avi (AVI/ALB/AKO), vmware-harden (Compliance-Baselines). | vmware-pilot (Workflow-Orchestrierung) | vmware-policy (Prüfung/Richtlinie)
Was diese Fähigkeit tut
| Kategorie | Werkzeuge | Anzahl |
|---|---|---|
| DFW-Richtlinie | auflisten, abrufen, erstellen, aktualisieren, löschen, Regeln auflisten | 6 |
| DFW-Regeln | erstellen, aktualisieren, löschen, Statistiken abrufen | 4 |
| Sicherheitsgruppen | auflisten, abrufen, erstellen, löschen | 4 |
| VM-Tags | VM-Tags auflisten, Tag anwenden, Tag entfernen | 3 |
| Traceflow | Trace ausführen, Ergebnis abrufen | 2 |
| IDPS | Profile auflisten, Status abrufen | 2 |
Gesamt: 21 Werkzeuge (10 nur lesend + 11 schreibend)
Schnellinstallation
uv tool install vmware-nsx-security
vmware-nsx-security doctor
Wann diese Fähigkeit verwendet werden sollte
- DFW-Sicherheitsrichtlinien und -Regeln auflisten, erstellen oder ändern
- Sicherheitsgruppen basierend auf VM-Tags, IP-Bereichen oder Segmentzugehörigkeit erstellen
- NSX-Tags auf virtuellen Maschinen anwenden oder auflisten
- Traceflow ausführen, um einen Paketpfad zu verfolgen und Ablehnungsgründe zu diagnostizieren
- IDPS-Profilkonfiguration, Signaturstatus und globale IDS-Einstellungen überprüfen
- Zero-Trust-Mikrosegmentierung zwischen Anwendungsschichten implementieren
Komplementäre Fähigkeiten verwenden für:
- NSX-Segmente, Gateways, NAT, Routing, IPAM →
vmware-nsx - VM-Lebenszyklus, Bereitstellung, Gast-Operationen →
vmware-aiops - vSphere-Inventar, Gesundheit, Alarme, Ereignisse →
vmware-monitor - Speicher: iSCSI, vSAN, Datastores →
vmware-storage - Tanzu Kubernetes →
vmware-vks - Lastausgleich, AVI/ALB, AKO, Ingress →
vmware-avi
Verwandte Fähigkeiten – Fähigkeitsrouting
| Benutzerabsicht | Empfohlene Fähigkeit |
|---|---|
| NSX-Sicherheit: DFW-Regeln, Sicherheitsgruppen, IDS/IPS | vmware-nsx-security ← diese Fähigkeit |
| NSX-Netzwerk: Segmente, Gateways, NAT, Routing | vmware-nsx |
| Reine vSphere-Überwachung, Alarme, Ereignisse | vmware-monitor |
| VM-Lebenszyklus, Bereitstellung, Gast-Operationen | vmware-aiops |
| Speicher: iSCSI, vSAN, Datastores | vmware-storage |
| Tanzu Kubernetes | vmware-vks |
| Mehrstufige Workflows mit Genehmigung | vmware-pilot |
| Compliance-Baselines (CIS / 等保 / PCI-DSS), Drift-Erkennung, LLM-Reparaturberater | vmware-harden (uv tool install vmware-harden) |
| Lastausgleich, AVI, ALB, AKO, Ingress | vmware-avi (uv tool install vmware-avi) |
| Audit-Log-Abfrage | vmware-policy (vmware-audit CLI) |
Häufige Workflows
Mikrosegmentierung für Anwendungsschichten implementieren
Vorbereitung (Urteilsvermögen – DFW-Änderungen können alle aussperren):
- Zuerst Standard-Allow: Die allererste Regel in jeder neuen Richtlinie muss ALLOW für Managementverkehr sein (DNS, NTP, vCenter, SSH von Jumphost). Ohne sie blockieren Sie Ihren eigenen Zugang, sobald Sie ein Standard-Deny hinzufügen.
- Tag-Inventarisierung: Bestätigen Sie, dass die VMs, die Sie schützen möchten, tatsächlich das Tag tragen (
tag list <vm>). Eine Gruppe, die auf einem nicht vorhandenen Tag basiert, passt auf null VMs – die Richtlinie wird als „angewendet“ angezeigt, setzt aber nichts durch. - Kategorieauswahl:
Applicationfür Mikrosegmentierung zwischen Anwendungsschichten (Regeln werden spät ausgewertet, nachdem Infrastrukturregeln durchgelaufen sind). Die Verwendung vonEmergencyfür Routine-Regeln würde die Kapazität für echte Vorfallreaktion beeinträchtigen. - Statuslos? Standardmäßig zustandsbehaftet – NSX DFW ist zustandsbehaftet und fast keine Regel sollte statuslos sein. Statuslos = beide Richtungen müssen explizit erlaubt werden.
- Beginnen Sie immer mit aktiviertem Logging für neue Regeln; deaktivieren Sie es später nach der Verifizierung. Stille Ablehnungen sind die schlimmste Art von Fehlern.
Schritte:
- Taggen Sie zuerst die VMs (siehe Workflow unten) – leere Gruppen = keine Durchsetzung
- Erstellen Sie Gruppen mit dem MCP-Werkzeug
create_groupmittag_scope/tag_value(die Tag-Bedingung wird als"scope|tag"abgeglichen, z.B.tier|web; beachten Sie, dass mehrere Kriterientypen – Tag/IP/Segment – ODER-verknüpft sind, nicht UND) policy create app-microseg --category Application- Fügen Sie Regeln in dieser Reihenfolge hinzu: ALLOW Management → ALLOW Intra-Tier → ALLOW web→app auf app-port → DROP any-any mit Logging
- Überprüfen Sie mit Traceflow (siehe unten) bevor Sie das Standard-Deny aktivieren
NSX-Tags auf VMs anwenden
Urteilsvermögen: Tags steuern die Gruppenmitgliedschaft, die wiederum die DFW-Durchsetzung steuert. Ein falsch geschriebenes Tag schließt eine VM stillschweigend vom Schutz aus. Nach dem Anwenden immer erneut auflisten.
tag list my-web-vm-01→ notieren Sie die externe ID der VM und sehen Sie sich vorhandene Tags an (vermeiden Sie Duplikate / Tippfehler-Kollisionen)tag apply <vm-external-id> --scope tier --value web- Überprüfen:
tag list my-web-vm-01erneut → bestätigen Sie, dass das neue Tag vorhanden UND keine unerwarteten Tags vorhanden sind
Ein Paket mit Traceflow verfolgen
Urteilsvermögen: Traceflow ist Ihr Verifizierungsmechanismus für jede DFW-Änderung. Führen Sie es vor dem Aktivieren von Deny-Regeln und nach jeder Regeländerung aus. Vertrauen Sie nicht auf „sieht im UI richtig aus“.
- Logische Port-ID der Quell-VM über
vmware-nsx troubleshoot vm-segmentabrufen traceflow run <lport-id> --src-ip <src> --dst-ip <dst> --proto TCP --dst-port <port>- Überprüfen Sie die DFW-Trefferkette: welche Regel traf, ALLOW oder DROP, und auf welchem Transportknoten
- Häufiger Fehler: Regel passt in Kategorie Application, wird aber von einem früheren DROP in Kategorie Environment verdeckt – lesen Sie den Trace von oben nach unten, nicht nur das endgültige Urteil
DFW-Richtlinien-Trefferzahlen überprüfen
vmware-nsx-security policy list
vmware-nsx-security rule list <policy-id>
vmware-nsx-security rule stats <policy-id> <rule-id>
Multi-Target-Operationen
Alle Befehle akzeptieren --target <name>, um gegen einen bestimmten NSX-Manager zu arbeiten:
# Standardziel
vmware-nsx-security policy list
# Bestimmtes Ziel
vmware-nsx-security policy list --target nsx-prod
vmware-nsx-security group list --target nsx-lab
Nutzungsmodus
| Szenario | Empfohlen | Grund |
|---|---|---|
| Lokale/kleine Modelle (Ollama, Qwen) | CLI | ~2K Tokens vs ~8K für MCP |
| Cloud-Modelle (Claude, GPT-4o) | Beides | MCP bietet strukturierte JSON-E/A |
| Automatisierte Pipelines | MCP | Typsichere Parameter, strukturierte Ausgabe |
MCP-Werkzeuge (21 – 10 lesend, 11 schreibend)
Alle MCP-Werkzeuge akzeptieren einen optionalen target-Parameter.
| Kategorie | Werkzeug | Typ | Beschreibung |
|---|---|---|---|
| DFW-Richtlinie | list_dfw_policies | Lesen | Alle DFW-Sicherheitsrichtlinien mit Kategorie, Reihenfolge und Regelanzahl auflisten |
get_dfw_policy | Lesen | Richtliniendetails abrufen: Kategorie, zustandsbehaftet, gesperrt, Gültigkeitsbereich, Tags | |
create_dfw_policy | Schreiben | Neue DFW-Richtlinie mit Kategorie und Sequenznummer erstellen | |
update_dfw_policy | Schreiben | Teilweises Aktualisieren: display_name, description, sequence_number, stateful | |
delete_dfw_policy | Schreiben | Richtlinie löschen – verweigert, wenn aktive Regeln vorhanden sind | |
list_dfw_rules | Lesen | Regeln in einer Richtlinie auflisten: Aktion, Quellen, Ziele, Dienste | |
| DFW-Regeln | create_dfw_rule | Schreiben | Regel mit Quellen/Zielen/Diensten/Aktion/Gültigkeitsbereich erstellen |
update_dfw_rule | Schreiben | Teilweises Aktualisieren von Regelfeldern | |
delete_dfw_rule | Schreiben | Regel aus einer Richtlinie löschen | |
get_dfw_rule_stats | Lesen | Paket-/Byte-/Sitzungs-/Trefferzahlen und popularity_index für eine Regel abrufen | |
| Sicherheitsgruppen | list_groups | Lesen | Alle Sicherheitsgruppen mit Ausdrucksanzahl auflisten |
get_group | Lesen | Gruppendetails abrufen: Ausdruckskriterien + bis zu 50 effektive VM-Mitglieder | |
create_group | Schreiben | Gruppe mit Tag/IP/Segment-Mitgliedschaftskriterien erstellen (Tag wird als „scope | |
delete_group | Schreiben | Gruppe löschen – verweigert, wenn von DFW-Regeln/Gültigkeitsbereichen referenziert, oder wenn die Referenzprüfung fehlschlägt | |
| VM-Tags | list_vm_tags | Lesen | NSX-Tags auf einer VM nach Anzeigename auflisten |
apply_vm_tag | Schreiben | Ein Bereichs-/Wert-Tag auf eine VM anwenden (additiv, vorhandene Tags bleiben erhalten) | |
remove_vm_tag | Schreiben | Ein Bereichs-/Wert-Tag von einer VM entfernen (andere Tags bleiben erhalten; kann die dynamische Gruppenmitgliedschaft ändern) | |
| Traceflow | run_traceflow | Schreiben | Sondenpaket injizieren; gibt operation_state + hop-by-hop-Beobachtungen (nach resource_type) + dfw_hits zurück |
get_traceflow_result | Lesen | operation_state/Beobachtungen eines vorhandenen Traceflows überprüfen | |
| IDPS | list_idps_profiles | Lesen | IDPS-Profile mit Schweregrad und Filterkriterien auflisten |
get_idps_status | Lesen | IDPS-Signaturstatus + globale IDS-Einstellungen abrufen (auto_update, syslog export) |
CLI-Kurzreferenz
# DFW-Richtlinie
vmware-nsx-security policy list [--target <name>]
vmware-nsx-security policy get <policy-id>
vmware-nsx-security policy create <id> --name "Anzeigename" --category Application [--dry-run]
vmware-nsx-security policy delete <id> [--dry-run]
# DFW-Regeln
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]
# Sicherheitsgruppen
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
# Diagnose
vmware-nsx-security doctor [--skip-auth]
Fehlerbehebung
„Richtlinie kann nicht gelöscht werden – aktive Regeln vorhanden“
delete_dfw_policy prüft vor dem Löschen auf aktive Regeln. Verwenden Sie vmware-nsx-security rule list <policy-id>, um zu sehen, welche Regeln zuerst entfernt werden müssen. Löschen Sie dann jede Regel einzeln, bevor Sie das Löschen der Richtlinie erneut versuchen.
„Gruppe kann nicht gelöscht werden – von DFW-Regeln referenziert“
delete_group durchsucht alle Richtlinien nach Referenzen auf die Gruppe in den Quellgruppen, Zielgruppen und dem angewendeten Gültigkeitsbereich von Regeln sowie dem Gültigkeitsbereich auf Richtlinienebene. Entfernen Sie die Gruppe zuerst aus diesen Referenzen (über update_dfw_rule, indem Sie den Gruppenpfad durch 'ANY' oder eine andere Gruppe ersetzen) und versuchen Sie es dann erneut. Wenn der Fehler besagt, dass die Referenzprüfung selbst fehlgeschlagen ist, wurde die Löschung als Vorsichtsmaßnahme abgebrochen – überprüfen Sie die NSX-Konnektivität mit vmware-nsx-security doctor und versuchen Sie es erneut.
„Keine virtuelle Maschine mit display_name gefunden“
list_vm_tags sucht VMs nach Anzeigename über die NSX-Fabric-API. Häufige Ursachen:
- Anzeigename stimmt nicht überein – der Name im NSX-Manager kann von dem in vCenter abweichen. Überprüfen Sie
vmware-monitor vm listauf den genauen NSX-Fabric-Anzeigenamen. - VM nicht registriert – neu bereitgestellte VMs benötigen möglicherweise eine Minute, um in der NSX-Fabric zu erscheinen.
- Mehrere VMs mit demselben Namen – verwenden Sie
apply_vm_tagmit der spezifischen external_id.
Traceflow gibt leere Beobachtungen zurück
- Wenn
operation_stateIN_PROGRESSist, ist die Verfolgung noch nicht abgeschlossen – fragen Sie erneut mitget_traceflow_result <traceflow-id>ab. - Überprüfen Sie, ob
src_lport_iddie korrekte UUID der logischen Port-Zuordnung ist – nicht der Segment-Port-Pfad. Erhalten Sie sie vonvmware-nsx troubleshoot vm-segment <vm>. - Die Quell-VM muss eingeschaltet und mit einem NSX-Overlay-Segment verbunden sein.
- Wenn sich die VM in einem VLAN-basierten Segment befindet, wird Traceflow nicht unterstützt.
- Der NSX-Manager erfordert, dass der Transportknoten, der die Quell-VM hostet, erreichbar ist. Überprüfen Sie
vmware-nsx health transport-nodes.
DFW-Regelstatistiken zeigen null Treffer
Eine neu erstellte Regel hat null Trefferzahlen, bis Verkehr darauf zutrifft. Wenn erwarteter Verkehr immer noch null anzeigt:
- Bestätigen Sie, dass die Regel nicht deaktiviert ist (
disabled: falsein derlist_dfw_rules-Ausgabe). - Überprüfen Sie, ob die Quell-/Zielgruppenmitgliedschaft mit
get_groupkorrekt ist. - Überprüfen Sie die Sequenznummer der Regel – eine Regel mit niedrigerer Sequenz und ALLOW/DROP könnte zuerst zutreffen.
Fehler „Passwort nicht gefunden“
Passwortvariablenkonvention: VMWARE_NSX_SECURITY_<TARGET_UPPER>_PASSWORD
wobei Bindestriche durch Unterstriche ersetzt werden. Für Ziel nsx-prod:
VMWARE_NSX_SECURITY_NSX_PROD_PASSWORD. Überprüfen Sie ~/.vmware-nsx-security/.env.
invalid peer certificate: UnknownIssuer (uvx)
Unternehmens-TLS-Proxy wird vom gebündelten Zertifikatsspeicher von uv nicht vertraut. Verwenden Sie die Ein-Befehl-Form vmware-nsx-security mcp ab v1.5.15 (kein erneutes Auflösen von PyPI) oder
exportieren Sie UV_NATIVE_TLS=true, damit uv den Systemzertifikatsspeicher verwendet.
Sicherheit
- Audit-Logging: Alle Schreiboperationen werden in
~/.vmware/audit.db(SQLite WAL, über vmware-policy) mit Zeitstempel, Benutzer, Ziel, Operation, Parametern und Ergebnis protokolliert - Abhängigkeitsprüfungen:
delete_dfw_policyprüft auf aktive Regeln;delete_groupprüft auf DFW-Regelreferenzen – verhindert versehentliche Kaskadenausfälle - Eingabevalidierung: Alle IDs werden gegen einen sicheren Zeichensatz validiert (alphanumerisch, Bindestriche, Unterstriche, Punkte); alle Textfelder werden bereinigt, um Steuerzeichen zu entfernen
- Probelauf-Modus: CLI-Schreibbefehle unterstützen
--dry-run, um API-Aufrufe ohne Ausführung zu testen - Doppelte Bestätigung: Zerstörerische CLI-Operationen (löschen) erfordern zwei separate Bestätigungsaufforderungen
- Anmeldeinformationssicherheit: Passwörter werden nur aus Umgebungsvariablen (
.env-Datei) geladen, niemals ausconfig.yaml - Keine Netzwerkänderungen: Kann Segmente, Gateways, NAT oder Routing nicht ändern – dieser Bereich gehört zu
vmware-nsx - Prompt-Injection-Abwehr: Alle aus der API stammenden Zeichenfolgen werden vor der Aufnahme in die Werkzeugausgabe durch
_sanitize()geleitet
Einrichtung
uv tool install vmware-nsx-security
# Standardziel konfigurieren
cp .env.example ~/.vmware-nsx-security/.env
# ~/.vmware-nsx-security/.env bearbeiten:
# VMWARE_NSX_SECURITY_HOST=nsx-manager.example.com
# VMWARE_NSX_SECURITY_USERNAME=admin
# VMWARE_NSX_SECURITY_PASSWORD=your-password
# Verbindung prüfen
vmware-nsx-security doctor
# MCP-Konfiguration (nur wenn Sie MCP-Client verwenden)
vmware-nsx-security mcp
Docker-Container
docker run -it --rm \
-e VMWARE_NSX_SECURITY_HOST=nsx-manager.example.com \
-e VMWARE_NSX_SECURITY_USERNAME=admin \
-e VMWARE_NSX_SECURITY_PASSWORD=your-password \
ghcr.io/zw008/vmware-nsx-security:latest