Questo tutorial ti mostrerà come configurare il tuo server VPN WireGuard su Ubuntu in semplici passaggi.
Sommario
- Passaggio 1:abilita l'inoltro IP sul server
- Passaggio 2:installa WireGuard su Ubuntu
- Passaggio 3:Configura il server VPN WireGuard su Ubuntu
- Passaggio 3.1:Genera coppia di chiavi pubblica/privata
- Passaggio 3.2:configurazione del dispositivo tunnel
- Fase 4:abilita e avvia il servizio VPN WireGuard
- Fase 5:installa e configura il client WireGuard
- Fase 6:connessione del client WireGuard al server
- Conclusione
WireGuard è un server VPN open source, gratuito e veloce che utilizza una crittografia all'avanguardia. Passa il traffico su UDP con prestazioni migliori rispetto ai tipici due protocolli di tunneling, ovvero OpenVPN e IPsec.
WireGuard è una VPN peer-to-peer creata esplicitamente per il kernel Linux. Funziona all'interno del kernel Linux e ti consente di creare tunnel VPN veloci, moderni e sicuri.
WireGuard funziona creando un'interfaccia di rete su ogni dispositivo peer che funge da tunnel. I peer si autenticano reciprocamente scambiandosi e convalidando le chiavi pubbliche, imitando il modello SSH.
Passaggio 1:abilita l'inoltro IP sul server
Affinché il server VPN instrada i pacchetti tra i client VPN e Internet, è necessario abilitare l'inoltro IP. Apri il /etc/sysctl.conf
file utilizzando il tuo editor preferito:
sudo vim /etc/sysctl.conf
Commenta (rimuovi il #
carattere prima di esso) la riga seguente:
Salva il file e applica la modifica:
sudo sysctl -p
Passaggio 2:installa WireGuard su Ubuntu
Il prossimo passo in questo tutorial è installare WireGuard sulla tua macchina Ubuntu e configurarlo per fungere da server. Per impostazione predefinita, il pacchetto WireGuard è disponibile nel repository predefinito di Ubuntu.
sudo apt install wireguard
Una volta installato il pacchetto WireGuard, puoi procedere al passaggio successivo.
Passaggio 3:configura WireGuard VPN Server su Ubuntu
WireGuard funziona scambiando chiavi pubbliche tra ciascun dispositivo nella rete WireGuard. Ora che WireGuard è installato, il passaggio successivo consiste nel generare una coppia di chiavi privata e pubblica per il server.
Passaggio 3.1:Genera coppia di chiavi pubblica/privata
Eseguire il comando seguente per creare una coppia di chiavi pubblica/privata. I file verranno salvati in /etc/wireguard/
directory.
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
Il wg
comando è l'utilità di configurazione integrata di WireGuard per ottenere e impostare le configurazioni di WireGuard. Quando esegui il comando, riceverai una singola riga di output codificato in base64, la chiave pubblica (server_public.key
) per il tuo server WireGuard.
Ricorda, la chiave privata (server_private.key
) non dovrebbe mai essere condiviso con nessuno e dovrebbe essere sempre tenuto al sicuro.
Passaggio 3.2:configurazione del dispositivo tunnel
Successivamente, dovrai creare un'interfaccia di rete per WireGuard. Usa un editor di testo a riga di comando come vim per creare un file di configurazione WireGuard. Il nome dell'interfaccia di rete sarà wg0
.
sudo vim /etc/wireguard/wg0.conf
Aggiungi i contenuti indicati di seguito:
[Interface]
## Private IP address for the wg0 interface ##
Address = 10.0.0.1/24
## VPN server listening port ##
ListenPort = 51820
## VPN server private key ##
PrivateKey = mPIoWfKQWZP8lie2ISEZ6ul7vyESH9MqpFvxk1cxIWQ=
## Firewall rules ##
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
Ovviamente devi sostituire la PrivateKey
con il contenuto di quello che hai generato, memorizzato nel /etc/wireguard/server_private.key
file.
Puoi visualizzare il contenuto della chiave privata con il seguente comando:
sudo cat /etc/wireguard/server_private.key
Assicurati di sostituire enp1s0
dopo -A POSTROUTING -o ...
in modo che corrisponda al nome dell'interfaccia di rete pubblica. Puoi trovarlo facilmente con:
ip -o -4 route show to default | awk '{print $5}'
Salva e chiudi wg0.conf
file. Inoltre, modifica la modalità di autorizzazione dei file in modo che solo l'utente root possa leggere i file.
sudo chmod -R 600 /etc/wireguard/
Fase 4:abilita e avvia il servizio VPN WireGuard
Esegui il seguente comando sul server per abilitare l'avvio automatico all'avvio del sistema e avviare WireGuard.
sudo systemctl enable [email protected]
sudo systemctl start [email protected]
Controlla il suo stato con il seguente comando. Dovresti vedere active
nell'output:
sudo systemctl status [email protected]
Per verificare lo stato e la configurazione dell'interfaccia, immettere:
sudo wg show wg0
Fase 5:installa e configura il client WireGuard
Innanzitutto, dovrai installare il pacchetto WireGuard sulla macchina client. È simile alla configurazione del server WireGuard.
sudo apt install wireguard
Successivamente, dovrai generare una coppia di chiavi pubblica/privata sul peer utilizzando i passaggi esatti che hai utilizzato sul server.
wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key
Apri un nuovo /etc/wireguard/wg0.conf
file sul computer client WireGuard utilizzando il tuo editor preferito:
sudo vim /etc/wireguard/wg0.conf
Aggiungi le seguenti righe al file:
[Interface]
## VPN client private IP address ##
Address = 10.0.0.2/24
## VPN client private key ##
PrivateKey = 0COkq1GMM86CmlF5blPFDYhU84iTX8iJ7lWoC1gLfnk=
[Peer]
## VPN server public key ##
PublicKey = ZnD/WMx0kasJfGjFf0/uCtJoFbz0oNdq7EcieHXVaSc=
## VPN server public IP address and port ##
Endpoint = 192.168.122.101:51820
## Route all the traffic through the VPN tunnel ##
AllowedIPs = 0.0.0.0/0
## Key connection alive ##
PersistentKeepalive = 15
Sostituisci il PrivateKey
con il contenuto di quello che hai generato, memorizzato nel /etc/wireguard/client_private.key
file sul computer client.
sudo cat /etc/wireguard/client_private.key
Sostituisci la chiave pubblica del server, che puoi trovare in /etc/wireguard/server_public.key
file sul server.
Sostituisci l'Endpoint
valore (192.168.122.101:51820
) con l'indirizzo IP pubblico reale e la porta del tuo server.
Infine, salva e chiudi il file.
È necessario configurare l'opzione VPN lato server per consentire una connessione tra il computer client (peer) e il server. Quindi, torna al server e modifica il /etc/wireguard/wg0.conf
per aggiungere le informazioni sul cliente come segue:
sudo vim /etc/wireguard/wg0.conf
[Peer]
## Client public key ##
PublicKey = 6FLtyfBQie9+EB3QYF55CR1FASca7vVYPReynlEccAo=
## Client IP address ##
AllowedIPs = 10.0.0.2/24
Sostituisci il PublicKey
con il contenuto del file archiviato in /etc/wireguard/client_public.key
file sul computer client .
La versione finale del file di configurazione del server dovrebbe essere simile a questa:
Salva il file e riavvia il server VPN per applicare le modifiche:
sudo systemctl restart [email protected]
Fase 6:connessione del client WireGuard al server
Esegui il seguente comando sul computer client per connettere il client VPN al server VPN:
sudo systemctl start [email protected]
Ora dovresti essere connesso al server WireGuard VPN e il traffico dal tuo computer client dovrebbe essere instradato attraverso di esso.
È tutto! Sia il client che il server devono essere connessi in modo sicuro utilizzando una VPN WireGuard peer-to-peer su Ubuntu.
Per testare la connessione, torna al client VPN e esegui il ping da esso (10.0.0.2
) al server VPN (10.0.0.1
) per vedere se il tunnel funziona.
ping -c 3 10.0.0.1
Inoltre, puoi verificare la connessione con:
sudo wg
Per interrompere il tunneling, basta disattivare il servizio sulla macchina client:
sudo systemctl stop [email protected]
Conclusione
Congratulazioni! Spero che questo tutorial ti abbia aiutato a installare e configurare il server e il client VPN WireGuard su Ubuntu. Questa configurazione ti consente di navigare sul web in modo anonimo mantenendo privati i tuoi dati di traffico.
Ti suggerisco caldamente di leggere la documentazione del progetto WireGuard qui.
Se hai trovato utile questo post o se stai riscontrando problemi, non esitare a lasciare un commento.