Community라이팅 & 에디팅github.com

vmware-skills/VMware-NSX-Security

VMware NSX DFW 마이크로세그멘테이션 및 보안: 분산 방화벽, 보안 그룹, 태그, Traceflow, IDPS — AI 에이전트용 MCP 도구

VMware-NSX-Security란 무엇인가요?

이 스킬은 AI 에이전트(Claude Code, Cursor 등)가 VMware NSX DFW(분산 방화벽)를 기반으로 한 마이크로세그멘테이션 및 보안 정책을 자동화할 수 있도록 설계된 21개의 MCP 도구 모음입니다. DFW 정책 및 규칙 CRUD, 보안 그룹 관리, VM 태그 적용/제거, Traceflow 패킷 경로 추적, IDPS 프로필 및 상태 조회 등 네트워크 보안 운영에 필요한 모든 기능을 제공합니다. NSX-T 및 NSX 4.x Policy API와 호환되며, CLI 및 MCP(JSON I/O) 두 가지 모드로 동작하여 로컬 소형 모델(Ollama)부터 클라우드 모델(Claude, GPT-4o)까지 다양한 환경에서 활용할 수 있습니다. 특히, VM 태그 기반 동적 보안 그룹 멤버십을 지원하여 애플리케이션 계층 간 제로 트러스트 마이크로세그멘테이션을 구현할 수 있으며, Traceflow를 통해 DFW 변경 전후 패킷 경로를 검증하여 오작동을 사전에 방지할 수 있습니다. 모든 MCP 도구는 선택적 `target` 파라미터를 지원하여 다중 NSX Manager 환경에서도 유연하게 운영할 수 있습니다.

지원 대상✓Claude Code~Codex CLI✓Cursor
npx skills add vmware-skills/VMware-NSX-Security

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

VMware NSX Security

고지사항: 이는 커뮤니티 유지 관리형 오픈소스 프로젝트이며, VMware, Inc. 또는 Broadcom Inc.와 제휴, 보증 또는 후원 관계가 아닙니다. "VMware" 및 "NSX"는 Broadcom의 상표입니다. 소스 코드는 MIT 라이선스 하에 github.com/vmware-skills/VMware-NSX-Security에서 공개적으로 감사 가능합니다.

VMware NSX DFW 마이크로세그멘테이션 및 보안 — 분산 방화벽, 보안 그룹, VM 태그, Traceflow 및 IDPS를 위한 21개의 MCP 도구입니다.

NSX-T / NSX 4.x Policy API를 위한 도메인 중심 보안 스킬입니다. 함께 사용하면 좋은 스킬: vmware-nsx (네트워킹), vmware-aiops (VM 수명주기), vmware-monitor (읽기 전용 모니터링), vmware-avi (AVI/ALB/AKO), vmware-harden (규정 준수 베이스라인). | vmware-pilot (워크플로우 오케스트레이션) | vmware-policy (감사/정책)

이 스킬이 하는 일

카테고리도구개수
DFW 정책목록, 조회, 생성, 업데이트, 삭제, 규칙 목록6
DFW 규칙생성, 업데이트, 삭제, 통계 조회4
보안 그룹목록, 조회, 생성, 삭제4
VM 태그VM 태그 목록, 태그 적용, 태그 제거3
Traceflow추적 실행, 결과 조회2
IDPS프로필 목록, 상태 조회2

총계: 21개 도구 (읽기 전용 10개 + 쓰기 11개)

빠른 설치

uv tool install vmware-nsx-security
vmware-nsx-security init      # 안내식 설정: config + .env 작성 (chmod 600, 비밀번호 grep-safe), 이후 확인
vmware-nsx-security doctor

이 스킬을 사용해야 하는 경우

  • DFW 보안 정책 및 규칙 목록, 생성 또는 수정
  • VM 태그, IP 범위 또는 세그먼트 멤버십 기반 보안 그룹 생성
  • 가상 머신에 NSX 태그 적용 또는 목록 확인
  • Traceflow를 실행하여 패킷 경로 추적 및 드롭 원인 진단
  • IDPS 프로필 구성, 서명 상태 및 글로벌 IDS 설정 확인
  • 애플리케이션 계층 간 제로 트러스트 마이크로세그멘테이션 구현

함께 사용하면 좋은 스킬:

  • NSX 세그먼트, 게이트웨이, NAT, 라우팅, IPAM → vmware-nsx
  • VM 수명주기, 배포, 게스트 운영 → vmware-aiops
  • vSphere 인벤토리, 상태, 알람, 이벤트 → vmware-monitor
  • 스토리지: iSCSI, vSAN, 데이터스토어 → vmware-storage
  • Tanzu Kubernetes → vmware-vks
  • 로드 밸런싱, AVI/ALB, AKO, Ingress → vmware-avi

