Come configurare Wireguard VPN su Linux

Come configurare Wireguard VPN su Linux
Fotografia di un computer portatile con accanto un monitor da tavolo.

Wireguard è un potente demone di rete privata virtuale (VPN) open source che può essere eseguito sia su dispositivi desktop che mobili. Fornisce un’alternativa veloce e leggera alle soluzioni VPN tradizionali come IPsec e OpenVPN. Qui, ti mostriamo come installare Wireguard e creare una semplice configurazione VPN utilizzando tre macchine Linux.

Perché utilizzare Wireguard come soluzione VPN?

Uno dei maggiori punti di forza di Wireguard è che è un demone VPN veloce e leggero. A differenza delle soluzioni tradizionali, Wireguard non aggiunge molto overhead alla tua rete. Ciò si traduce in una latenza inferiore e un elevato throughput complessivo sui tuoi nodi.

Un terminale che mostra un test iperf3 tra due nodi Wireguard che mostrano un throughput elevato.

Un’altra caratteristica fondamentale di Wireguard è che è un modulo all’interno del kernel Linux. Ciò gli consente di funzionare senza occupare risorse di sistema aggiuntive dal computer, rendendolo una scelta ideale per l’implementazione su dispositivi SOC e di fascia bassa.

Un terminale che mostra Wireguard caricato sul kernel Linux.

Infine, Wireguard sfrutta anche i moderni standard crittografici e le pratiche di sviluppo. Ha inoltre avuto molteplici verifiche formali, che confermano la correttezza del codice di Wireguard, le garanzie di sicurezza e la capacità di resistere agli attacchi.

Ottenere Wireguard

Il primo passo per configurare Wireguard su Linux è scaricare i suoi strumenti principali dal repository della tua distribuzione. Questo ti consente di controllare il modulo kernel Wireguard integrato usando i comandi userspace.

Per installare gli strumenti principali in Ubuntu e Debian, eseguire il seguente comando:

In Fedora, puoi utilizzare il dnfgestore dei pacchetti:

Per Arch Linux, puoi eseguire pacmanper ottenere gli strumenti principali di Wireguard:

Conferma di aver installato correttamente gli strumenti Wireguard caricando la relativa schermata di aiuto:

Un terminale che mostra il menu di aiuto per lo strumento dello spazio utente Wireguard.

Impostazione del server Wireguard

Presupposto: questo articolo presuppone che tu stia installando il server Wireguard su un sistema Linux con un indirizzo IPv4 accessibile al pubblico. Le istruzioni funzioneranno comunque su un server dietro un NAT, ma non troveranno nodi al di fuori della sua subnet.

Con il toolkit Wireguard core sulle tue macchine Linux, ora puoi configurare il nodo server della tua VPN. Questo fungerà da gateway Internet per i tuoi nodi client nella rete.

Inizia andando alla directory di configurazione di Wireguard e imposta i permessi predefiniti su “solo root”:

Genera la chiave pubblica e privata per il tuo server Wireguard:

Crea il file di configurazione del tuo server utilizzando il tuo editor di testo preferito:

Incolla il seguente blocco di codice all’interno del file di configurazione del server:

Apri una nuova sessione di terminale, quindi stampa la chiave privata Wireguard del tuo server:

Copia la chiave privata del tuo server negli appunti.

Un terminale che mostra il processo di copia della chiave privata del server su Ubuntu.

Sostituisci il valore della PrivateKeyvariabile con la chiave presente negli appunti.

Un terminale che mostra la chiave privata del server nella configurazione Wireguard del server.

Trova l’interfaccia di rete che ha accesso a Internet utilizzando il ipcomando:

Un terminale che evidenzia il nome dell'interfaccia di rete con accesso a Internet.

Imposta il valore del -oflag su entrambe PostUple PostDownvariabili e sull’interfaccia con accesso a Internet, quindi salva il file di configurazione.

Un terminale che mostra il nome corretto del dispositivo nel file di configurazione del server Wireguard.

Apri il file “/etc/sysctl.conf” del server utilizzando il tuo editor di testo preferito:

