Guia
Como configurar uma VPN no Linux
O cliente do fornecedor a partir do próprio repositório, a alternativa de um ficheiro de configuração nas ferramentas do próprio sistema, o detalhe do DNS que provoca mais fugas no Linux do que em qualquer outro sistema e as verificações feitas a partir de um terminal. Escrito para Ubuntu 26.04 LTS e NetworkManager.
Antes de começar
Este guia não escolhe por si
Todos os passos abaixo são iguais, independentemente do fornecedor que utiliza, e é por isso que nenhum é nomeado aqui. Escolher é uma tarefa separada, feita no registo, onde a escolha é feita com base numa pontuação publicada, e não numa página de transferência.
Instale o cliente a partir do próprio repositório do fornecedor, usando a chave de assinatura das instruções do próprio fornecedor. Nunca cole num terminal um comando de instalação de uma só linha encontrado num fórum ou blog: o comando é executado como root e não faz ideia do que foi transferido. Um pacote de um repositório assinado pode ser verificado; um script encaminhado para uma shell não pode.
Instale o cliente
Existem duas vias no Linux, e ambas são legítimas. O próprio cliente do fornecedor é a primeira; traz um interruptor de emergência, um seletor de servidores e o tratamento do DNS incluídos. Um ficheiro de configuração nas ferramentas do próprio sistema é a segunda, e a secção no final deste guia explica o que se perde.
- Inicie sessão no site do fornecedor e abra as instruções para Linux na área da conta. Elas indicam o repositório, a chave e o pacote; siga apenas essas instruções.
- Adicione o repositório e a respetiva chave e instale o pacote com o gestor de pacotes da distribuição. A chave permite ao gestor de pacotes recusar um pacote adulterado, por isso um repositório adicionado sem ela é um repositório em que decidiu confiar.
- Ative o serviço do cliente para que seja iniciado no arranque. Um cliente é normalmente um daemon com permissões de root e uma aplicação de ambiente de trabalho que comunica com ele; o daemon controla o túnel, e um interruptor de emergência que deve funcionar desde o arranque precisa de estar ativo desde o arranque.
- Inicie sessão no cliente — a partir da aplicação ou da linha de comandos, usando o token fornecido pela área da conta — e atribua ao dispositivo um nome que não o identifique.
- Ainda não estabeleça a ligação. Abra primeiro as definições. Na maioria dos clientes, duas das três opções abaixo estão desativadas por predefinição.
As três definições que vale a pena verificar
Os menus dos clientes diferem, mas as definições não. Cada uma das três tem uma entrada no glossário, caso o nome não seja familiar.
O interruptor de emergência
Bloqueia todo o tráfego se o túnel cair, em vez de deixar silenciosamente a ligação voltar à rede normal. No Linux, é um conjunto de regras de firewall que o cliente escreve: tudo, exceto a interface do túnel e o próprio ponto de ligação do túnel, é bloqueado. Ative-o e escolha a modalidade sempre ativa ou de bloqueio, quando o cliente a disponibilizar, para que as regras vigorem desde o arranque e não apenas enquanto houver ligação. A finalidade do interruptor está explicada na página própria.
DNS dentro do túnel
As consultas de nomes podem sair da máquina fora do túnel mesmo quando todo o resto está dentro dele, e no Linux esta é a fuga mais frequente, porque o resolvedor é um componente dinâmico. No Ubuntu, esse componente é o systemd-resolved: cada interface tem os seus próprios resolvedores, e aquele que tem a rota predefinida para DNS responde a tudo o que não corresponda a um domínio mais específico. O cliente deve direcionar essa predefinição para o resolvedor do fornecedor através da interface do túnel. Defina o DNS do cliente como o do próprio fornecedor, e não como o de terceiros; uma segunda entidade que veja apenas as consultas é mais uma entidade. A forma como ocorre uma fuga está explicada na página sobre fugas de DNS.
O protocolo
Deixe a opção moderna predefinida, salvo se algo estiver avariado — a página dos protocolos indica quais são atuais e quais são antigos. Se o cliente disponibilizar uma opção mais antiga para resolver um problema de ligação, essa é uma troca que deve fazer conscientemente e depois desfazer: o registo assinala o protocolo mais fraco que um fornecedor ainda disponibiliza, e selecioná-lo manualmente é escolher essa marca para si.
Confirme que está realmente a funcionar
Estabeleça a ligação e depois verifique, em vez de presumir. Faça estas três verificações num terminal, por esta ordem:
- O seu endereço mudou. Use
curlnum serviço de “qual é o meu IP” ou abra um no navegador e confirme que o país corresponde à saída que escolheu.ip route getpara um endereço público deve indicar a interface do túnel, e não a do Wi-Fi ou Ethernet. - As consultas estão dentro do túnel.
resolvectl status: a interface do túnel deve ter o resolvedor do fornecedor e a rota predefinida de DNS; o resolvedor da interface física não deve ser utilizado. Um teste de fugas de DNS no navegador é uma segunda opinião, e qualquer resultado associado ao seu fornecedor de internet significa que a definição de DNS não foi aplicada. - O interruptor de emergência faz o que promete. Com uma transferência em curso, pare o serviço do cliente com
systemctl stopou desative a interface do túnel comip link set … down, para que o túnel caia sem pedir ao cliente que o faça. A transferência deve parar imediatamente. Se continuar, o interruptor é apenas decorativo.
A bateria de testes mais completa e o que cada teste pode ou não mostrar estão no guia próprio.
O que estas verificações comprovam
+O seu tráfego sai pelo servidor de saída, no país que selecionou
+O resolvedor que responde às suas consultas é o do fornecedor, dentro do túnel
+Quando o túnel cai, a ligação falha de forma segura em vez de voltar silenciosamente à rede normal
O que estas verificações não comprovam
−Não dizem nada sobre o que o fornecedor retém — essa é uma questão documental, respondida nas páginas sobre retenção
−Não o tornam anónimo: o seu navegador e os seus inícios de sessão não mudam; consulte aquilo de que uma VPN não o protege
−Um teste aprovado hoje não é uma promessa sobre a próxima atualização do pacote ou o próximo kernel
A via do ficheiro de configuração e o que se perde
A maioria dos fornecedores publica ficheiros de configuração para os dois protocolos comuns na área da conta. Um ficheiro WireGuard é importado para o NetworkManager a partir do editor de ligações ou com nmcli connection import, e funciona igualmente bem com wg-quick; um ficheiro OpenVPN é importado da mesma forma com o plugin OpenVPN. Obtém o túnel, o próprio controlo de interface do sistema e nada que o fornecedor não tenha incluído no ficheiro.
O que perde é o resto do cliente. Não há interruptor de emergência, a menos que escreva as regras de firewall; um ficheiro importado para o NetworkManager que caia simplesmente devolve o tráfego à rede normal. Não há tratamento de DNS além da linha DNS no ficheiro, e um ficheiro sem essa linha é a causa da fuga na primeira resposta de resolução de problemas. Não há seletor de servidores: cada ficheiro corresponde a uma saída, e mudar de saída significa usar outro ficheiro. Gere os ficheiros a partir da área da conta e mantenha-os privados: um ficheiro WireGuard contém a chave privada que é a sua identidade perante o fornecedor.
Esta via é adequada para um servidor, uma máquina sem interface gráfica ou uma distribuição que o cliente não suporte. Num portátil, prefira o cliente; o interruptor que ele traz é precisamente aquilo que um ficheiro de configuração não pode oferecer.
Quando não funciona
O túnel está ativo, mas o DNS continua a ser direcionado para o meu fornecedor de internet
A fuga clássica do Linux. Um ficheiro de configuração que não define DNS deixa o systemd-resolved a utilizar o resolvedor fornecido pela rede, fora do túnel. Execute resolvectl status: a interface do túnel deve listar o resolvedor do fornecedor e ter a rota predefinida para DNS, assinalada com um sinal de mais.
Adicione uma linha de DNS à configuração ou defina o DNS da ligação no NetworkManager e volte a estabelecer a ligação. O próprio cliente do fornecedor faz isto automaticamente, o que é uma das razões para preferi-lo.
Tudo deixa de funcionar quando o túnel cai, e isso é incómodo
É o interruptor de emergência a cumprir a sua função: um túnel interrompido resulta numa ligação inativa, em vez de numa passagem silenciosa para a rede normal. Restabeleça a ligação, em vez de desligar o interruptor.
Se cair frequentemente numa rede e raramente noutras, mude o protocolo uma vez e experimente uma saída mais próxima. Se nenhum protocolo funcionar nessa rede, a rede está a bloquear tráfego VPN, e este guia termina aqui.
O cliente pede sudo ou uma palavra-passe sempre que o utilizo
Criar uma interface de rede é uma operação privilegiada, e um cliente que não instale um serviço em segundo plano tem de pedir autorização sempre. A maioria instala um — um daemon executado como root e uma aplicação de ambiente de trabalho que comunica com ele — e o pedido repetido significa que o serviço não está em execução ou não está ativado.
Verifique-o com systemctl status e com o nome do serviço indicado nas instruções do fornecedor e ative-o para que seja iniciado no arranque.
A página de teste mostra endereços IPv6
O túnel transporta IPv4, mas a máquina continua a ter uma rota IPv6 fora dele, por isso tudo o que dá prioridade a IPv6 contorna a VPN. Os fornecedores que não encaminham IPv6 pelo túnel devem desativá-lo na interface; os melhores clientes fazem-no.
Se criou a ligação a partir de um ficheiro, desative o IPv6 na ligação no NetworkManager ou através de sysctl e teste novamente. Um túnel que deixa aberta uma segunda família de endereços é apenas metade de um túnel.
Os mesmos passos, outras máquinas
O resto das plataformas
Cada plataforma tem o seu próprio guia, em vez de um separador neste. Os passos divergem assim que o instalador abre, e uma página que responde a três plataformas ao mesmo tempo não responde bem a nenhuma delas.