WireGuard è un popolare protocollo di comunicazione open source punto-punto utilizzato per creare un tunnel di rete privata virtuale sicuro e veloce. Questa VPN è stata progettata per l'uso nel kernel Linux. WireGuard è una VPN leggera che offre velocità estremamente elevate agli utenti.
Questo articolo mostra come installare e configurare WireGuard sul tuo sistema CentOS 8. L'installazione e la configurazione di WireGuard sono molto più semplici rispetto alle VPN già esistenti, come OpenVPN, e questo è uno dei motivi principali alla base della sua crescente popolarità nella comunità Linux.
Panoramica
Questo articolo è composto da due sezioni:
- Nella prima sezione, installeremo e configureremo una macchina CentOS 8 che fungerà da a Server VPN WireGuard.
- Nella seconda sezione, installeremo e configureremo una macchina CentOS 8 che fungerà da a Client VPN WireGuard.
Installazione e configurazione di WireGuard su un server CentOS 8
In questa sezione, configureremo una macchina CentOS 8 che fungerà da server installando WireGuard.
Passaggio 1: aggiungi i repository EPEL ed Elrepo
Per iniziare con l'installazione di WireGuard su CentOS 8, aggiungi innanzitutto i repository EPEL ed Elrepo per installare i moduli del kernel e gli strumenti WireGuard.
$ sudo dnf install epel-release elrepo-release -y
Ora, dopo aver installato i repository richiesti, installa i moduli del kernel e gli strumenti WireGuard.
Passaggio 2: installare i moduli del kernel e gli strumenti WireGuard
I moduli del kernel e gli strumenti WireGuard possono essere installati rapidamente dai repository EPEL ed Elrepo emettendo il seguente comando:
$ sudo dnf install kmod-wireguard wireguard-tools
Quando ti viene richiesta l'autorizzazione per importare e aggiungere le chiavi GPG al sistema CentOS 8, consenti questa azione digitando "Y" e premendo "Invio."
Dopo aver installato con successo gli strumenti WireGuard, ora eseguiremo alcune configurazioni.
Passaggio 3: crea chiavi pubbliche e private
Innanzitutto, creeremo una nuova directory '/etc/wireguard' in modo da poter configurare il server VPN nella directory in. Per creare una nuova directory '/etc/wireguard' nel sistema CentOS 8, emettere il seguente comando.
sudo mkdir /etc/wireguard
Dopo aver creato la directory, creare le chiavi pubblica e privata utilizzando gli strumenti da riga di comando "wg" e "tee". Il comando per creare chiavi private e pubbliche è il seguente.
$ wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
La chiave generata verrà stampata all'esecuzione del comando sopra.
Passaggio 4: configurazione del dispositivo tunnel per il routing del traffico VPN
Per configurare un dispositivo, creare un file di configurazione nella directory '/etc/wireguard' e aprire il file utilizzando l'editor nano.
Prima di creare il file di configurazione, ottenere la chiave privata utilizzando il seguente comando.
$ sudo cat /etc/wireguard/privatekey
Salva la chiave privata da qualche parte; avrai bisogno di questa chiave più avanti nel file di configurazione.
Ora, crea il "wg0.conf" file.
$ sudo nano /etc/wireguard/wg0.conf
Aggiungi il contenuto indicato di seguito a "/etc/wireguard/wg0.conf" file.
[Interfaccia]## Indirizzo IP del server VPN ##
Indirizzo = 192.168.18.200/24
## Salva la configurazione quando un nuovo client aggiungerà ##
SaveConfig = vero
## numero di porta del server VPN ##
Porta di ascolto = 51820
## Chiave privata del server VPN ##
Chiave Privata = SERVER_PRIVATE_KEY
## Comando da eseguire prima di avviare l'interfaccia ##
PostUp = firewall-cmd --zone=public --add-port 51820/udp && firewall-cmd --zone=public --add-masquerade
## Comando da eseguire prima di spegnere l'interfaccia ##
PostDown = firewall-cmd --remove-port 51820/udp --zone=public && firewall-cmd --remove-masquerade --zone=public
Questo file di configurazione contiene i seguenti termini chiave:
- Indirizzo - l'indirizzo IP privato per l'interfaccia (wg0).
- Salva configurazione = true - salva lo stato dell'interfaccia al riavvio o allo spegnimento del server.
- ListenPort - la porta dove ascolta il demone WireGuard.
- Chiave Privata - la chiave che abbiamo appena generato.
- Affiggere - questo comando verrà eseguito prima di avviare l'interfaccia
- Post-Giù - questo comando verrà eseguito prima di spegnere l'interfaccia.
Ora che hai compreso abbastanza bene il file di configurazione, puoi salvare il file ed uscire usando le scorciatoie da tastiera (CTRL + S) e (CTRL + X).
Passaggio 5: impostare i privilegi di configurazione e il file "privatekey"
Ora renderemo il server VPN un po' più sicuro. Un utente di base non dovrebbe avere i privilegi per leggere il file di configurazione e il file 'privatekey'. Per fornire l'accesso a questi file, cambieremo la modalità di questi due file a 600. Di seguito è riportato il comando per impostare i permessi.
$ sudo chmod 600 /etc/wireguard/privatekey$ sudo chmod 600 /etc/wireguard/wg0.conf
Dopo aver finalizzato le autorizzazioni, attiveremo l'interfaccia (wg0) utilizzando lo strumento da riga di comando wg-quick.
Passaggio 6: avviare l'interfaccia
Per avviare l'interfaccia, emettere il comando indicato di seguito:
$ sudo wg-quick up wg0
Se hai ottenuto l'output mostrato nello screenshot qui sopra, hai avviato con successo l'interfaccia. Ora controlleremo lo stato dell'interfaccia.
$ sudo wg
Abilita l'interfaccia per avviare automaticamente l'interfaccia all'avvio del server CentOS 8OS.
$ sudo systemctl enable wg-quick@wg0
A questo punto, la configurazione del server è stata completata. Ora, se desideri configurare questo server VPN per NAT, dovrai abilitare l'inoltro IPv4.
Passaggio 7: abilitare l'inoltro IPv4
Per abilitare l'inoltro IPv4 per il NAT, creare un "99-custom.conf" nel file "/etc/sysctl.d" utilizzando l'editor nano.
$ sudo nano /etc/sysctl.d/99-custom.conf
Aggiungi il seguente contenuto a "/etc/sysctl.d/99-custom.conf"
## per abilitare l'inoltro IPv4 ##netto.ipv4.ip_forward = 1
Per abilitare l'inoltro IPv6, aggiungi il seguente contenuto a "/etc/sysctl.d/99-custom.conf" anche il file.
## per abilitare l'inoltro IPv6 ##netto.ipv6.conf.tutti.inoltro = 1
Dopo aver abilitato l'inoltro IPv4, salva il file ed esci utilizzando le scorciatoie (CTRL + S) e (CTRL + X).
Passiamo ora alla configurazione della macchina WireGuard Client.
Installazione e configurazione di WireGuard VPN su client CentOS 8
In questa sezione, configureremo una macchina CentOS 8 che fungerà da client. Il processo di installazione e configurazione del client VPN WireGuard sarà quasi lo stesso del server VPN WireGuard.
Passaggio 1: aggiungi i repository EPEL ed Elrepo
Innanzitutto, aggiungeremo i repository EPEL ed Elrepo per installare i moduli del kernel e gli strumenti WireGuard:
$ sudo dnf install epel-release elrepo-release -y
Ora, dopo aver installato i repository richiesti, installeremo i moduli del kernel e gli strumenti WireGuard.
Passaggio 2: installa i moduli del kernel e gli strumenti WireGuard
I moduli del kernel e gli strumenti WireGuard possono ora essere installati dai repository EPEL ed Elrepo emettendo il seguente comando.
$ sudo dnf install kmod-wireguard wireguard-tools
Quando ti viene chiesto il permesso di importare e aggiungere le chiavi GPG al sistema CentOS 8, consenti le modifiche digitando "Y" e premendo "Invio."
Dopo che gli strumenti WireGuard sono stati installati con successo, è necessario configurare anche il computer CentOS 8 Client.
Passaggio 3: creare chiavi pubbliche e private
In questo passaggio, creeremo una nuova directory '/etc/wireguard' nel computer client. Per creare la nuova directory '/etc/wireguard' nel tuo sistema CentOS 8, inserisci il seguente comando.
sudo mkdir /etc/wireguard
Dopo aver creato la directory, creare le chiavi pubblica e privata utilizzando gli strumenti da riga di comando "wg" e "tee". Di seguito viene fornito il comando per la creazione di chiavi private e pubbliche.
$ wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
Le chiavi generate verranno ora stampate.
Passaggio 4: configurazione per il routing del traffico VPN
In questo passaggio, creeremo un file di configurazione nella directory '/etc/wireguard' e lo apriremo utilizzando l'editor nano.
Prima di creare il file di configurazione, ottenere la chiave privata utilizzando il seguente comando following.
$ sudo cat /etc/wireguard/privatekey
Salva la chiave privata da qualche parte; ti servirà più avanti nel file di configurazione.
Ora, crea il "wg0.conf" file.
$ sudo nano /etc/wireguard/wg0.conf
Aggiungi il contenuto indicato di seguito a "/etc/wireguard/wg0.conf" file
[Interfaccia]## Chiave privata del client VPN ##
Chiave Privata = 8D8puLQCbUw+51wPE3Q7KutGxQhUvsy+a+DBgamb+3o=
## Indirizzo IP del client VPN ##
Indirizzo = 192.168.18.201/24
[Pari]
## Chiave pubblica del server VPN CentOS 8 ##
PublicKey = VWndJ4oB7ZJwC/7UOm++OLDrbAxMPsR2yd0cl3sEkUI=
## imposta ACL ##
IP consentiti = 0.0.0.0/0
## Indirizzo IP e porta del server VPN CentOS 8 ##
Punto finale = 192.168.18.200:51820
Il file di configurazione contiene i seguenti termini chiave:
- Chiave Privata - la chiave generata sulla macchina client.
- Indirizzo - l'indirizzo IP per l'interfaccia (wg0).
- Chiave pubblica - la chiave pubblica della macchina server VPN a cui vogliamo connetterci.
- IP consentiti - tutti gli indirizzi IP consentiti per il flusso di traffico utilizzando la VPN.
- Endpoint - forniremo l'indirizzo IP e il numero di porta della macchina server CentOS 8 a cui vogliamo connetterci.
Ora abbiamo configurato anche la macchina client. Salva il file ed esci usando le scorciatoie da tastiera (CTRL + S) e (CTRL + X).
Passaggio 5: impostare i privilegi di configurazione e il file "privatekey"
Ora cambieremo la modalità e imposteremo i privilegi del file di configurazione e del file "privatekey" a 600. Inserisci il seguente comando per impostare i permessi.
$ sudo chmod 600 /etc/wireguard/privatekey$ sudo chmod 600 /etc/wireguard/wg0.conf
Ora che abbiamo finalizzato le autorizzazioni, possiamo avviare l'interfaccia (wg0) utilizzando lo strumento da riga di comando "wg-quick".
Passaggio 6: avviare l'interfaccia
Per avviare l'interfaccia, emettere il comando indicato di seguito:
$ sudo wg-quick up wg0
Ora abbiamo avviato con successo l'interfaccia. Successivamente, controlleremo lo stato dell'interfaccia.
$ sudo wg
Abilita l'interfaccia per avviare automaticamente l'interfaccia all'avvio del server CentOS 8OS.
$ sudo systemctl enable wg-quick@wg0
In questa fase, anche il client è impostato.
Passaggio 7: aggiungere l'indirizzo IP e la chiave pubblica del client al server CentOS 8
Il passaggio finale consiste nell'aggiungere l'indirizzo IP e la chiave pubblica della macchina client VPN al file di configurazione della macchina server VPN WireGuard CentOS 8.
Torna alla macchina server e aggiungi il seguente contenuto a "/etc/wireguard/wg0.conf" file.
[Pari]## Chiave pubblica del client VPN ##
PublicKey = dmfO9pirB315slXOgxXtmrBwAqPy07C57EvPks1IKzA=
## Indirizzo IP del client VPN ##
IP consentiti = 192.168.10.2/32
Dopo aver aggiornato il file di configurazione del server VPN, salva il file ed esci utilizzando le scorciatoie da tastiera (CTRL + S) e (CTRL + X).
Il tunnel è stato ora stabilito e tutto il traffico passerà attraverso il server VPN CentOS 8 WireGuard.
Passaggio 8: verifica della connessione al tunnel
Per verificare che il server VPN WireGuard CentOS 8 sia stato installato e configurato correttamente, emettere il comando indicato di seguito per verificare che il traffico fluisca attraverso il server VPN WireGuard configurato.
$ sudo wg
E questo è tutto! Hai configurato e stabilito con successo il server VPN WireGuard.
Conclusione
Questo articolo ti ha mostrato come installare e configurare WireGuard VPN sul tuo computer CentOS 8 e configurare il sistema come server VPN. Ti abbiamo anche mostrato come configurare un client VPN WireGuard CentOS 8 e configurare il client per instradare il traffico attraverso il server VPN WireGuard.