-
Notifications
You must be signed in to change notification settings - Fork 0
security
Não versionar:
.vault_pass- chaves em
ssh/ - configs e chaves em
artifacts/clients/ - logs em
logs/ - overrides locais em
inventories/*.local.yml - overrides locais em
group_vars/*/zz-local.yml - vaults reais em
group_vars/*/vault.yml
group_vars/prod/vault.yml deve permanecer criptografado com Ansible Vault e
ignorado pelo Git.
Antes de publicar branch, tag ou release, rode:
make security-checkEssa checagem valida padrões ignorados pelo Git, permissões locais, Vault criptografado, host key SSH registrada e marcadores óbvios de segredos em arquivos publicáveis.
O Ansible deve validar a identidade SSH do VPS. O projeto usa
host_key_checking = True e ssh/known_hosts como arquivo local de host keys,
ignorado pelo Git.
make prepare registra a host key observada com ssh-keyscan antes de
validar o usuário técnico. Depois disso, deploy.sh falha se a host key do
host prod não existir em ssh/known_hosts.
A role gerencia UFW, libera 22/tcp antes de habilitar o firewall e libera
51820/udp para WireGuard. Alterações de porta SSH devem ser feitas primeiro
em wireguard_server_ssh_port e validadas com dry-run.
prepare.sh cria ou valida o usuário ansible sem senha utilizável, com
login apenas pela chave dedicada e sudo sem senha em /etc/sudoers.d/ansible.
O arquivo sudoers é validado com visudo antes e depois da instalação.
NOPASSWD:ALL é uma decisão pragmática para manter playbooks Ansible gerais
compatíveis com tarefas privilegiadas. O risco aceito é que a chave técnica
ganha poder administrativo no servidor. As mitigações atuais são chave SSH
dedicada, usuário humano separado, senha bloqueada para o usuário técnico,
host key checking obrigatório e arquivos locais ignorados/protegidos.
Cada arquivo artifacts/clients/*.conf contém a chave privada do respectivo
cliente e deve ser tratado como segredo local.
O perfil é full-tunnel dual-stack (AllowedIPs = 0.0.0.0/0, ::/0). IPv6 tenta
roteamento sem NAT66 primeiro. O fallback auto ativa NAT66 quando o prefixo
do túnel é ULA (fd00::/8) ou quando o servidor só tem IPv6 /128.