WireGuard verso l’inclusione nel Kernel
WireGuard si propone come una soluzione VPN che sia più semplice da usare delle soluzioni tradizionali (come IPSec), ed al contempo – parecchio – più performante di quelle basate su SSL (in particolare OpenVPN). Ecco un video di presentazione, ma più sotto trovate una breve spiegazione del funzionamento (o almeno un tentativo ).
Come spesso accade, una parte di WireGuard è un modulo specifico del kernel per generare e gestire l’interfaccia di rete da esso creata. E, per poter dire di far parte di Linux, deve essere integrato nel codice del kernel mainstream (quello emanato da Linus Torvalds).
L’ultimo giorno di luglio è comparsa nella mailing list del Kernel una proposta di patch per integrare il codice di WireGuard nel kernel: si tratta del primo passo per rendere ufficiale il nuovo modulo. E, magari, poterlo integrare nel Kernel di dispositivi embedded (come i cellulari).
Da ora in poi ci sarà un processo di review del codice, che sebbene non sia molto (meno di 4000 linee), difficilmente potrà essere completato per il prossimo rilascio (4.19): più probabilmente potremo vedere il nuovo modulo parte del Kernel 5.0. In effetti, come novità non sarebbe male.
Non sappiamo se sarà in grado di soppiantare le soluzioni tradizionali o anche solo OpenVPN, ma di sicuro si tratta di un’alternativa molto interessante. E open!
Proviamo a spiegare brevemente il funzionamento di WireGuard.
Una VPN si basa sulla criptazione della comunicazione tra due dispositivi direttamente di pacchetti IP (talvolta di frame ethernet). OpenVPN usa certificati SSL per poter autenticare e criptare il traffico, IPSec una serie di regole più o meno stringenti per l’autenticazione ed una chiave simmetrica (e condivisa a priori) per la criptazione; WireGuard usa IP sorgente (o destinazione) ed una chiave asimmetrica per l’autenticazione, e tramite le chiavi negozia con l’altro host una chiave di criptazione simmetrica che ogni intervallo predefinito di tempo o dati scambiati viene rinegoziata: questa tecnica risulta molto efficacie per garantire una criptazione robusta.
I protocolli usati da WireGuard per la criptazione sono i più sicuri in circolazione, ampiamente testati (e usati anche da altri).
Ogni peer può lavorare sia come client (creando una connessione con un altro peer) che come server (accettando una connessione); WireGuard usa UDP, ed il server necessita solo di una porta aperta.
Ad ogni interfaccia di WireGuard sono associati 3 elementi:
- la chiave privata (con cui decriptare i pacchetti che arriveranno criptati con la chiave pubblica associata);
- la lista di associazioni delle chiavi pubbliche dei peer che possono creare una connessione con gli IP dei peer;
- l’indirizzo IP (o gli indirizzi, o le reti) raggiunto tramite quel peer;
Il modulo Kernel serve a gestire la criptazione del pacchetto prima dell’invio all’IP remoto, a creare le interfacce, ma anche a modificare la tabella di routing: associa l’interfaccia creata ad ogni IP o rete raggiungibile configurata.
I file di configurazione prodotti risultano compatti, e non molto complicati; le performance sono notevoli (almeno stando alla documentazione da loro prodotta).
Rispetto ai concorrenti designati, WireGuard ha due limiti:
- l’impossibilità di lavorare a livello 2 della pila ISO/OSI (il frame ethernet di cui sopra): talvolta più che mettere in comunicazione due reti (facendo routing a livello 3) è utile estenderne una (incapsulando i messaggi a livello 2) e permettere l’uso di protocolli che non dipendono da IP.
- non è possibile usare TCP: la scelta di UDP è dettata dalle performance, ma talvolta è impossibile usarlo (bloccato da un firewall di cui non è possibile cambiare configurazione) o è preferibile usare TCP per connessioni poco affidabili (sebbene per una VPN sia una cattiva idea usare TCP).
I due limiti però riguardano casi particolari, e chi dovesse avere queste necessità normalmente è in grado di usare e impostare le tecnologie alternative.
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
3 risposte
[…] ad una settimana dall’inizio del processo di inclusione nel kernel di WireGuard torniamo a parlarne, per due motivi molto diversi: la richiesta di inclusione di una nuova […]
[…] di un anno è passato da quando vi abbiamo spiegato WireGuard, e annunciato come il progetto volesse essere incluso nel Kernel mainstream, quello […]
[…] poco più di 3 anni WireGuard è passata da proposta per inclusione nel Kernel Linux a parte integrante di soluzioni firewall come pfSense, basate su […]