Se avete bisogno di collegarvi a distanza con la rete dell’ufficio o di casa, in modo da utilizzare risorse accessibili soltanto all’interno della LAN, le VPN (Virtual Private Network) rappresentano un’eccellente soluzione. WireGuard è un protocollo VPN moderno che sta guadagnando popolarità grazie alla sua semplicità, efficienza e sicurezza. Utilizza infatti la crittografia a chiave pubblica per stabilire connessioni sicure. Allo stesso tempo, dopo aver correttamente configurato il server WireGuard, la connessione dei client e la loro gestione è semplice e immediata.
Come funziona WireGuard
Esistono molteplici protocolli VPN: alcuni di essi sono sicuri, altri non lo sono (e infatti il loro utilizzo è ormai caldamente sconsigliato). La scelta del protocollo VPN incide anche sulle prestazioni: abbiamo visto come i trasferimenti dati posti in essere utilizzando connessioni OpenVPN lascino spesso a desiderare in termini di larghezza di banda effettivamente disponibile.
WireGuard è un protocollo che coniuga sicurezza, prestazioni e semplicità d’uso. Per ogni dispositivo che deve collegarsi con il server VPN, si genera una coppia di chiavi crittografiche: una chiave privata è mantenuta segreta sul dispositivo; la chiave pubblica può essere invece condivisa con altri soggetti.
Quando due dispositivi vogliono comunicare usando WireGuard, utilizzano le rispettive chiavi pubbliche per crittografare i dati, che possono essere decifrati solo con la corrispondente chiave privata. È “il sale” della crittografia asimmetrica.
Il protocollo WireGuard è progettato per essere stateless: significa che non mantiene informazioni sulla connessione attiva. Questo schema di funzionamento offre diversi vantaggi: maggiore efficienza e velocità, migliore gestione delle interruzioni di rete, facilità di implementazione e manutenzione.
Dopo aver ottenuto il benestare di Linus Torvalds, WireGuard può vantare anche l’integrazione a livello di kernel Linux: ciò assicura prestazioni ottimizzate, maggiore sicurezza e una minore complessità del codice.
Vantaggi di WireGuard
- Velocità: Grazie al suo design leggero e all’implementazione efficiente, WireGuard offre prestazioni superiori rispetto a molti altri protocolli VPN.
- Semplicità: Il codice base di WireGuard è molto più compatto rispetto ad altri protocolli VPN, con circa 4.000 righe di codice contro le centinaia di migliaia di OpenVPN e IPsec.
- Sicurezza: WireGuard utilizza crittografia moderna e robusta per impostazione predefinita, riducendo il rischio di configurazioni errate.
- Affidabilità: Il design stateless di WireGuard lo rende più resistente alle interruzioni di rete e ai cambi di indirizzo IP (la connessione remota non viene persa).
- Facilità d’uso: La configurazione di WireGuard è semplice e diretta, richiedendo solo lo scambio di chiavi pubbliche tra i dispositivi.
- Basso consumo energetico: L’efficienza di WireGuard si traduce in un minor consumo di batteria sui dispositivi mobili.
- Auditing semplificato: Il codice compatto di WireGuard facilita l’analisi di sicurezza e la ricerca di vulnerabilità.
- Supporto multipiattaforma: I componenti client e server di WireGuard sono disponibili per GNU/Linux, Windows, macOS, Android, iOS e altri sistemi operativi.
Il miglior client WireGuard per Android: WG Tunnel
Quando ci si trova lontani da casa o dall’ufficio, capita spesso di sentire l’esigenza di collegarsi con la propria rete locale, ad esempio per accedere al sistema di videosorveglianza, gestire un impianto d’allarme, accedere alle risorse condivise con la possibilità di recuperare e consultare documenti importanti.
Supponendo di aver già installato e correttamente configurato un server WireGuard (ne parliamo più avanti), abbiamo voluto provare un client alternativo che offre una serie di funzionalità utilissime, assenti nei client ufficiali.
WG Tunnel è un’app Android gratuita, scaricabile dal Play Store, che non solo gestisce connessioni WireGuard multiple ma attiva automaticamente la VPN in base al collegamento dati in uso.
Accedendo alle sue impostazioni (icona Settings), si può ad esempio impostare WG Tunnel affinché attivi la connessione WireGuard non appena lo smartphone o il tablet si collegano con una rete WiFi sconosciuta oppure non appena si passa a utilizzare la connessione dati dell’operatore di telefonia mobile.
Impostare WG Tunnel in maniera tale che la connessione WireGuard sia stabilita automaticamente all’attivazione di una WiFi sconosciuta è una buona idea. Si evita infatti che eventuale traffico non crittografato possa essere intercettato da parte di altri utenti.
La funzione è attivabile agendo sull’opzione Tunnel on untrusted WiFi quindi specificando l’elenco delle reti WiFi fidate (SSID). Per queste ultime, WG Guard non attiverà la connessione VPN.
Regolare i permessi e le impostazioni energetiche
Affinché WG Tunnel riesca a rilevare il nome della connessione WiFi oppure se l’utente stesse servendosi della connessione dati dell’operatore di telefonia mobile (opzione Tunnel on mobile data), è indispensabile accedere alle impostazioni dell’app.
Agendo sul menu App di Android, è necessario cercare l’app WG Tunnel, portarsi nelle impostazioni avanzate e disattivare qualunque forma di risparmio energetico. Inoltre, si deve accedere alla sezione Permessi app e consentire la Geolocalizzazione. Solamente in questo modo, infatti, WG Tunnel può restare in esecuzione in background e attivare/disattivare la VPN WireGuard sulla base della tipologia di connessione in uso.
Configurare il server VPN WireGuard
Il miglior modo per collegarsi da remoto alla propria rete locale, aziendale o di casa, è scegliere un router dotato del supporto per la funzionalità server VPN WireGuard.
Di seguito presentiamo l’interfaccia dei router ASUS più moderni. Tuttavia, i passaggi da seguire sono molto simili nel caso dei prodotti di altri fornitori.
Nel caso dei router ASUS, basta accedere al pannello di amministrazione del dispositivo da browser Web, scegliere VPN nella colonna di sinistra quindi cliccare su WireGuard VPN.
Il campo Tunnel IPv4 and/or IPv6 Address permette di specificare l’indirizzo IP (IPv4 e/o IPv6) che il router assegna al server WireGuard. Lasciando attiva l’opzione Accesso Intranet, i client collegati al server VPN potranno non soltanto navigare su Internet con l’IP pubblico assegnato al router ma anche avere visibilità di tutti i dispositivi connessi in rete locale, router compreso.
Con un clic su “+” a destra di Client VPN, si deve assegnare un nome a ciascun client che si collegherà da remoto tramite il protocollo WireGuard e il server appena abilitato.
Cliccando su Applica, dopo qualche istante di attesa, il router mostra un codice QR da acquisire sul client WireGuard, ad esempio con l’applicazione WG Tunnel presentata in precedenza.
Importazione della configurazione WireGuard sul client
Il modo più semplice per importare la configurazione WireGuard sul ciascun client è avvalersi del codice QR. Nel caso di WG Tunnel, basta toccare l’icona Tunnels in basso a sinistra nell’interfaccia dell’applicazione, scegliere “+” quindi la voce WireGuard e infine Add from QR code.
A seconda di com’è configurato il router sul quale è in esecuzione il server VPN WireGuard, la configurazione potrebbe non essere corretta. Il nostro consiglio è quello di tenere premuto sul profilo VPN appena aggiunto in WG Tunnel quindi toccare l’icona dell’ingranaggio. Infine, si deve toccare l’icona della matita in basso a destra e ancora sulla matita accanto a WireGuard.
Verifica dei parametri di connessione
Toccando il campo Name, si deve assegnare il nome alla connessione VPN (ad esempio “Casa” oppure “Ufficio”) quindi scorrere fino in basso. Nel riquadro Peer, in corrispondenza del campo Endpoint non deve essere visualizzato un IP privato. L’indirizzo IP in figura non va bene: 192.168.0.100 è un IP privato quindi la connessione non avverrà mai quando si è lontani da casa o dall’ufficio oppure quando si utilizzasse il collegamento dati dell’operatore mobile.
Affinché la connessione VPN venga correttamente stabilita, è necessario sostituire l’indirizzo IP privato con quello pubblico assegnato al router. Per conoscere l’indirizzo IP pubblico, basta visitare questa pagina di IPify. Ovviamente, l’indirizzo IP pubblico assegnato al router dovrebbe essere statico. Se il provider assegnasse un indirizzo dinamico, è possibile avvalersi di un servizio DDNS (Dynamic DNS) e digitare l’indirizzo mnemonico ottenuto nel campo Endpoint di WG Tunnel (lasciando inalterato il riferimento al numero di porta 51820).
Il servizio DDNS è configurabile accedendo all’omonima sezione nel pannello di amministrazione del router.
Alcuni provider di telecomunicazioni usano speciali configurazioni basate su CGNAT e MAP-T per condividere uno stesso IP pubblico tra più abbonati. In questi casi, è necessario contattare l’operatore per richiedere l’assegnazione di un IP statico o quanto meno di un indirizzo IP dedicato.
Dopo aver effettuato la modifica nel campo Endpoint, si deve toccare il pulsante in basso a destra. Agendo sull'”interruttore” a destra del nome del profilo VPN appena importato, la connessione sarà VPN immediatamente stabilita.
Come verificare il funzionamento della connessione VPN
Una volta stabilito il collegamento con il server VPN WireGuard remoto, si può aprire il browser Web e iniziare a navigare. Visitando la pagina di IPify presentata in precedenza, si può verificare che l’indirizzo IP pubblico col quale ci si presenta – da terminale mobile – sui siti è proprio quello del router installato a casa, in ufficio o in azienda.
È possibile anche effettuare uno speed test per verificare la velocità della connessione dopo l’attivazione del collegamento VPN.
Quando il client WireGuard è attivo e la connessione con il server VPN abilitata, tutti i dispositivi collegati alla rete locale risulteranno accessibili da remoto. Esattamente come se si fosse connessi in LAN.
Note finali
La procedura di configurazione è del tutto simile nel caso dei client WireGuard per Windows, Linux, macOS, iOS e iPadOS. Sui dispositivi sprovvisti di fotocamera, è sufficiente esportare la configurazione dal router sotto forma di file di testo quindi importarla nell’applicazione WireGuard.
Inoltre, per rafforzare la sicurezza della connessione, è eventualmente possibile impostare lato server anche una Pre-shared Key. Si tratta di una “parola chiave” che tutti i client WireGuard devono conoscere per stabilire il collegamento (il router di solito la inserisce automaticamente nel file di configurazione WireGuard).
WireGuard consente di realizzare molto semplicemente anche connessioni site-to-site. Sono collegamenti che mettono in comunicazione diretta due o più reti locali (LAN) situate in posizioni geografiche diverse. In questo modo i dispositivi su una rete possono comunicare con i dispositivi sull’altra rete come se si trovassero fisicamente sulla stessa rete locale. Questo tipo di configurazione è utile per aziende con uffici in diverse sedi che desiderano interconnettere le loro reti private in modo sicuro.
Credit immagine in apertura: iStock.com – Viktor Gl