Depois do script de configuração, alguém tem de ser dono do servidor VPN
O script pode construir o servidor, mas não pode assumir a política de acesso, o caminho de atualização ou a reversão. Defina a entrega antes de o executar.
Dois trabalhos diferentes são vendidos como um: transformar uma máquina num servidor VPN e acrescentar um cliente VPN a um portátil que deve juntar-se à porta de entrada de outra pessoa. O script de configuração responde ao primeiro e não pode responder ao segundo, diga o que disser o seu README. Tome o projeto setup-ipsec-vpn como exemplo concreto: constrói um servidor IPsec/L2TP, Cisco IPsec ou IKEv2 num anfitrião Linux suportado com Libreswan e xl2tpd. Isso é um contrato de implementação para um servidor, não uma receita geral para qualquer máquina. Decida que trabalho tem antes de o script correr, porque tudo o que vem depois diz respeito ao servidor.
Seja honesto quanto ao anfitrião
Uma máquina que também termina outra coisa, ou cuja firewall é gerida por um plano de controlo na nuvem em vez do sistema operativo, é uma instalação diferente de uma máquina virtual limpa. Anote o protocolo que ativa e a versão que usa, e depois verifique ambos contra a lista de suporte do projeto, não contra uma publicação de blog do ano passado.
Ativar o serviço não abre o caminho até ele. Para IPsec, a rede à frente do anfitrião tem de admitir UDP 500 e 4500 e, conforme a implementação, o próprio protocolo ESP. Um script que termina com sucesso atrás de um grupo de segurança que descarta o protocolo 50 produziu um servidor a que ninguém chega, e nada na saída do instalador o dirá.
O que o instalador assume de facto
Espere um ficheiro de configuração e de segredos IPsec, uma configuração do daemon L2TP, opções PPP e unidades systemd que agora são donas dessas portas. O README do projeto indica que os ficheiros de configuração existentes são copiados antes das alterações, o que é útil e não é o mesmo que uma cópia de segurança do anfitrião. Decida que componentes serão atualizados pelos pacotes da distribuição e quais ao voltar a executar ou a reescrever o script, porque são duas vias de manutenção com modos de falha diferentes.
Fixe a revisão que aprovou. Um URL de descarregamento que serve o ramo predefinido atual pode devolver conteúdo diferente no mês seguinte, por isso registe o commit ou a versão que executou e guarde uma cópia. Esse único hábito transforma um estado não atribuível em algo sobre o qual uma segunda pessoa pode pensar às duas da manhã.
O que o script não lhe pode dar
A automatização produz uma instalação funcional e para aí. Não decide que recursos privados o túnel deve alcançar, o que é uma questão de política de acesso sobre a qual a firewall do anfitrião e a rede acima têm opinião. Não decide quem recebe credenciais, como são entregues nem como o acesso de uma pessoa é removido quando sai. E não decide como a máquina é recuperada após uma atualização defeituosa, que é a parte normalmente descoberta no pior momento possível.
Os perfis de cliente e os segredos mostrados são material de acesso, não registos de instalação. Um perfil gerado colado num canal partilhado é uma conta, e o mesmo padrão aplica-se a capturas de ecrã do resumo da configuração. Mantenha um inventário protegido do estado de identidade necessário para restaurar o serviço e anote quais dessas credenciais foram revogadas desde então.
O primeiro cliente é o teste de aceitação
Aceite a implementação a partir de um cliente autorizado, com o protocolo que realmente ativou. Verifique se o nome privado resolve, se o caminho de retorno funciona, se uma reconexão se comporta corretamente e se um destino fora do conjunto permitido é recusado. Um início de sessão bem-sucedido a partir de outra aplicação cliente não é prova quanto à que entregou.
Se a combinação que pretende já não é suportada, escolha uma via mantida antes da instalação. Reanimar uma versão antiga, enfraquecer a autenticação ou voltar a executar um script sem explicação são adiamentos, não planos de manutenção, e cada um dificulta a entrega.
Escreva a página de entrega
Mantenha-a curta: o servidor, a revisão que o construiu, as portas de que precisa, os componentes e os seus responsáveis de atualização, os recursos permitidos, o caminho das credenciais e o procedimento de recuperação. Acrescente a via de consola ou fora de banda que usará quando uma alteração ao túnel foi o que quebrou o acesso. Então a pessoa seguinte herda um serviço em vez de um comando que teme executar duas vezes.
Reveja essa página quando o anfitrião mudar, e não apenas quando algo se quebrar. Um documento de entrega que nunca é lido é um documento que deixou silenciosamente de ser verdadeiro.