관련 스킬 — 스킬 라우팅

사용자 의도권장 스킬
NSX 보안: DFW 규칙, 보안 그룹, IDS/IPSvmware-nsx-security ← 이 스킬
NSX 네트워킹: 세그먼트, 게이트웨이, NAT, 라우팅vmware-nsx
vSphere 읽기 전용 모니터링, 알람, 이벤트vmware-monitor
VM 수명주기, 배포, 게스트 운영vmware-aiops
스토리지: iSCSI, vSAN, 데이터스토어vmware-storage
Tanzu Kubernetesvmware-vks
승인 포함 다단계 워크플로우vmware-pilot
규정 준수 베이스라인 (CIS / 等保 / PCI-DSS), 드리프트 감지, LLM 수정 조언자vmware-harden (uv tool install vmware-harden)
로드 밸런서, AVI, ALB, AKO, Ingressvmware-avi (uv tool install vmware-avi)
감사 로그 쿼리vmware-policy (vmware-audit CLI)

일반적인 워크플로우

애플리케이션 계층 마이크로세그멘테이션 구현

사전 점검 (판단 — DFW 변경은 모든 사람을 잠글 수 있습니다):

  • 기본 허용 우선: 새 정책의 첫 번째 규칙은 항상 관리 트래픽(DNS, NTP, vCenter, 점프 호스트 SSH)에 대해 ALLOW여야 합니다. 그렇지 않으면 기본 거부를 추가하는 순간 자신의 접근이 차단됩니다.
  • 태그 인벤토리 확인: 보호하려는 VM에 실제로 태그가 있는지 확인합니다 (tag list <vm>). 존재하지 않는 태그를 기반으로 한 그룹은 일치하는 VM이 0개입니다. 정책이 "적용된" 것처럼 보이지만 아무것도 적용되지 않습니다.
  • 카테고리 선택: 애플리케이션 계층 마이크로세그의 경우 Application을 사용하십시오 (Infrastructure 규칙이 통과된 후 나중에 평가됨). 일상적인 규칙에 Emergency를 사용하면 실제 사고 대응 용량이 부족해집니다.
  • Stateless? 기본값은 stateful입니다. NSX DFW는 stateful이며 거의 모든 규칙은 stateless가 아니어야 합니다. Stateless = 양방향을 명시적으로 허용해야 합니다.
  • 새 규칙에는 항상 로깅을 활성화하여 시작하고, 나중에 확인된 후 비활성화하십시오. 무음 드롭은 최악의 버그입니다.

단계:

  1. 먼저 VM에 태그를 지정합니다 (아래 워크플로우 참조) — 빈 그룹 = 적용되지 않음
  2. tag_scope/tag_value와 함께 create_group MCP 도구를 사용하여 그룹을 생성합니다 (태그 조건은 "scope|tag"로 일치됨, 예: tier|web; 여러 조건 유형(태그/IP/세그먼트)은 AND가 아닌 OR로 처리됨)
  3. policy create app-microseg --category Application
  4. 규칙을 순서대로 추가: ALLOW 관리 → ALLOW 계층 내 → ALLOW web→app on app-port → DROP any-any (로깅 포함)
  5. 기본 거부를 활성화하기 전에 traceflow로 확인합니다 (아래 참조)

VM에 NSX 태그 적용

판단: 태그는 그룹 멤버십을 결정하고, 그룹 멤버십은 DFW 적용을 결정합니다. 오타가 있는 태그는 VM을 보호에서 조용히 제외시킵니다. 적용 후 항상 다시 목록을 확인하십시오.

  1. tag list my-web-vm-01 → VM 외부 ID를 기록하고, 이미 존재하는 태그를 확인합니다 (중복/오타 충돌 방지)
  2. tag apply <vm-external-id> --scope tier --value web
  3. 확인: tag list my-web-vm-01을 다시 실행 → 새 태그가 있고 예상치 못한 태그가 없는지 확인합니다

Traceflow로 패킷 추적

판단: traceflow는 모든 DFW 변경에 대한 검증 메커니즘입니다. 거부 규칙을 활성화하기 전에 그리고 모든 규칙 수정 후에 실행하십시오. UI에서 "올바르게 보인다"고 믿지 마십시오.

  1. vmware-nsx troubleshoot vm-segment를 통해 소스 VM의 논리적 포트 ID를 가져옵니다.
  2. traceflow run <lport-id> --src-ip <src> --dst-ip <dst> --proto TCP --dst-port <port>
  3. DFW 적중 체인을 검사합니다: 어떤 규칙이 일치했는지, ALLOW 또는 DROP인지, 어떤 전송 노드에서 발생했는지
  4. 일반적인 실패: 규칙은 Application 카테고리에서 일치하지만 Environment 카테고리의 이전 DROP에 의해 가려짐 — 최종 결과뿐만 아니라 추적을 위에서 아래로 읽으십시오

