
Durcissement automatisé Zero Trust et audit forensique pour VMware vCenter Server Appliance (VCSA)
Un script de durcissement automatisé pour le vCenter Server Appliance (VCSA) de VMware, conçu pour imposer une segmentation réseau Zero Trust et un audit forensique approfondi.
Cet outil est conçu pour atténuer les risques critiques associés aux menaces persistantes avancées (APTs) et aux campagnes destructrices ciblant l'infrastructure de virtualisation. En imposant une micro-segmentation stricte de couche 3/4 et une journalisation forensique des commandes, il neutralise les vecteurs d'attaque courants tels que le mouvement latéral, les communications C2 (Command and Control) et les falsifications anti-forensiques. Cela empêche les adversaires d'utiliser le VCSA comme tremplin pour compromettre les hyperviseurs ESXi sous-jacents ou exécuter un sabotage généralisé de l'infrastructure.
À LIRE AVANT EXÉCUTION : Cet outil modifie la configuration iptables du VCSA au niveau du noyau OS, contournant l'interface VAMI standard.
L'outil de durcissement et journalisation VCSA fait passer la posture de sécurité d'un serveur vCenter d'un modèle « Autorisation par défaut » à un modèle « Refus par défaut » (Zero Trust). Il utilise des contrôles Linux natifs pour créer un plan de gestion durci sans nécessiter de pare-feux matériels externes.
Il est conçu pour les environnements à haute sécurité où l'appliance vCenter est considérée comme un actif de niveau 0.
bash spécifique tapée par les administrateurs dans Syslog (par ex., cmd="rm -rf /").Ne continuez pas tant que les éléments suivants ne sont pas confirmés :
Ouvrez vcsa-hardening.sh dans un éditeur de texte. Vous devez modifier le bloc START CONFIGURATION.
Modifiez les tableaux pour définir qui est autorisé à entrer.
# QUI PEUT SE CONNECTER EN SSH (Port 22)
TRUSTED_SSH_IPS=( "192.168.10.50" ) # Admin PAW uniquement
# QUI PEUT ACCÉDER À L'INTERFACE WEB / API (Port 443)
# Doit inclure : Admins, Hôtes ESXi et Serveurs de sauvegarde
TRUSTED_WEB_IPS=(
"192.168.10.50" # Admin PAW
"10.20.0.0/24" # Sous-réseau de gestion ESXi
"10.50.1.100" # Serveur Veeam
)
Contrôle si le pare-feu suit la fréquence des connexions pour arrêter les attaques par force brute.
ENABLE_RATE_LIMITING=true (par défaut) : Bloque les IP tentant >6 connexions/minute.ENABLE_RATE_LIMITING=false : Désactivez cette option si vous utilisez des outils de sauvegarde automatisés « bruyants » (par ex., NetWorker) qui ouvrent de nombreux flux parallèles.Sélectionnez UNE des postures suivantes en activant les variables booléennes.
scp vcsa-hardening.sh root@<VCSA_IP>:/root/
ssh root@<VCSA_IP>
chmod +x vcsa-hardening.sh
Exécutez toujours cette étape en premier. Elle simule la logique sans appliquer les modifications.
./vcsa-hardening.sh --dry-run
./vcsa-hardening.sh
Le script effectuera une vérification de sécurité pour s'assurer que votre adresse IP SSH actuelle figure dans la liste de confiance avant d'appliquer les règles.
Une fois appliqué, le script relie les journaux au flux Syslog VMware standard.
Exécutez une commande et assurez-vous qu'elle apparaît dans les journaux avec le tag SHELL_COMMAND.
# 1. Exécutez une commande de test
echo "test_audit_logging"
# 2. Vérifiez les journaux (Le tag correct est SHELL_COMMAND)
journalctl -f | grep SHELL_COMMAND
Exemple de sortie : vcsa-01 logger: CMD user=root host=vcsa pwd=/root pid=1234 exit=0 cmd="echo test_audit_logging"
Essayez de vous connecter en SSH depuis une IP non autorisée (par ex., un hotspot mobile) et vérifiez les journaux :
journalctl -f | grep BLOCKED
Exemple de sortie : kernel: SSH_BLOCKED_NEW: IN=eth0 OUT= MAC=... SRC=1.2.3.4 ...
Si vous vous verrouillez par SSH, suivez ces étapes pour restaurer le VCSA par défaut :
root.shell pour entrer dans Bash.# Restauration manuelle
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
rm /etc/systemd/scripts/ip4save
Veuillez ouvrir un ticket (issue) ou soumettre une PR si vous avez des problèmes, des idées ou des retours.
Copyright 2026 Google LLC
Sous licence Apache License, Version 2.0 (la « Licence ») ; vous ne pouvez utiliser ce fichier qu'en conformité avec la Licence. Vous pouvez obtenir une copie de la Licence à l'adresse
https://www.apache.org/licenses/LICENSE-2.0
Sauf si requis par la loi applicable ou convenu par écrit, le logiciel distribué sous la Licence est distribué « EN L'ÉTAT », SANS GARANTIES NI CONDITIONS D'AUCUNE SORTE, expresses ou implicites. Voir la Licence pour les autorisations spécifiques aux droits et les limitations sous la Licence.
| Mode | Configuration | Description |
|---|
| Durcissement standard | Les deux false | (Par défaut) Liste blanche entrante stricte. Le trafic sortant est autorisé. Meilleur pour un usage général. |
| Blocage Internet | BLOCK_INTERNET_ACCESS=true | (Recommandé) Autorise le trafic interne (RFC1918) mais bloque tout accès Internet public. |
| Zero Trust | ENABLE_ZERO_TRUST_MODE=true | (Le plus strict) Bloque TOUT le trafic entrant/sortant non explicitement listé. Nécessite une configuration parfaite de ADDITIONAL_PRIVATE_RANGES. |