Hardening automatizzato Zero Trust e audit forense per VMware vCenter Server Appliance (VCSA)
Uno script di indurimento automatizzato per il VMware vCenter Server Appliance (VCSA) progettato per applicare la segmentazione di rete Zero Trust e un audit forense approfondito.
Questo strumento è progettato per mitigare i rischi critici associati a minacce persistenti avanzate (APT) e campagne distruttive che mirano all'infrastruttura di virtualizzazione. Applicando una micro-segmentazione rigorosa Layer 3/4 e la registrazione dei comandi forensi, neutralizza vettori di attacco comuni come il movimento laterale, il beaconing di comando e controllo (C2) e la manomissione anti-forense. Ciò impedisce agli avversari di sfruttare il VCSA come base di lancio per compromettere gli hypervisor ESXi sottostanti o eseguire sabotaggi su larga scala dell'infrastruttura.
LEGGERE PRIMA DELL'ESECUZIONE: Questo strumento modifica la configurazione iptables del VCSA a livello del kernel del sistema operativo, bypassando l'interfaccia VAMI standard.
Il VCSA Hardening & Logging Tool sposta la postura di sicurezza di un server vCenter da un modello "Default Permit" a un modello "Default Deny" (Zero Trust). Utilizza i controlli nativi di Linux per creare un piano di gestione indurito senza richiedere firewall hardware esterni.
È progettato per ambienti ad alta sicurezza in cui l'appliance vCenter è considerata un asset di Tier-0.
bash specifico digitato dagli amministratori su Syslog (es. cmd="rm -rf /").Non procedere fino a quando non sono stati confermati i seguenti punti:
Aprire vcsa-hardening.sh in un editor di testo. È necessario modificare il blocco START CONFIGURATION.
Modificare gli array per definire chi è autorizzato IN ENTRATA.
# WHO CAN SSH IN (Port 22)
TRUSTED_SSH_IPS=( "192.168.10.50" ) # Solo PAW Admin
# WHO CAN ACCESS WEB UI / API (Port 443)
# Must include: Admins, ESXi Hosts, and Backup Servers
TRUSTED_WEB_IPS=(
"192.168.10.50" # PAW Admin
"10.20.0.0/24" # Sottorete di gestione ESXi
"10.50.1.100" # Server Veeam
)
Controlla se il firewall traccia la frequenza delle connessioni per fermare gli attacchi brute force.
ENABLE_RATE_LIMITING=true (Predefinito): Blocca gli IP che tentano >6 connessioni/minuto.ENABLE_RATE_LIMITING=false: Disabilitare questa opzione se si utilizzano strumenti di backup automatico "rumorosi" (es. NetWorker) che aprono molti flussi paralleli.Selezionare UNA delle seguenti posture attivando le variabili booleane.
| Mode | Configuration | Description |
|---|---|---|
| Indurimento Standard | Entrambi false | (Predefinito) Whitelist rigorosa in entrata. Traffico in uscita consentito. Ideale per uso generale. |
| Blocco Internet | BLOCK_INTERNET_ACCESS=true | (Consigliato) Consente il traffico interno (RFC1918) ma blocca tutto l'accesso a Internet pubblico. |
| Zero Trust | ENABLE_ZERO_TRUST_MODE=true | (Più Restrittivo) Blocca TUTTO il traffico in entrata/uscita non esplicitamente elencato. Richiede una configurazione perfetta di ADDITIONAL_PRIVATE_RANGES. |
scp vcsa-hardening.sh root@<VCSA_IP>:/root/
ssh root@<VCSA_IP>
chmod +x vcsa-hardening.sh
Eseguire sempre questo prima. Simula la logica senza applicare modifiche.
./vcsa-hardening.sh --dry-run
./vcsa-hardening.sh
Lo script eseguirà un controllo di sicurezza per assicurarsi che l'IP SSH corrente sia nella lista attendibile prima di applicare le regole.
Una volta applicato, lo script collega i log al flusso Syslog VMware standard.
Eseguire un comando e assicurarsi che appaia nei log con il tag SHELL_COMMAND.
# 1. Run a test command
echo "test_audit_logging"
# 2. Check logs (Correct tag is SHELL_COMMAND)
journalctl -f | grep SHELL_COMMAND
Esempio di output: vcsa-01 logger: CMD user=root host=vcsa pwd=/root pid=1234 exit=0 cmd="echo test_audit_logging"
Tentare di SSH da un IP non attendibile (es. un hotspot mobile) e controllare i log:
journalctl -f | grep BLOCKED
Esempio di output: kernel: SSH_BLOCKED_NEW: IN=eth0 OUT= MAC=... SRC=1.2.3.4 ...
Se ci si blocca fuori tramite SSH, seguire questi passaggi per ripristinare il VCSA allo stato predefinito:
root.shell per entrare in Bash.# Rollback manuale
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
rm /etc/systemd/scripts/ip4save
Si prega di aprire un issue o inviare una PR se si hanno problemi, idee o feedback.
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
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.