DFW 정책 적중 횟수 확인

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

다중 대상 작업

모든 명령은 --target <name>을 허용하여 특정 NSX Manager에 대해 작업합니다:

# 기본 대상
vmware-nsx-security policy list

# 특정 대상
vmware-nsx-security policy list --target nsx-prod
vmware-nsx-security group list --target nsx-lab

사용 모드

시나리오권장이유
로컬/소형 모델 (Ollama, Qwen)CLIMCP의 ~8K 토큰 대비 ~2K 토큰
클라우드 모델 (Claude, GPT-4o)모두 가능MCP는 구조화된 JSON I/O 제공
자동화된 파이프라인MCP타입-세이프 파라미터, 구조화된 출력

로컬 또는 소형 모델로 실행하는 경우? 명시적인 운영 규칙은 references/agent-guardrails.md를 참조하십시오.

MCP 도구 (21개 — 읽기 10개, 쓰기 11개)

모든 MCP 도구는 선택적 target 파라미터를 허용합니다.

list_dfw_policies, list_dfw_rules, list_groups 및 list_idps_profiles는 패밀리 목록 래퍼를 반환합니다 — {items, returned, limit, total, truncated, hint} — 순수 배열 대신. items에서 행을 읽고 목록이 완전하다고 결론 내리기 전에 truncated를 확인하십시오. 50행 기본 페이지는 그것 없이 전체 에스테이트와 동일하게 보입니다. total은 스캔이 증명한 경우에만 명시됩니다: 필터링되지 않은 목록이 1000개 항목 get_all 제한 미만으로 유지된 경우 실제 개수이며, 이름 필터링된 목록, 제한된 스캔 및 list_dfw_rules의 경우 null입니다(해당 가져오기는 요청된 창으로 제한됨). truncated: true와 함께 null total은 "더 있을 수 있음"을 의미합니다 — offset으로 페이지를 나누어 확인하십시오. 오류는 {error, hint}를 반환합니다 (딕셔너리, 단일 요소 목록이 아님).

