Guia

WireGuard: acesso privado à rede doméstica

Configure WireGuard com chaves individuais, rotas adequadas e DDNS. Mantenha os serviços de administração protegidos pela VPN.

Fonte verificada:

WireGuard permite aceder a serviços privados sem publicar as suas interfaces web. O ponto VPN deve ser acessível; DDNS não ultrapassa CGNAT.

Configuração

Use sub-redes diferentes para LAN e VPN e um par de chaves por dispositivo. AllowedIPs determina os destinos que passam pelo túnel. Um túnel completo exige também encaminhamento e, conforme a topologia, NAT.

Um servidor no router precisa de uma regra de entrada UDP. Um servidor atrás dele precisa de encaminhamento de porta. UDP 51820 é um exemplo, não um valor obrigatório.

Verificação

Confirme o handshake e o acesso real por dados móveis. Um teste TCP não testa WireGuard. Após uma mudança de IP, o cliente pode precisar de resolver novamente o nome DDNS. Mesmo páginas .app privadas exigem um certificado HTTPS válido.

Exemplos de configuração

Adapte valores, interfaces e portas. Os exemplos podem corresponder a versões diferentes: não execute alternativas incompatíveis em conjunto. Nunca publique tokens reais nem chaves privadas.

sudo -i                       # the rest of this guide runs as root
apt update
apt install wireguard iptables qrencode

# keys for the server and for your first device (a phone)
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
wg genkey | tee phone.key | wg pubkey > phone.pub
cat server.pub phone.pub
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
# let VPN clients reach the LAN, and hide them behind this machine's LAN address
PostUp = sysctl -w net.ipv4.ip_forward=1; iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

[Peer]
# phone
PublicKey = <contents of phone.pub>
AllowedIPs = 10.8.0.2/32
chmod 600 /etc/wireguard/wg0.conf
systemctl enable --now wg-quick@wg0
wg show
[Interface]
Address = 10.8.0.2/32
PrivateKey = <contents of phone.key>
# optional: use your Pi-hole or router for DNS while connected
DNS = 192.168.1.2

[Peer]
PublicKey = <contents of server.pub>
Endpoint = home.yourname.uk.app:51820
# only home traffic goes through the tunnel ("split tunnel")
AllowedIPs = 10.8.0.0/24, 192.168.1.0/24
PersistentKeepalive = 25
qrencode -t ansiutf8 < /etc/wireguard/phone.conf
shred -u /etc/wireguard/phone.key /etc/wireguard/phone.conf   # once scanned

Verificações finais

Teste com dados móveis fora do Wi-Fi. Confirme separadamente DNS, porta prevista, certificado HTTPS válido e autenticação. Mantenha painéis administrativos privados, instale atualizações e teste recuperar uma cópia. Verifique firewalls IPv6 e IPv4. Um teste de porta bem-sucedido não é uma auditoria de segurança.

Esta edição localizada resume o guia original. Os comandos mantêm a sintaxe original. Consulte a documentação do fabricante para a sua versão exata.

Fontes e documentação

Parceiros