Monte a sua própria VPN com o WireGuard
O WireGuard é um protocolo VPN integrado no kernel do Linux que permite montar o seu próprio servidor VPN com poucos comandos. A sua própria VPN faz sair o seu tráfego por um endereço IP que controla. Não o torna anónimo, no entanto: os sites que visita veem o endereço IP do seu servidor.
Este artigo aborda para que serve a sua própria VPN e o que não resolve, os passos da instalação manual e o caminho mais fácil, com uma interface web.
Para que serve a sua própria VPN?
- Wi-Fi público: numa rede de café ou de hotel, o seu tráfego viaja cifrado até ao seu servidor.
- Um IP turco no estrangeiro: como o servidor está em Istambul, pode sair com um endereço IP turco quando está no estrangeiro.
- Acesso a rede privada: chega aos dispositivos que liga à mesma VPN, e aos serviços do servidor, como se estivessem todos na mesma rede local.
- Um endereço de saída fixo: mesmo que o IP da sua casa mude, a saída da sua VPN mantém-se.
O que não resolve?
- Não o torna anónimo. Os sites veem o endereço IP do seu servidor, e esse endereço está associado à sua conta.
- Alguns serviços bloqueiam endereços IP de centros de dados. Não presuma que todos os serviços abrem através da sua VPN.
- Não oferece saídas em muitos países. O seu servidor fica num só sítio, que na Seturack é Istambul.
- Não foi pensada para dar acesso à internet a outras pessoas. Se der acesso à internet a terceiros através do seu servidor, as obrigações previstas na Lei n.º 5651 são suas, segundo o contrato de serviço. Use a VPN sobretudo para os seus próprios dispositivos e leia o contrato de serviço antes de dar acesso a mais alguém.
Porque é que as pessoas gostam do WireGuard
- Entrou no kernel do Linux na versão 5.6, por isso nas distribuições atuais não precisa de instalar um controlador separado.
- Não há palavras-passe. Cada extremo é reconhecido pelo seu próprio par de chaves, privada e pública.
- A configuração é curta e cabe num único ficheiro.
- Usa UDP. A porta que mais vê nos exemplos e nas ferramentas é a 51820.
Instalação manual (Ubuntu, como root)
- Instale o pacote:
apt install wireguard - Gere o par de chaves do servidor:
umask 077 && wg genkey | tee privatekey | wg pubkey > publickey - Deixe cada dispositivo cliente gerar a sua própria chave. A aplicação WireGuard dos telemóveis e dos computadores faz isso, e só precisa da chave pública.
- Escreva
/etc/wireguard/wg0.confseguindo a tabela abaixo. - Ative o reencaminhamento de IP:
echo 'net.ipv4.ip_forward=1' | tee /etc/sysctl.d/70-wireguard.confe depoissysctl --system - Abra a porta na firewall:
ufw allow 51820/udp - Inicie-o:
systemctl enable --now wg-quick@wg0
| Secção | Linha | Para que serve |
|---|---|---|
| [Interface] | Address = 10.8.0.1/24 | O endereço do servidor dentro da rede VPN |
| [Interface] | ListenPort = 51820 | A porta UDP em que escuta |
| [Interface] | PrivateKey = o conteúdo do ficheiro privatekey | A chave privada do servidor. Nunca a partilhe |
| [Interface] | PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | Envia o tráfego dos clientes para a internet. Substitua eth0 pelo nome da interface do seu servidor, que ip route show default mostra |
| [Interface] | PostDown = as mesmas três regras, com -D em vez de -A | Remove as regras quando a VPN para |
| [Peer] | PublicKey = a chave pública do cliente | Identifica este cliente |
| [Peer] | AllowedIPs = 10.8.0.2/32 | O endereço VPN que atribui ao cliente |
Escreva primeiro no ficheiro as linhas de [Interface] e depois as de [Peer]. Cada cliente tem o seu próprio bloco [Peer].
Ligar um cliente
No cliente, coloque na secção [Interface] a sua própria chave privada, a linha Address = 10.8.0.2/24 e um endereço DNS. Na secção [Peer], coloque a chave pública do servidor, a linha Endpoint = SERVER_IP:51820 e a linha AllowedIPs = 0.0.0.0/0. O último valor envia todo o tráfego IPv4 pelo túnel. Se só quiser chegar à rede VPN, escreva 10.8.0.0/24. Para dispositivos atrás de NAT ou de uma firewall, a documentação oficial sugere PersistentKeepalive = 25.
Execute wg show no servidor. Se o cliente se tiver ligado, vê uma linha «latest handshake».
Todo o tráfego ou só parte?
O valor AllowedIPs no cliente decide que tráfego entra no túnel. 0.0.0.0/0 envia por ele todo o tráfego IPv4, mas não o IPv6. Se o seu dispositivo tiver IPv6, esse tráfego pode contornar o túnel. Com 0.0.0.0/0, ::/0, o IPv6 também entra no túnel e é descartado aí, porque o servidor não transporta IPv6, pelo que não pode vazar. Se só quiser chegar a certas redes, por exemplo 10.8.0.0/24, escreva apenas essas. Chama-se split tunneling, e o resto do tráfego sai pelo caminho normal. Para aceder a uma rede remotamente, o split tunneling costuma bastar. O resto do tráfego não passa pelo túnel, por isso não é atrasado.
O caminho mais fácil: wg-easy
O wg-easy é uma ferramenta que reúne o servidor WireGuard e a gestão de clientes numa interface web. Adiciona e remove clientes e mostra um código QR para telemóveis. Instala-se com o Docker Compose e usa 51820/UDP. Recomenda-se um proxy inverso se quiser abrir o ecrã de administração à internet de forma segura.
O servidor WireGuard pronto da Seturack usa o wg-easy e fica a funcionar em cerca de 4 minutos. No painel vê o endereço de administração e a palavra-passe. O túnel transporta apenas IPv4. Crie um cliente separado para cada dispositivo e, se perder um dispositivo, apaga só o respetivo cliente. Os passos de ligação estão no artigo de ajuda do WireGuard.
Configurar os seus dispositivos
O WireGuard tem aplicações oficiais para Windows, macOS, Android e iOS. No Linux, o pacote basta. No telemóvel, adiciona a configuração com um código QR e, no computador, importando o ficheiro de configuração. Liga e desliga o túnel a partir da aplicação. Enquanto o túnel está ativo, o seu tráfego de internet sai pelo seu servidor.
Quatro pequenas regras de segurança
- Deixe só o root ler o ficheiro de configuração:
chmod 600 /etc/wireguard/wg0.conf - Nunca envie a sua chave privada a ninguém. A chave pública é a única coisa que partilha.
- Apague o bloco
[Peer]de um dispositivo que perdeu ou que já não quer autorizar. - Mantenha o servidor atualizado. As atualizações do sistema operativo e das aplicações ficam ao seu cuidado depois da configuração.
Como o tráfego da sua VPN passa pelo servidor, o volume de tráfego também conta. O tráfego ilimitado está incluído no preço da Seturack.
Se não ligar
Algumas redes bloqueiam o tráfego UDP. Experimente outra rede, por exemplo os dados móveis do telemóvel. Verifique também se a porta 51820/UDP está aberta na firewall.
Se quiser começar com a instalação pronta, veja a página da VPN WireGuard.
Comentários0
Ainda não existem comentários
Seja a primeira pessoa a partilhar a sua opinião.
Inicie sessão ou crie uma conta para deixar um comentário.