GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare WireGuard VPN su Linux

Se utilizzi più di un computer al lavoro oa casa, probabilmente vorrai avere un modo per accedere alla tua rete interna da ciascuno di essi. La buona notizia è che WireGuard VPN risolve questo problema.

In questo tutorial imparerai come configurare WireGuard VPN per eseguire una VPN in piena regola per connettere i tuoi computer, dandoti accesso sicuro.

Pronto a sporcarti le mani? È ora di tuffarsi!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri continuare, assicurati di avere quanto segue:

  • Un sistema Linux:questo tutorial utilizza Ubuntu 20.04 LTS, ma qualsiasi distribuzione Debian funzionerà per le demo.
  • Un computer locale:questa demo utilizza un client Windows 10 a 64 bit per connettersi al server WireGuard VPN. 💡 Se stai usando un server remoto, assicurati di avere l'autorizzazione per connetterti a quel server dal tuo computer locale.
  • Un utente non root con [sudo]() privilegi.

Installazione di WireGuard

Per impostazione predefinita, WireGuard non viene installato sulla tua distribuzione Ubuntu Linux. Quindi installerai prima WireGuard con il gestore di pacchetti APT.

Puoi anche scaricare e compilare WireGuard dal sorgente, ma una configurazione minima va bene per questa demo.

Esegui il seguente comando su update il database dei pacchetti del sistema.

sudo apt update -y

Ora, esegui il seguente comando per installare wireguard pacchetto. Il wireguard Il pacchetto fornisce un modulo kernel minimalista per il supporto di reti e protocolli privati ​​sicuri.

Il protocollo WireGuard prevede chiavi pubbliche, distribuite in uno schema di autenticazione simile a SSH, che è combinato con chiavi di crittografia simmetrica per stabilire connessioni private point-to-point o site-to-site.

sudo apt install wireguard -y

Dopo l'installazione, WireGuard viene eseguito come modulo del kernel. WireGuard viene eseguito nello spazio del kernel poiché WireGuard ha bisogno dell'accesso diretto alle interfacce di rete per stabilire una connessione VPN.

Generazione di una coppia di chiavi

Ora che WireGuard è installato, è il momento di generare una coppia di chiavi (una chiave pubblica e una chiave privata) eseguendo il wg genkey comando. La chiave pubblica è la tua "identità" WireGuard. Ogni persona che vuole connettersi alla tua VPN dovrà accedere a questa chiave pubblica. Al contrario, la chiave privata è ciò che usi per stabilire una connessione sicura.

Mantieni segreta la chiave privata. Chiunque acceda alla tua chiave privata può utilizzarla per connettersi alla tua VPN.

1. Esegui umask comando seguente per rendere leggibile la coppia di chiavi. Il umask comando specifica la maschera di creazione della modalità file e determina le autorizzazioni concesse ai file appena creati.

Utilizzerai un umasks valore di 077 in modo che tutti i file appena creati siano leggibili da tutti ma scrivibili solo dal loro proprietario. Questo passaggio garantisce che le tue chiavi WireGuard non siano modificabili in tutto il mondo.

umask 077

2. Quindi, esegui il comando seguente per generare (wg genkey ) una coppia di chiavi.

Il comando scrive la chiave privata nel /etc/wireguard/privatekey file e la chiave pubblica (wg pubkey | sudo tee ) al /etc/wireguard/publickey file.

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Dopo aver eseguito il comando, otterrai un valore sul tuo terminale, che è la tua chiave pubblica, come mostrato di seguito. L'output seguente conferma che hai generato correttamente la tua chiave pubblica.

Copia e salva questa chiave pubblica da qualche altra parte poiché i tuoi colleghi utilizzeranno questa chiave di pubblicazione per connettersi alla tua VPN WireGuard. La tua VPN WireGuard è come un tunnel tra peer.

3. Infine, esegui cat comando seguente per verificare di aver generato correttamente la tua chiave privata.

cat /etc/wireguard/privatekey

Annota la tua chiave privata, come nell'output di seguito, poiché la definirai nella configurazione del tuo server WireGuard VPN.

Configurazione del server VPN WireGuard

Ora che hai generato una coppia di chiavi per una connessione sicura al server, il passaggio successivo da compiere è la configurazione del server VPN WireGuard.