카테고리도구유형설명
DFW 정책list_dfw_policies읽기카테고리, 시퀀스 및 규칙 수로 모든 DFW 보안 정책 나열
get_dfw_policy읽기정책 세부 정보 조회: 카테고리, stateful, 잠김, 범위, 태그
create_dfw_policy쓰기카테고리 및 시퀀스 번호로 새 DFW 정책 생성
update_dfw_policy쓰기부분 업데이트: display_name, description, sequence_number, stateful
delete_dfw_policy쓰기정책 삭제 — 활성 규칙이 있으면 거부
list_dfw_rules읽기정책 내 규칙 나열: 액션, 소스, 대상, 서비스
DFW 규칙create_dfw_rule쓰기소스/대상/서비스/액션/범위로 규칙 생성
update_dfw_rule쓰기규칙 필드 부분 업데이트
delete_dfw_rule쓰기정책에서 규칙 삭제
get_dfw_rule_stats읽기규칙에 대한 패킷/바이트/세션/적중 횟수 및 popularity_index 조회
보안 그룹list_groups읽기표현식 개수와 함께 모든 보안 그룹 나열
get_group읽기그룹 세부 정보 조회: 표현식 기준 + 최대 50개의 유효 VM 멤버
create_group쓰기태그/IP/세그먼트 멤버십 기준으로 그룹 생성 (태그는 "scope
delete_group쓰기그룹 삭제 — DFW 규칙/범위에서 참조되거나 참조 스캔이 실패하면 거부
VM 태그list_vm_tags읽기표시 이름으로 VM의 NSX 태그 나열
apply_vm_tag쓰기VM에 scope/value 태그 적용 (추가적, 기존 태그 유지)
remove_vm_tag쓰기VM에서 scope/value 태그 제거 (다른 태그 유지됨, 동적 그룹 멤버십이 변경될 수 있음)
Traceflowrun_traceflow쓰기프로브 패킷 주입; operation_state + 홉별 관찰 (resource_type별) + dfw_hits 반환
get_traceflow_result읽기기존 traceflow의 operation_state/observations 확인
IDPSlist_idps_profiles읽기심각도 및 필터 기준으로 IDPS 프로필 나열
get_idps_status읽기IDPS 서명 상태 + 글로벌 IDS 설정 조회 (auto_update, syslog 내보내기)

CLI 빠른 참조

# DFW 정책
vmware-nsx-security policy list [--target <name>]
vmware-nsx-security policy get <policy-id>
vmware-nsx-security policy create <id> --name "Display Name" --category Application [--dry-run]
vmware-nsx-security policy delete <id> [--dry-run]

# 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]

# 보안 그룹
vmware-nsx-security group list
vmware-nsx-security group get <group-id>
vmware-nsx-security group delete <group-id> [--dry-run]

# 태그
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 &lt;src-ip&gt; --dst-ip &lt;dst-ip&gt;

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

# 진단
vmware-nsx-security doctor [--skip-auth]

문제 해결

"Cannot delete policy — active rules exist"

delete_dfw_policy는 삭제 전에 활성 규칙을 확인합니다. vmware-nsx-security rule list <policy-id>를 사용하여 먼저 제거해야 할 규칙을 확인하십시오. 그런 다음 각 규칙을 개별적으로 삭제하고 정책 삭제를 다시 시도하십시오.

"Cannot delete group — referenced by DFW rules"

delete_group는 규칙 source_groups, destination_groups, applied-to 범위 및 정책 수준 범위에서 그룹에 대한 참조를 모든 정책에서 검색합니다. 해당 참조에서 그룹을 먼저 제거한 후 (그룹 경로를 'ANY' 또는 다른 그룹으로 대체하는 update_dfw_rule을 통해) 다시 시도하십시오. 오류가 참조 스캔 자체가 실패했다고 표시하면 예방 조치로 삭제가 중단된 것입니다 — vmware-nsx-security doctor로 NSX 연결을 확인하고 다시 시도하십시오.

"No virtual machine named ... exists in the NSX fabric inventory"

list_vm_tags는 NSX 패브릭 API를 통해 표시 이름으로 VM을 조회합니다. 일반적인 원인:

  1. 표시 이름 불일치 — NSX Manager의 이름이 vCenter와 다를 수 있습니다. 정확한 NSX 패브릭 표시 이름은 vmware-monitor vm list로 확인하십시오.
  2. VM 미등록 — 새로 배포된 VM이 NSX 패브릭에 나타나는 데 1분 정도 걸릴 수 있습니다.
  3. 이름이 같은 VM이 여러 개인 경우 — 특정 external_id와 함께 apply_vm_tag를 사용하십시오.

Traceflow가 빈 관찰 결과를 반환

  1. operation_state가 IN_PROGRESS이면 추적이 완료되지 않은 것입니다 — get_traceflow_result <traceflow-id>로 다시 폴링하십시오.
  2. src_lport_id가 올바른 논리적 포트 연결 UUID인지 확인하십시오 — 세그먼트 포트 경로가 아닙니다. vmware-nsx troubleshoot vm-segment <vm>에서 가져오십시오.
  3. 소스 VM이 켜져 있고 NSX 오버레이 세그먼트에 연결되어 있어야 합니다.
  4. VM이 VLAN 기반 세그먼트에 있는 경우 Traceflow가 지원되지 않습니다.
  5. NSX Manager는 소스 VM을 호스팅하는 전송 노드에 연결 가능해야 합니다. vmware-nsx health transport-nodes를 확인하십시오.

DFW 규칙 통계에 0 적중 표시

새로 생성된 규칙은 트래픽이 일치할 때까지 적중 횟수가 0입니다. 예상 트래픽에도 여전히 0이 표시되는 경우:

  1. 규칙이 비활성화되지 않았는지 확인하십시오 (list_dfw_rules 출력에서 disabled: false).
  2. get_group을 사용하여 소스/대상 그룹 멤버십이 올바른지 확인하십시오.
  3. 규칙 시퀀스 번호를 확인하십시오 — 낮은 시퀀스 번호의 ALLOW/DROP 규칙이 먼저 일치할 수 있습니다.

"Password not found" 오류

비밀번호 변수 규칙: VMWARE_NSX_SECURITY_<TARGET_UPPER>_PASSWORD 하이픈은 밑줄로 대체됩니다. 대상 nsx-prod의 경우: VMWARE_NSX_SECURITY_NSX_PROD_PASSWORD. ~/.vmware-nsx-security/.env를 확인하십시오.

invalid peer certificate: UnknownIssuer (uvx)

회사 TLS 프록시가 uv의 번들 인증서 저장소에서 신뢰하지 않습니다. v1.5.15+ 단일 명령 형식 vmware-nsx-security mcp를 사용하십시오 (PyPI 재해결 없음), 또는 export UV_NATIVE_TLS=true를 설정하여 uv가 운영 체제의 인증서 저장소를 사용하도록 하십시오.

관련 스킬