Scorrere verso il basso fino alla riga che contiene net.ipv4.ip_forward=1, quindi rimuovere il segno cancelletto (#) davanti.

Un terminale che evidenzia la posizione dell'opzione di inoltro IPv4 in sysctl.conf.

Ricarica la nuova configurazione sysctl eseguendo: sudo sysctl -p.

Un terminale che mostra il processo di ricaricamento del file sysctl.conf.

Impostazione e connessione del client Wireguard

A questo punto, hai un server Wireguard correttamente configurato senza peer. Per utilizzarlo, devi configurare e connettere il tuo primo client Wireguard.

Accedi alla directory di configurazione Wireguard del tuo sistema client e imposta le autorizzazioni predefinite:

Genera la coppia di chiavi Wireguard del tuo client utilizzando il seguente comando:

Crea il file di configurazione Wireguard del client utilizzando il tuo editor di testo preferito:

Incolla il seguente blocco di codice all’interno del file di configurazione del tuo client:

Sostituisci la PrivateKeyvariabile con la chiave privata del tuo cliente.

Un terminale che evidenzia la chiave privata per il primo client Wireguard.

Apri la sessione terminale del tuo server Wireguard, quindi stampa la sua chiave pubblica:

Imposta il valore della PublicKeyvariabile sulla chiave pubblica del tuo server.

Un terminale che evidenzia la chiave pubblica del server Wireguard nel file di configurazione del secondo client.

Sostituisci la Endpointvariabile con l’indirizzo IP del tuo server Wireguard.

Un terminale che evidenzia l'indirizzo IP del server Wireguard.

Salva il tuo file di configurazione, quindi usa il wg-quickcomando per avviare il client Wireguard:

Un terminale che mostra il processo di avvio del demone client Wireguard.

Collegamento del server Wireguard al client

Vai alla sessione terminale del tuo server Wireguard, quindi apri il suo file di configurazione:

Incolla il seguente blocco di codice dopo la [Interface]sezione:

Imposta la PublicKeyvariabile sulla chiave pubblica del tuo client Wireguard.

Un terminale che mostra la posizione del blocco [Peer] ed evidenzia la chiave pubblica del client.

Salvare il file di configurazione, quindi eseguire il seguente comando per avviare il servizio Wireguard sul server:

Aggiungere un secondo client al server

Una caratteristica fondamentale di ogni servizio VPN è che può collegare più macchine da reti diverse. Questo è utile se hai computer in posizioni diverse o vuoi ospitare un server di gioco privato per i tuoi amici.

Per farlo in Wireguard, devi creare un file di configurazione per una nuova interfaccia VPN sul tuo server. Il modo più semplice per farlo è copiare la configurazione del tuo server attuale e dare alla copia un nuovo nome:

Apri il tuo nuovo file di configurazione utilizzando il tuo editor di testo preferito:

Imposta la ListenPortvariabile su 60102. In questo modo si eviteranno collisioni di porte tra le interfacce VPN wg0 e wg1.

Un terminale che evidenzia la variabile ListenPort modificata per la seconda interfaccia Wireguard.

Vai alla [Peer]sezione e cambia la AllowedIPsvariabile da “10.0.0.2/32” a “10.0.0.3/32”, quindi salva il tuo file di configurazione.

Un terminale che evidenzia la variabile AllowedIPs modificata per il secondo client Wireguard.

Configurazione del secondo client Wireguard

Accedi al tuo secondo computer, quindi prepara la directory di configurazione di Wireguard:

Genera una nuova coppia di chiavi Wireguard utilizzando il seguente comando:

Crea un nuovo file di configurazione utilizzando il tuo editor di testo preferito:

Incolla il seguente blocco di codice all’interno del tuo nuovo file di configurazione:

Imposta la PrivateKeyvariabile sulla chiave privata della seconda macchina, quindi modifica la PublicKeyvariabile sulla chiave pubblica del tuo server.

Un terminale che evidenzia la chiave privata del secondo client e la chiave pubblica del server Wireguard.

Sostituisci la variabile Endpoint con l’indirizzo IP del tuo server, seguito da “:60102.”

Un terminale che evidenzia l'indirizzo IP del server Wireguard nella configurazione del secondo client.

Salva il file di configurazione, quindi avvia il client Wireguard della seconda macchina:

Collegamento del secondo client al server Wireguard

Accedi nuovamente al tuo server Wireguard, quindi apri la configurazione dell’interfaccia VPN per il tuo secondo client:

Scorri verso il basso fino alla [Peer]sezione, quindi sostituisci la PublicKeyvariabile con la chiave pubblica del tuo secondo client.

Un terminale che evidenzia la chiave pubblica del secondo client all'interno del file di configurazione wg1 del server.

Salva il tuo file di configurazione, quindi avvia la seconda interfaccia VPN utilizzando il comando wg-quick:

Verifica che il primo e il secondo client Wireguard vengano visualizzati correttamente sul tuo server eseguendo wg.

Un terminale che mostra i due nodi client che comunicano con il server Wireguard.

Test della rete Wireguard

Con sia il server che i client sulla rete Wireguard, ora puoi testare la connettività e la latenza tra i tuoi nodi. Per farlo, assicurati di avere installato sul tuo sistema gli strumenti di diagnostica di rete:

In Fedora, è sufficiente eseguire l’installazione curlpoiché è già dotato di strumenti di rete pronti all’uso:

Per Arch Linux, puoi usare pacmanper installare gli strumenti di rete e curl:

Inizia tracciando il percorso di un pacchetto tra due client. Quanto segue mostrerà come un pacchetto IP passa da “10.0.0.2” a “10.0.0.3”:

Un terminale che mostra un comando traceroute riuscito tra due nodi Wireguard.

Controlla se uno dei tuoi nodi può accedere alla rete Internet pubblica eseguendo il ping di un indirizzo IP comune:

Un terminale che mostra la latenza dalla rete Wireguard a un sito esterno.

Infine, verifica che i tuoi nodi condividano lo stesso indirizzo IP pubblico con il tuo server Wireguard:

Un terminale che evidenzia l'indirizzo IP esterno simile su tre nodi Wireguard.

Imparare a configurare una rete Wireguard su Linux è il primo passo per esplorare l’affascinante mondo delle VPN. Fai un’immersione profonda e dai un’occhiata alle nostre scelte per i migliori provider VPN incentrati sulla sicurezza che puoi ottenere oggi.

Crediti immagine: Kari Shea tramite Unsplash e Wikimedia Commons . Tutte le modifiche e gli screenshot sono di Ramces Red.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *