Configurazione di una VPN con WireGuard (client)

Paradossalmente, la facilità d’uso è alta se si configura usando il terminale, mentre è molto bassa se si usa NetworkManager perché non ci sono indicazioni precise se alcuni parametri sono mancanti o errati, semplicemente il pulsante “Salva” viene disabilitato, inoltre nella versione KDE, il nome proposto automaticamente per la connessione viene usato anche per l’interfaccia, ma non è valido e quando si preme il pulsante salva, viene visualizzata una notifica di errore, la connessione non viene creata e si perdono tutti i dati inseriti.

La configurazione si basa sulla creazione di coppie di chiavi pubblica/privata e sull’impostazione di indirizzi IP statici e di altri parametri relativi alla connessione.

Installazione

L’installazione è identica sia per il client, sia per il server.
È necessario installare il programma a riga di comando «wg» (che verrà usato per creare la coppia di chiavi pubblica/privata) e il modulo del kernel «wireguard.ko» (che verrà usato per creare il device di rete).
In Debian/Min/Ubuntu entrambe le operazioni si fanno installando il metapacchetto «wireguard»:
sudo apt install wireguard
A partire da Debian 11, il driver del kernel è già installato quindi il comando precedente installa solamente wireguard-tools.

Generazione delle chiavi

La generazione delle chiavi è identica sia per il client, sia per il server.
In genere, i seguenti comandi dovranno essere eseguiti da root sul server e dall’utente normale sul client:
mkdir wireguard
cd wireguard
touch private.key
chmod 600 private.key
wg genkey >private.key
wg pubkey <private.key
>public.key
La chiave pubblica del client deve essere comunicata all’amministratore della VPN e deve essere inserita solo nella configurazione del server (ad esempio in /etc/wireguard/wg0.conf), mentre la chiave pubblica del server deve essere comunicata a tutti i client ed essere inserita nella configurazione di ognuno.
La chiave privata non deve essere comunicata a nessuno in nessun caso (appunto perché è privata) e deve essere inserita solo nella configurazione del sistema che l’ha generata (ad esempio, rispettivamente, in /etc/wireguard/wg0.conf sul server e in NetworkManager sul client).

Configurazione lato client (NetworkManager Gtk)

In questa versione di NetworkManager, il nome della connessione può essere diverso dal nome dell’interfaccia.

Nella scheda”WireGuard” è necessario compilare la casella “Chiave privata” e selezionare la casella “Aggiungi instradamenti nodo” (è una traduzione errata perché possono essere più nodi quindi serve il plurale “nodi”) che fa riferimento agli “IP consentiti” inseriti nell’elenco sottostante, poi premere il pulsante “Aggiungi” per aprire la finestra che permette di aggiungere i parametri del server.

Configurazione dei parametri specifici di Wireguard (Gtk)

I parametri del server devono essere forniti dall’amministratore del server e si inseriscono premendo il pulsante “Add” che apre la finestra seguente:

Configurazione dei parametri del server (Gtk)

Siccome si desidera che questo client riceva dati dal server o da altri client in qualsiasi momento, si inserisce un valore diverso da zero nella casella “Keepalive persistente” (il valore consigliato nel suggerimento della casella è 25) e si inserisce un indirizzo /24 nella casella “IP consentiti”, in alternativa si possono inserire gli indirizzi esatti con cui si desidera comunicare (questa casella serve per aggiornare automaticamente la tabella di routing).

La scheda “Impostazioni IPv4” permette di aggiungere i parametri del client, forniti dall’amministratore della VPN.

Configurazione dei parametri IPv4 (Gtk)
Modifica rotte IPv4 (Gtk)

Si ripete una configurazione simile per IPv6:

Configurazione dei parametri IPv6 (Gtk)
Modifica rotte IPv6 (Gtk)

La configurazione è terminata per cui si può premere il pulsante “Salva” e attivare la connessione tramite l’applet di NetworkManager:

Applet di NetworkManager (Gtk)

Configurazione lato client (NetworkManager KDE)

In questa versione di NetworkManager, il nome della connessione viene usato anche come nome dell’interfaccia, quindi deve essere wg0 o simile, non può contenere spazi.

È necessario compilare la casella “Chiave privata” e selezionare la casella “Instradamento automatico controparti”:

Configurazione dei parametri specifici di Wireguard (KDE)

Premere il pulsante “Controparti…” per inserire i parametri del server.

I parametri del server devono essere forniti dall’amministratore del server e si inseriscono nella finestra seguente:

Configurazione dei parametri del server (KDE)

Anche in questo caso, se si desidera che questo client riceva dati dal server o da altri client in qualsiasi momento, si inserisce il valore 25 nella casella “Keepalive persistente”.

Configurazione dei parametri IPv4 (KDE)

Questa VPN deve essere usata solo per l’accesso remoto a una rete privata, quindi se si desidera continuare a navigare su Internet quando questa VPN è attiva, è necessario selezionare la casella “Utilizza solo per le risorse su questa connessione”:

Modifica rotte IPv4 (KDE)

Si ripete una configurazione simile per IPv6:

Configurazione dei parametri IPv6 (KDE)
Modifica rotte IPv6 (KDE)

Da questo momento, la connessione può essere attivata tramite l’icona dell’applet NetworkManager che si trova insieme ad altre icone nel vassoio di sistema vicino all’orologio.

La configurazione del server è spiegata in un articolo separato.

© CC-BY-SA Gruppo Utenti Linux Livorno