O que é preciso antes de hospedar o seu próprio servidor VPN?
O binário do servidor é a parte fácil. Resolva o endpoint, as identidades dos clientes, as faixas de endereços e o caminho de volta antes de instalar qualquer coisa.
Instalar o software do servidor é a parte mais curta de uma VPN auto-hospedada, e é o passo com que as pessoas começam. Se a implantação funciona depende de um cliente conseguir alcançar o endpoint, do que esse cliente pode alcançar depois e de como você volta a entrar quando o túnel é justamente o que quebrou. Resolva as três coisas antes de o gerenciador de pacotes rodar.
Duas delas são decisões de projeto e a terceira é um hábito operacional. As três são mais baratas de corrigir no papel do que durante uma queda.
Decida o que os clientes devem alcançar
Um servidor de acesso remoto precisa de uma rota para a rede privada que anuncia e de um caminho de volta para as respostas, o que o torna um roteador daquela rede e não apenas um ouvinte. Um servidor de saída para a internet precisa de encaminhamento mais um arranjo de endereçamento ou de tradução, e um handshake concluído não fornece nenhum dos dois. Escolha a tarefa antes da topologia, porque os dois projetos diferem em roteamento, regras de firewall e no que o cliente envia pelo túnel. Um servidor ao qual se pedem as duas coisas precisa dos dois conjuntos de regras e de uma divisão coerente da rota padrão do cliente.
Escolha faixas de túnel e de LAN que não possam colidir com redes que os seus clientes já usam, já que um notebook que já tem 192.168.1.0/24 continuará usando essa rota em vez de um túnel que distribui o mesmo prefixo. Verifique IPv4 e IPv6 separadamente, porque muita gente acerta o primeiro e nunca percebe o segundo. Onde o servidor está atrás de outro roteador, confirme o alcance de entrada a partir de fora em vez de confiar em um único encaminhamento de porta para descrever todas as camadas.
Identidades, chaves e um caminho de volta
Emita uma identidade separada por dispositivo onde o software permitir, de modo que um notebook perdido signifique revogar um único par em vez de reconstruir o servidor. As chaves privadas pertencem a um armazenamento protegido e nunca a um perfil colado em uma mensagem de chat. O caminho de recuperação é a parte que as pessoas pulam: acesso ao console, um console serial ou uma interface de gerenciamento fora de banda que não dependa do túnel. Sem uma dessas, uma regra de firewall ruim transforma uma pequena mudança em uma visita ao local.
Escreva o procedimento de remoção ao mesmo tempo que o de inscrição. Revogar um dispositivo é uma operação de que você vai precisar mais cedo ou mais tarde, e é mais fácil descrevê-la enquanto a configuração ainda está fresca.
Endpoint em casa ou alugado?
Três condições decidem entre hospedar em casa e alugar uma instância pequena. A primeira é se as conexões de entrada conseguem alcançar a sua rede, já que um uplink traduzido de nível de operadora ou uma rede de prédio restritiva eliminam a opção. A segunda é se a saída precisa aparecer em outro lugar que não a sua própria cidade, porque só um endpoint alugado muda isso. A terceira é o apetite por uma segunda relação de confiança, porque um provedor de hospedagem entra no modelo e pode observar o endpoint mesmo quando não consegue ler o tráfego.
Se a primeira condição for atendida e a segunda for irrelevante, hospedar em casa é o caminho mais curto. Um endpoint alugado compra localização e disponibilidade, não privacidade por si só.
Prove com um cliente e um reinício
Levante um cliente, confirme o recurso que ele deve alcançar e confirme que ele deixa de alcançar o que não deveria. Os comandos abaixo mostram o estado dos pares, as rotas que o servidor instalou e se o encaminhamento está ativado. Execute-os antes de inscrever qualquer outra pessoa.
wg show
sysctl net.ipv4.ip_forward
ip route get 10.8.0.2
ss -lunp | grep -E ':(51820|1194)'
Um par com um handshake recente está conectado, enquanto um par sem handshake nunca negociou, e essas são falhas diferentes. O encaminhamento desativado explica um túnel que sobe e não transporta nada, então verifique o servidor antes de culpar o cliente. Um ouvinte ausente significa que o serviço não iniciou com a configuração que você pensa. Depois reinicie o servidor de propósito e repita todo o conjunto, porque um túnel que só funciona até o reinício é um resultado comum de testar o caminho feliz.
Anote o endpoint, os pares, as faixas e o método de recuperação em uma única página. Essa página é o runbook que você vai ler no momento menos conveniente.