Tenha a sua própria VPN com o WireGuard
O WireGuard é um protocolo de VPN embutido no kernel do Linux que permite montar seu próprio servidor VPN com poucos comandos. Uma VPN própria envia seu tráfego para fora por um endereço IP que você controla. Mas ela não torna você anônimo: os sites que você visita veem o endereço IP do seu servidor.
Este artigo trata do que uma VPN própria faz bem e do que ela não resolve, dos passos da instalação manual e do caminho mais fácil, com uma interface web.
Para que serve uma VPN própria?
- Wi-Fi público: Em uma rede de café ou de hotel, seu tráfego viaja criptografado até o seu servidor.
- Um IP turco no exterior: Como o servidor fica em Istambul, você pode sair com um endereço IP turco enquanto está fora do país.
- Acesso à rede privada: Você alcança os dispositivos que conecta à mesma VPN, e os serviços do servidor, como se todos estivessem 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 continua a mesma.
O que ela não resolve?
- Ela não torna você anônimo. Os sites veem o endereço IP do seu servidor, e esse endereço está ligado à sua conta.
- Alguns serviços bloqueiam endereços IP de data centers. Não presuma que todo serviço vai abrir pela sua VPN.
- Ela não oferece saídas em vários países. Seu servidor fica em um só lugar, que na Seturack é Istambul.
- Ela não foi pensada para dar acesso à internet a outras pessoas. Se você fornece acesso à internet a terceiros pelo seu servidor, as obrigações da Lei nº 5651 são suas, conforme o contrato de serviço. Use a VPN principalmente para os seus próprios dispositivos e leia o contrato de serviço antes de dar acesso a outra pessoa.
Por que as pessoas gostam do WireGuard
- Ele entrou no kernel do Linux com a versão 5.6, então, nas distribuições atuais, você não precisa instalar um driver separado.
- Não há senhas. Cada ponta é reconhecida pelo próprio par de chaves privada e pública.
- A configuração é curta e cabe em um arquivo.
- Ele usa UDP. A porta que você mais vê em exemplos e 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 própria chave. O app do WireGuard em celulares e computadores faz isso, e você só precisa da chave pública dele.
- Escreva o
/etc/wireguard/wg0.confseguindo a tabela abaixo. - Ative o encaminhamento de IP:
echo 'net.ipv4.ip_forward=1' | tee /etc/sysctl.d/70-wireguard.confe depoissysctl --system - Abra a porta no firewall:
ufw allow 51820/udp - Inicie:
systemctl enable --now wg-quick@wg0
| Seçã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 ele escuta |
| [Interface] | PrivateKey = o conteúdo do arquivo privatekey | A chave privada do servidor. Nunca a compartilhe |
| [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. Troque eth0 pelo nome da interface do seu servidor, que o 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 você dá ao cliente |
Escreva primeiro as linhas de [Interface] no arquivo e depois as de [Peer]. Cada cliente recebe o próprio bloco [Peer].
Conectando um cliente
No cliente, coloque a sua própria chave privada, a linha Address = 10.8.0.2/24 e um endereço DNS na seção [Interface]. Na seçã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 você só quer acessar a rede VPN, escreva 10.8.0.0/24 no lugar. Para dispositivos atrás de NAT ou de um firewall, a documentação oficial sugere PersistentKeepalive = 25.
Execute wg show no servidor. Se o cliente se conectou, você vê uma linha "latest handshake".
Todo o tráfego ou só parte dele?
O valor de AllowedIPs no cliente decide qual tráfego entra no túnel. 0.0.0.0/0 envia todo o tráfego IPv4 por ele, mas não o IPv6. Se o seu dispositivo tem 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 ali, porque o servidor não transporta IPv6, então não pode vazar. Se você só quer acessar certas redes, por exemplo 10.8.0.0/24, escreva apenas essas. Isso se chama split tunneling, e o restante do tráfego sai pela rota normal. Para acessar uma rede remotamente, o split tunneling costuma bastar. O resto do seu tráfego não passa pelo túnel, então não fica mais lento.
O caminho mais fácil: wg-easy
O wg-easy é uma ferramenta que reúne o servidor WireGuard e o gerenciamento de clientes em uma interface web. Ele adiciona e remove clientes e mostra um QR code para celulares. Ele se instala com o Docker Compose e usa 51820/UDP. Recomenda-se um proxy reverso se você quiser abrir a tela de administração para a internet com segurança.
O servidor WireGuard pronto da Seturack usa o wg-easy e fica no ar em cerca de 4 minutos. No painel, você vê o endereço de administração e a senha. O túnel transporta apenas IPv4. Crie um cliente separado para cada dispositivo e, se perder um dispositivo, exclua apenas o cliente dele. Os passos de conexão estão no artigo de ajuda do WireGuard.
Configurando seus dispositivos
O WireGuard tem apps oficiais para Windows, macOS, Android e iOS. No Linux, o pacote basta. No celular, você adiciona a configuração com um QR code e, no computador, importando o arquivo de configuração. Você liga e desliga o túnel pelo app. Enquanto o túnel está ativo, seu tráfego de internet sai pelo seu servidor.
Quatro pequenas regras de segurança
- Deixe só o root ler o arquivo de configuração:
chmod 600 /etc/wireguard/wg0.conf - Nunca envie sua chave privada a ninguém. A chave pública é a única coisa que você compartilha.
- Exclua o bloco
[Peer]de um dispositivo que você perdeu ou que não quer mais permitir. - Mantenha o servidor atualizado. As atualizações do sistema operacional e dos aplicativos ficam por sua conta depois da instalação.
Como o tráfego da sua VPN passa pelo servidor, o volume de tráfego também importa. O tráfego ilimitado está incluído no preço da Seturack.
Se não conectar
Algumas redes bloqueiam o tráfego UDP. Tente outra rede, por exemplo os dados móveis do seu celular. Confira também se a porta 51820/UDP está aberta no firewall.
Se quiser começar pela instalação pronta, veja a página da VPN WireGuard.
Comentários0
Ainda não há comentários
Seja a primeira pessoa a compartilhar sua opinião.
Entre ou crie uma conta para deixar um comentário.