Fortificação automatizada de Zero Trust e auditoria forense para o VMware vCenter Server Appliance (VCSA)
Um script automatizado de fortalecimento para o VMware vCenter Server Appliance (VCSA), projetado para impor segmentação de rede Zero Trust e auditoria forense profunda.
Esta ferramenta foi projetada para mitigar riscos críticos associados a ameaças persistentes avançadas (APTs) e campanhas destrutivas que visam a infraestrutura de virtualização. Ao impor microssegmentação rigorosa nas Camadas 3/4 e registro forense de comandos, ela neutraliza vetores de ataque comuns, como movimento lateral, sinalização de Comando e Controle (C2) e adulteração anti-forense. Isso impede que adversários usem o VCSA como base para comprometer hipervisores ESXi subjacentes ou executar sabotagem generalizada da infraestrutura.
LEIA ANTES DA EXECUÇÃO: Esta ferramenta modifica a configuração iptables do VCSA no nível do kernel do SO, ignorando a interface VAMI padrão.
A Ferramenta de Fortalecimento e Registro de Logs do VCSA muda a postura de segurança de um servidor vCenter de um modelo "Permitir Padrão" para um modelo "Negar Padrão" (Zero Trust). Ela utiliza controles nativos do Linux para criar um plano de gerenciamento fortalecido sem exigir firewalls de hardware externos.
É projetada para ambientes de alta segurança onde o appliance vCenter é considerado um ativo Tier-0.
bash específico digitado por administradores no Syslog (por exemplo, cmd="rm -rf /").Não prossiga até que o seguinte seja confirmado:
Abra vcsa-hardening.sh em um editor de texto. Você deve modificar o bloco START CONFIGURATION.
Edite os arrays para definir quem é permitido ENTRAR.
# WHO CAN SSH IN (Port 22)
TRUSTED_SSH_IPS=( "192.168.10.50" ) # Admin PAW only
# WHO CAN ACCESS WEB UI / API (Port 443)
# Must include: Admins, ESXi Hosts, and Backup Servers
TRUSTED_WEB_IPS=(
"192.168.10.50" # Admin PAW
"10.20.0.0/24" # ESXi Management Subnet
"10.50.1.100" # Veeam Server
)
Controla se o firewall rastreia a frequência de conexões para interromper ataques de força bruta.
ENABLE_RATE_LIMITING=true (Padrão): Bloqueia IPs que tentam >6 conexões/minuto.ENABLE_RATE_LIMITING=false: Desative isso se estiver usando ferramentas de backup automatizadas "barulhentas" (ex.: NetWorker) que abrem muitos fluxos paralelos.Selecione UMA das seguintes posturas alternando as variáveis booleanas.
| Modo | Configuração | Descrição |
|---|---|---|
| Fortalecimento Padrão | Ambos false | (Padrão) Lista de permissão de entrada rigorosa. Tráfego de saída permitido. Melhor para uso geral. |
| Bloqueio de Internet | BLOCK_INTERNET_ACCESS=true | (Recomendado) Permite tráfego interno (RFC1918) mas bloqueia todo acesso público à Internet. |
| Zero Trust | ENABLE_ZERO_TRUST_MODE=true | (Mais Rigoroso) Descarta TODO o tráfego de entrada/saída não explicitamente listado. Requer configuração perfeita de ADDITIONAL_PRIVATE_RANGES. |
scp vcsa-hardening.sh root@<VCSA_IP>:/root/
ssh root@<VCSA_IP>
chmod +x vcsa-hardening.sh
Sempre execute isso primeiro. Ele simula a lógica sem aplicar alterações.
./vcsa-hardening.sh --dry-run
./vcsa-hardening.sh
O script realizará uma verificação de segurança para garantir que seu IP SSH atual esteja na lista de confiança antes de aplicar as regras.
Uma vez aplicado, o script interliga os logs ao fluxo Syslog padrão do VMware.
Execute um comando e garanta que ele apareça nos logs com a 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
Exemplo de saída: vcsa-01 logger: CMD user=root host=vcsa pwd=/root pid=1234 exit=0 cmd="echo test_audit_logging"
Tente SSH a partir de um IP não confiável (ex.: um hotspot móvel) e verifique os logs:
journalctl -f | grep BLOCKED
Exemplo de saída: kernel: SSH_BLOCKED_NEW: IN=eth0 OUT= MAC=... SRC=1.2.3.4 ...
Se você se bloquear via SSH, siga estas etapas para restaurar o VCSA ao padrão:
root.shell para entrar no Bash.# Manual rollback
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
rm /etc/systemd/scripts/ip4save
Por favor, abra uma issue ou envie um PR se tiver problemas, ideias ou comentários.
Copyright 2026 Google LLC
Licenciado sob a Licença Apache, Versão 2.0 (a "Licença"); você não pode usar este arquivo exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em
A menos que exigido por lei aplicável ou acordado por escrito, o software distribuído sob a Licença é distribuído em uma BASE "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para as permissões e limitações específicas que regem o uso da Licença.