← Tutti i tutorial
Configurare una VPN WireGuard sul router di casa
🔧 Materiale necessario
- Router con DD-WRT/OpenWrt oppure Raspberry Pi / Ubuntu server
- App WireGuard su dispositivi client
- DDNS se IP dinamico (DuckDNS gratuito)
📋 Passi
- Installa WireGuard sul server: sudo apt install wireguard
- Genera coppia di chiavi server con wg genkey / wg pubkey
- Crea /etc/wireguard/wg0.conf con configurazione server
- Abilita IP forwarding: echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
- Avvia WireGuard: sudo systemctl enable --now wg-quick@wg0
- Genera coppia di chiavi per ogni client
- Aggiungi sezione [Peer] nel server per ogni client
- Crea file di configurazione client e installalo sull'app WireGuard
- 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.
