Wireguard

Utilità di un Server Wireguard (VPN) installato in “casa”

Ci sono situazioni in cui esiste la necessità di collegarsi ad uno o più dispositivi “domestici” anche quando si è fuori casa. Un NAS o media server personale, controllare dispositivi di casa (Webcam, domotica semplice o dispositivi intelligenti, pannelli web). Il protocollo WireGuard ti permette di collegarti alla tua rete domestica in modo sicuro e protetto.

Il vantaggio principale è semplice: nessuna esposizione dei servizi su internet.

Prima di vedere la configurazione del sistema un breve cenno su Wireguard:

WireGuard è una soluzione moderna per le reti private virtuali (VPN), che si distingue per la sua semplicità e efficienza. Al cuore di WireGuard c’è un approccio rivoluzionario alla sicurezza e alla configurazione delle VPN, che lo rende un’alternativa interessante rispetto a soluzioni più consolidate come OpenVPN e IPSec.

Una nuova filosofia VPN

  1. Design minimalista: WireGuard si basa su un principio di minimalismo. Il suo codice sorgente comprende circa 4.000 righe, contro le decine o centinaia di migliaia di righe dei suoi concorrenti. Questa brevità non solo facilita le revisioni del codice per individuare vulnerabilità, ma contribuisce anche a una maggiore stabilità e a prestazioni superiori.
  2. Crittografia moderna: WireGuard utilizza algoritmi crittografici all’avanguardia, come Curve25519 per lo scambio di chiavi, ChaCha20 per la cifratura, Poly1305 per l’autenticazione dei messaggi, BLAKE2s per l’hashing e SipHash per la protezione dalle collisioni nelle tabelle hash. Questa scelta di algoritmi non solo garantisce un’elevata sicurezza ma anche un’ottima velocità e compatibilità con dispositivi a bassa potenza.
  3. Integrazione nel kernel: A differenza di altre VPN che operano nello spazio utente, WireGuard è stato progettato per essere integrato direttamente nel kernel di Linux, garantendo prestazioni superiori e una migliore gestione delle risorse. Questa integrazione nel kernel facilita una comunicazione più rapida e diretta tra i dispositivi, riducendo la latenza e aumentando la velocità di trasmissione dei dati.

Funzionamento di WireGuard

  1. Configurazione semplice: La configurazione di WireGuard si basa sul concetto di chiavi pubbliche e private, simile a SSH. Ogni client e server nella rete WireGuard genera la propria coppia di chiavi. La chiave pubblica viene condivisa con gli altri nodi, mentre la chiave privata rimane segreta. Questo semplifica notevolmente il processo di configurazione rispetto a VPN tradizionali, che spesso richiedono complessi scambi di certificati e configurazioni di sicurezza.

Cosa ci serve per creare il sistema:

  • Un dispositivo sempre acceso in casa
    (Raspberry Pi, mini PC, NAS o router compatibile)
  • Accesso al router
  • Smartphone Android
  • IP pubblico statico o associato ad un servizio di DNS dinamico (DDNS).

Installazione su Server

NOTA: Il sistema è ottimizzato per girare su Linux (anche e soprattutto per il fatto che Wireguard è di fatto un sistema intrinseco di Linux), significa che un PC linux è la condizione ottimale. Altrimenti i dispositivi citati sopra sono valide alternative. Windows non è propriamente adatto a fare da Server per configurazioni meno essenziali e necessità di installazione di applicativi esterni, è invece un buon client.

Su Debian/Ubuntu:

sudo apt update
sudo apt install wireguard

Creazione delle chiavi

Sul server:

wg genkey | tee privatekey | wg pubkey > publickey

Importante

  • privatekey → segreta (e non va mai condivisa e/o conservata in luogo sicuro)
  • publickey → da condividere (tutti i Server e Client condividono la stessa chiave pubblica)

Configurazione base del server

Crea il file:

sudo nano /etc/wireguard/wg0.conf

Inserisci:

[Interface]
Address = 10.0.0.1/24
PrivateKey = LA_TUA_PRIVATE_KEY
ListenPort = 51820

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Avvio del servizio

sudo wg-quick up wg0

Oppure avvio automatico:

sudo systemctl enable wg-quick@wg0

Router: passaggio fondamentale

Apri la porta:

  • Porta: 51820
  • Protocollo: UDP
  • IP: quello del server (es. 192.168.1.100)

Configurazione Android

  • Installa WireGuard dal Play Store
  • Crea un tunnel
Wireguard Home
Wireguard tunnel
  • Inserisci:
[Interface]
PrivateKey = CHIAVE_PRIVATA_ANDROID
Address = 10.0.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = CHIAVE_PUBBLICA_SERVER
Endpoint = TUO_IP_O_DDNS:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Collegare il client al server

Sul server:

[Peer]
PublicKey = CHIAVE_PUBBLICA_ANDROID
AllowedIPs = 10.0.0.2/32

Riavvia:

sudo wg-quick down wg0
sudo wg-quick up wg0

Test reale

Hai a casa:

  • un media server personale (Plex, Jellyfin con contenuti tuoi)
  • oppure un NAS

Fuori casa:

  • attivi WireGuard
  • apri l’indirizzo locale (es. 192.168.1.50)
  • accedi al dispositivo collegato e puoi gestire i contenuti come se fossi sotto il Wi-Fi di casa.

Installare ed usare WireGuard modi alternativi

Se tutta la parte precedente ti sembra troppo tecnica, ci sono alternative più semplici.

Opzione 1: Router con WireGuard integrato

Alcuni router (es. GL.iNet, Asus, MikroTik):

  • hanno WireGuard già incluso
  • configurazione via interfaccia web e relativo inserimento dati
  • niente terminale

Quindi è possibile:

  • attivare WireGuard
  • creare un client
  • scaricare il file di configurazione

Opzione 2: NAS (Synology / QNAP)

Molti NAS permettono:

  • installazione di WireGuard o VPN simili
  • gestione da pannello grafico
  • accesso remoto già integrato

È una delle soluzioni più comode se hai già un NAS.

Opzione 3: App con configurazione automatica (tipo PiVPN)

Se usi un Raspberry Pi:

  • installi PiVPN
  • segui la procedura guidata
  • lui configura WireGuard automaticamente

Comando:

curl -L https://install.pivpn.io | bash

Rispondi alle domande in confugurazione e hai finito.

In definitiva

WireGuard è il modo più pulito e semplice per accedere alla rete di casa da remoto in maniera sicura e protetta. Con questo sistema proteggo la connessione da eventuali interferenze o tentativi di lettura dei dati scambiati, un grande vantaggio soprattutto quando ci si trova in situazioni nelle quali la connessione viene fornita da un Wi -Fi pubblico e generalmente non protetto.

Posso accedere e monitorare i dispositivi di casa da remoto come se fossi davanti al dispositivo e gestire i dati con sicurezza.

(Fonte: androidayuda.com, articolo adattato e semplificato)

Views: 4