1. Crea un nuovo file chiamato wg0.conf con il tuo editor di testo preferito e compila il wg0.conf file con i seguenti contenuti. Assicurati di sostituire eth0 dopo POSTROUTING -o con la tua interfaccia di rete .

La denominazione dei file di configurazione dipende da te, ma per mantenere i nomi più facili da ricordare, scegli nomi come wg0, wg1 (wg sta per WireGuard) o tun0, tun1 (tun sta per tunneling) e così via.

2. Compila il wg0.conf file con i seguenti contenuti. Assicurati di sostituire eth0 dopo il POSTROUTING -o con la tua interfaccia di rete, salva le modifiche ed esci dall'editor.

Il wg0.conf contiene tutti i parametri di rete e di sicurezza della tua interfaccia WireGuard. Senza di essa, la tua interfaccia WireGuard e i tuoi colleghi non possono stabilire una connessione sicura.

# Defines your WireGuard interface name
[Interface]
# Sets the server's Public IP Address. This network is routed to your server's 
# eth0 interface. This is an IP range of private IPv4 that you will use 
# for your peers to connect to the broader internet using your VPN server. 
# Your peer can use any private IPs from 10.8.0.1 to 10.8.0.255.
Address = 10.0.0.1/24
# Set the value to "true" to save your server's config file automatically 
# after a connection is established or when you shut down your VPN server.
SaveConfig = true
# Sets the port that your VPN server listens on. This port should be open on your router
# so that your peers can access this port to connect to your VPN
ListenPort = 51820
# Replace  with your private key generated earlier.
PrivateKey = 
# Sets WireGuard to automatically accept new connections, which allows your peers 
# to access your server with their own public IP address. Your VPN server forwards 
# your peers’ connection through your private network to make it seem 
# like they are coming directly from the peers.
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Reverses the PostUp values when there's a disconnection 
# to make the network settings return to original state
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

3. Esegui il comando seguente per attivare wg0 interfaccia.

sudo wg-quick up wg0 

4. Infine, esegui il comando seguente per controllare il tuo wg0 stato dell'interfaccia.

sudo wg show wg0 

Puoi vedere il wg0 l'interfaccia è in esecuzione ed è in attesa di connessioni sulla porta 51820.

Configurazione della rete del server e del firewall

Dalla configurazione del server WireGuard, devi anche configurare la rete locale e il firewall. In questo modo avrai un maggiore controllo su chi può connettersi al tuo server.

Inoltrerai la porta UDP 51820 in modo che i tuoi colleghi possano connettersi al tuo server VPN, ma non puoi mantenere questa porta sempre aperta. Quindi configurerai la funzione NAT del tuo router per inoltrare il traffico sulla porta 51820 tramite il tuo server VPN.

1. Aprire etc/sysctl.conf file utilizzando il tuo editor preferito.

2. Cerca e decommenta il #net.ipv4.ip_forward=1 riga eliminando il "# simbolo ” per abilitare l'inoltro IP IPv4 e salvare le modifiche.

3. Quindi, esegui il seguente sysctl comando per applicare e rendere permanenti le modifiche (-p ).

sudo sysctl -p

Il tuo server WireGuard ora inoltrerà il traffico in entrata dai client dei tuoi peer WireGuard a Internet più ampio. Una volta inoltrati, WireGuard ritrasmette i dati ai peer tramite l'interfaccia ethernet VPN eth0.

Tuttavia, qualsiasi traffico proveniente da Internet più ampio e destinato al server WireGuard locale verrà eliminato dal firewall di rete Linux predefinito. Se stai utilizzando UFW come firewall, dovrai aggiungere alcune regole in più.

4. Esegui il comando seguente per consentire udp connessioni sulla porta 51820 si.

sudo ufw allow 51820/udp

5. Ora, esegui il comando seguente per controllare lo stato del tuo firewall. sudo ufw status command

sudo ufw status command

Il tuo firewall UFW dovrebbe ora assomigliare a quello qui sotto:

Configurazione di un client WireGuard

Il tuo server VPN WireGuard funziona perfettamente, quindi configurerai successivamente un client per testare la connessione con il tuo server VPN WireGuard. Il tuo client può essere Windows, MAC OS, Linux o BSD, ma questa demo utilizza un client Windows 10 a 64 bit.

