← Tutti i tutorial
Stefan Coders
📷 Foto di Stefan Coders su Pexels

Configurare una VPN WireGuard sul router di casa

Rete › VPN Avanzato ⏱ 60 min 👁 466 visualizzazioni di Matteo Ricci

🔧 Materiale necessario

  • Router con DD-WRT/OpenWrt oppure Raspberry Pi / Ubuntu server
  • App WireGuard su dispositivi client
  • DDNS se IP dinamico (DuckDNS gratuito)

📋 Passi

  1. Installa WireGuard sul server: sudo apt install wireguard
  2. Genera coppia di chiavi server con wg genkey / wg pubkey
  3. Crea /etc/wireguard/wg0.conf con configurazione server
  4. Abilita IP forwarding: echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
  5. Avvia WireGuard: sudo systemctl enable --now wg-quick@wg0
  6. Genera coppia di chiavi per ogni client
  7. Aggiungi sezione [Peer] nel server per ogni client
  8. Crea file di configurazione client e installalo sull'app WireGuard
  9. Configura port forwarding sul router: porta UDP 51820 → IP del server

Cos'è WireGuard

WireGuard è un protocollo VPN moderno: ~4000 righe di codice (vs 600.000 di OpenVPN), crittografia ChaCha20/Poly1305, velocità superiore, minore consumo batteria su mobile. È ora integrato nel kernel Linux.

Prerequisiti

  • Router con firmware DD-WRT/OpenWrt, oppure
  • Raspberry Pi / server Linux sempre acceso
  • IP pubblico (dinamico va bene con DDNS)

Installazione su Ubuntu/Debian

sudo apt install wireguard

# Genera coppia di chiavi server
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key

Configurazione server (/etc/wireguard/wg0.conf)

[Interface]
PrivateKey = CHIAVE_PRIVATA_SERVER
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = CHIAVE_PUBBLICA_CLIENT
AllowedIPs = 10.0.0.2/32

Client (telefono o PC)

Installa app WireGuard. Crea tunnel con la configurazione client (specchio del server con chiavi invertite). Scansiona il QR code generato con qrencode.