
VMware vCenter Server Appliance (VCSA)용 자동화된 제로 트러스트 강화 및 포렌식 감사
VMware vCenter Server Appliance(VCSA)를 위한 자동 강화 스크립트로, 제로 트러스트 네트워크 분할 및 심층 포렌식 감사를 적용하도록 설계되었습니다.
이 도구는 가상화 인프라를 대상으로 하는 고급 지속 위협(APT) 및 파괴적 캠페인과 관련된 주요 위험을 완화하도록 설계되었습니다. 엄격한 계층 3/4 마이크로 세분화 및 포렌식 명령 로깅을 적용하여 측면 이동, 명령 및 제어(C2) 비콘, 안티포렌식 변조와 같은 일반적인 공격 벡터를 무력화합니다. 이는 공격자가 VCSA를 발판으로 삼아 기본 ESXi 하이퍼바이저를 손상시키거나 광범위한 인프라 파괴를 실행하는 것을 방지합니다.
실행 전 읽어보세요: 이 도구는 표준 VAMI 인터페이스를 우회하여 OS 커널 수준에서 VCSA iptables 구성을 수정합니다.
VCSA 강화 및 로깅 도구는 vCenter 서버의 보안 태세를 '기본 허용' 모델에서 '기본 거부'(제로 트러스트) 모델로 전환합니다. 외부 하드웨어 방화벽 없이 강화된 관리 평면을 만들기 위해 네이티브 Linux 제어를 활용합니다.
vCenter 어플라이언스가 계층 0 자산으로 간주되는 고보안 환경을 위해 설계되었습니다.
bash 명령을 Syslog에 기록합니다(예: cmd="rm -rf /").다음 사항이 확인될 때까지 진행하지 마십시오:
텍스트 편집기에서 vcsa-hardening.sh를 엽니다. START CONFIGURATION 블록을 반드시 수정해야 합니다.
허용할 대상을 정의하도록 배열을 편집합니다.
# SSH 접속 허용 IP (포트 22)
TRUSTED_SSH_IPS=( "192.168.10.50" ) # 관리 PAW만 허용
# 웹 UI / API 접속 허용 IP (포트 443)
# 다음을 포함해야 함: 관리자, ESXi 호스트, 백업 서버
TRUSTED_WEB_IPS=(
"192.168.10.50" # 관리 PAW
"10.20.0.0/24" # ESXi 관리 서브넷
"10.50.1.100" # Veeam 서버
)
방화벽이 무차별 대입 공격을 막기 위해 연결 빈도를 추적할지 여부를 제어합니다.
ENABLE_RATE_LIMITING=true (기본값): 분당 6회 이상의 연결을 시도하는 IP를 차단합니다.ENABLE_RATE_LIMITING=false: 많은 병렬 스트림을 여는 "시끄러운" 자동화 백업 도구(예: NetWorker)를 사용하는 경우 비활성화합니다.부울 변수를 전환하여 다음 태세 중 하나를 선택하십시오.
scp vcsa-hardening.sh root@<VCSA_IP>:/root/
ssh root@<VCSA_IP>
chmod +x vcsa-hardening.sh
항상 이것을 먼저 실행하십시오. 변경 사항을 적용하지 않고 로직을 시뮬레이션합니다.
./vcsa-hardening.sh --dry-run
./vcsa-hardening.sh
스크립트는 규칙을 적용하기 전에 현재 SSH IP가 신뢰 목록에 있는지 확인하는 안전 검사를 수행합니다.
적용되면 스크립트는 로그를 표준 VMware Syslog 스트림으로 연결합니다.
명령을 실행하고 SHELL_COMMAND 태그와 함께 로그에 나타나는지 확인하십시오.
# 1. 테스트 명령 실행
echo "test_audit_logging"
# 2. 로그 확인 (올바른 태그는 SHELL_COMMAND)
journalctl -f | grep SHELL_COMMAND
출력 예: vcsa-01 logger: CMD user=root host=vcsa pwd=/root pid=1234 exit=0 cmd="echo test_audit_logging"
신뢰할 수 없는 IP(예: 모바일 핫스팟)에서 SSH를 시도하고 로그를 확인하십시오:
journalctl -f | grep BLOCKED
출력 예: kernel: SSH_BLOCKED_NEW: IN=eth0 OUT= MAC=... SRC=1.2.3.4 ...
SSH를 통해 잠긴 경우 다음 단계에 따라 VCSA를 기본값으로 복원하십시오:
root로 로그인합니다.shell을 입력하여 Bash에 진입합니다.# 수동 롤백
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
rm /etc/systemd/scripts/ip4save
문제, 아이디어 또는 피드백이 있으면 이슈를 열거나 PR을 제출해 주십시오.
Copyright 2026 Google LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
| 모드 | 구성 | 설명 |
|---|
| 표준 강화 | 둘 다 false | (기본값) 엄격한 인바운드 허용 목록. 아웃바운드 트래픽은 허용됩니다. 일반 사용에 가장 적합합니다. |
| 인터넷 차단 | BLOCK_INTERNET_ACCESS=true | (권장) 내부 트래픽(RFC1918)은 허용하지만 모든 공용 인터넷 액세스를 차단합니다. |
| 제로 트러스트 | ENABLE_ZERO_TRUST_MODE=true | (가장 엄격함) 명시적으로 나열되지 않은 모든 인바운드/아웃바운드 트래픽을 차단합니다. ADDITIONAL_PRIVATE_RANGES의 완벽한 구성이 필요합니다. |