Un client WireGuard è un dispositivo che si connette al server VPN con la propria chiave pubblica (ID) univoca. Il server WireGuard autentica il client e crittografa tutto il traffico tra se stesso e il client.

Nota che i seguenti passaggi devono essere eseguiti su tutti i dispositivi client WireGuard.

1. Passare alla pagina di download ufficiale di WireGuard per scaricare il programma di installazione del client WireGuard per il proprio sistema operativo ed eseguirlo. Questa demo utilizza il client per Windows.

2. Aprire l'applicazione client WireGuard, fare clic su Aggiungi tunnel (in basso a sinistra) —> Aggiungi tunnel vuoto per creare un tunnel vuoto. Verrà visualizzata una finestra popup per configurare la connessione di rete VPN (passaggio tre).

Configura la connessione di rete VPN con quanto segue:

  • Inserisci il nome della tua connessione di rete VPN, come mostrato di seguito. Ma per questa demo, il nome è impostato su ubuntu .
  • Lascia la PrivateKey generata di default , aggiungi una nuova riga sotto e digita Address =. Sostituisci con l'IP statico del tuo client WireGuard.
  • Aggiungi un nuovo [Peer] blocco e, di seguito, aggiungi una nuova PublicKey = linea. Sostituisci con la chiave pubblica del tuo server VPN che hai salvato nella sezione "Generazione di una coppia di chiavi" (passaggio due).
  • Aggiungi un nuovo endpoint =:51820 , dove 51820 è la porta che il tuo server WireGuard sta ascoltando. Sostituisci con l'IP pubblico del tuo server VPN.
  • Aggiungi un nuovo IP consentiti:0.0.0.0/0 linea. Questa linea consente al client WireGuard di accedere a tutti gli indirizzi IPv4 e IPv6 sulla rete.
  • Fai clic su Salva per salvare la configurazione della connessione di rete VPN.

4. Infine, torna al terminale del tuo server VPN ed esegui il comando seguente per aggiungere la chiave pubblica e l'indirizzo IP del client al server VPN.

Assicurati di sostituire quanto segue:

  • – con la chiave pubblica del tuo cliente.
  • 10.0.0.2 – con l'indirizzo IP del tuo dispositivo client in modo che il tuo server VPN possa comunicare con il tuo dispositivo client.sudo wg set wg0 peer allowed-ips 10.0.0.2

Verifica se il tunnel VPN funziona

A questo punto, hai già a disposizione un server e un client WireGuard funzionanti. Ora è il momento di testare la connessione tra di loro e vedere se il tunnel VPN funziona.

1. Apri l'applicazione client WireGuard e fai clic su ubuntu connessione (tunnel VPN) che hai creato.

2. Fare clic su Attiva pulsante per attivare il tunnel VPN.

3. Dopo aver attivato il tunnel VPN, vedrai lo Stato cambia in Attivo , come mostrato di seguito. Questo è tutto! Ora hai una connessione riuscita al tuo server VPN.

Conclusione

Durante questo tutorial, hai imparato come configurare un server VPN WireGuard. Hai anche configurato un client per verificare se la connessione tra il server VPN WireGuard e il client funziona creando un tunnel VPN.

A questo punto, puoi ora configurare più server e client WireGuard per una rete privata crittografata senza controllo centralizzato dell'autorità.

Come svilupperai questa nuova conoscenza? Forse prova a esplorare Ansible tramite la configurazione di una VPN WireGuard?


Linux
  1. Come configurare Wireguard VPN su CentOS 8

  2. Come configurare WireGuard VPN su Ubuntu 20.04

  3. Come configurare WireGuard VPN su Ubuntu (una guida passo passo)

  4. Come impostare le chiavi SSH

  5. Come configurare WireGuard VPN su CentOS 8

Come configurare WireGuard VPN su Debian 10

Come configurare il server VPN Pritunl su Rocky Linux 8

Come impostare o modificare il nome host su Linux

Come configurare la chiave pubblica e privata SSH in Linux

Come configurare le chiavi SSH su Debian 11 Linux

Come configurare WireGuard VPN su Debian 11