Seu cliente ainda se conecta no dia em que o chamado de desativação é aberto. Um perfil fica no aplicativo, ele negocia e o túnel sobe como se nada tivesse mudado. Esse é o momento de trabalhar na direção oposta àquela em que você construiu o serviço: comece pela lista de clientes, siga para fora até o listener, depois até o firewall e termine nas credenciais que sobrevivem a todos eles. Desligar a VM é o último passo, não o primeiro. Este guia pressupõe que você tenha acesso ao console do host e autoridade para editar registros de clientes e DNS.

Percorra a lista de clientes primeiro

Abra o que quer que distribua seus perfis e leia a lista antes de tocar no servidor. Cada entrada é um dispositivo que acredita ter acesso: celulares, notebooks, um roteador de filial, um contêiner que sincroniza todas as noites. Exporte essa lista para o chamado, porque, quando o host sumir, não há wg show para dizer quem estava conectado.

Classifique cada dispositivo em endpoint substituto, não é mais necessário ou desconhecido. A pilha dos desconhecidos é a que importa, pois são esses os perfis que alguém vai encontrar numa gaveta daqui a meses e tentar usar. Envie o aviso no mesmo canal que você usa para pedidos de acesso e coloque nele uma data para quando o endpoint antigo parar de responder.

Revogue a identidade, não apenas o arquivo

Duas ações diferentes recebem o nome de revogação. No WireGuard, um peer só é autorizado pela sua chave pública aparecendo numa seção peer com uma entrada AllowedIPs, então apagar o arquivo de configuração do notebook não muda nada no servidor. Remova o bloco do peer e reaplique o arquivo sem derrubar os peers que você está mantendo, conformewg(8) descreve:

wg show
wg set wg0 peer <CLIENT_PUBLIC_KEY> remove
wg syncconf wg0 <(wg-quick strip wg0)

wg syncconf é a parte que economiza uma janela de manutenção. Ele reconstrói a interface a partir do arquivo no lugar, então remover um peer não derruba o túnel que todos os outros usam. Se você está aposentando o host inteiro em vez de um peer, a ordem ainda importa, porque essas chaves podem ser confiadas em outro lugar.

Com uma configuração X.509, a etapa de revogação é o certificado, não o arquivo: openssl ca -revoke client.crt e depois openssl ca -gencrl -out crl.pem. Isso só tem efeito onde o verificador o lê, o que significaOpenVPN servidor com crl-verify configurado e recarregado depois. Se este gateway for o único consumidor dessa CA, a CRL deixa de importar no dia em que ele morre; se a mesma CA assina para um segundo gateway, um certificado que você nunca revogou continua funcionando lá.

As contas são o terceiro caso e o mais frequentemente ignorado. Quando o gateway autenticava via RADIUS, LDAP ou um provedor de identidade hospedado, a conta vive fora da VPN. Desative-a no diretório. Apagar uma estrofe de usuário no servidor deixa uma credencial válida que o endpoint substituto vai aceitar no momento em que apontar para o mesmo diretório.

Feche os listeners e os caminhos até eles

Pare o serviço de um modo que sobreviva a um reboot e depois confirme com uma listagem de sockets, não com o estado da unit. systemctl disable --now wg-quick@wg0 para a interface e remove as rotas e regras que o wg-quick adicionou; systemctl disable --now openvpn-server@server faz o mesmo para uma instância OpenVPN modelada por template. Acompanhe qualquer uma das duas com ss -lunp e ss -ltnp. Um resultado vazio para a porta antiga é a única prova que conta.

O que o wg-quick adicionou, o wg-quick remove. O que você adicionou à mão fica: uma regra NAT persistente, uma liberação no firewall, um encaminhamento de porta no roteador, uma regra de ingress num grupo de segurança da nuvem, um listener de balanceador de carga. Esses itens exigem remoção explícita, e o registro DNS também, ou seja, o A, o AAAA e qualquer CNAME apontando para o nome. Um nome que resolve para um host morto falha de modo diferente de um nome que não resolve, e essa diferença vai custar uma tarde a alguém.

A cópia que você esquece é o clone. Um snapshot ou uma VM restaurada de backup ainda guarda as chaves do host e a lista antiga de peers, e se qualquer coisa a trouxer de volta no mesmo endereço, os clientes se reconectam a um serviço que você acredita estar aposentado. Rotule o conjunto de backups como pertencente a um serviço desativado e mantenha-o fora dos caminhos de restauração automática.

Persiga o que ainda aponta para o endpoint antigo

Perfis em cache sobrevivem ao DNS. Uma configuração salva com endereço numérico continua discando depois que o registro sumiu, e um cliente sempre ligado tenta de novo a cada mudança de rede. Isso é ruído, não acesso, porque o listener está fechado, mas saber qual dos dois você está vendo decide como você responde ao chamado.

Depois, varra as dependências que ninguém classifica como VPN: verificações de uptime sondando a porta, jobs de backup que puxavam configurações do host, credenciais de automação usadas para enviar entradas de peers, contas de recuperação criadas só para este endpoint. Cada uma é um caminho de acesso com seu próprio tempo de vida e seu próprio dono, então cada uma recebe uma decisão em vez de uma exclusão silenciosa.

Verifique e depois anote

A aposentadoria termina quando um teste de fora falha do jeito que você espera. De uma rede que você não controla, conecte-se ao endereço e à porta antigos. Um resultado filtrado ou recusado é o caso de sucesso. No aplicativo do cliente, confirme que o perfil foi removido em vez de desligado e que nenhum perfil de gerenciamento o recria em silêncio.

Em seguida, registre o que você fez: endpoint, data, chaves e certificados revogados, contas desativadas, onde ficam os backups. Quem encontrar uma configuração antiga depois precisa responder se ela foi revogada ou apenas apagada, sem adivinhar, e uma tabela curta no chamado resolve isso.

Antes de fechar o chamado:

  • perfis de clientes removidos ou substituídos, dispositivos desconhecidos resolvidos
  • peers removidos e a configuração reaplicada, ou certificados revogados e a CRL publicada
  • contas do diretório desativadas, não apenas arquivos locais apagados
  • serviço desativado, nenhum listener sobrando na porta antiga
  • firewall, encaminhamento de porta, grupo de segurança e registros DNS removidos
  • backups rotulados, snapshot excluído dos caminhos de restauração
  • credenciais de monitoramento e automação aposentadas

Verifique o substituto em separado, a partir de um cliente que nunca teve o perfil antigo. Esse único teste diz se você aposentou um serviço ou apenas renomeou o problema.

Artigos relacionados