GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare WireGuard VPN su Ubuntu 20.04

WireGuard è una rete privata virtuale open source e incentrata sulla sicurezza progettata per semplicità e facilità d'uso. Supporta diversi sistemi operativi tra cui Linux, macOS, Windows, BSD e Android. È una VPN semplice e generica che può essere facilmente implementata su piccoli dispositivi su server di fascia alta. È un server VPN punto a punto anziché un modello client-server. Utilizza un meccanismo di scambio di chiavi pubbliche per autenticare il client.

Se stai cercando una VPN leggera e veloce, WireGuard VPN è la scelta migliore per te. In questo tutorial, ti mostreremo come installare il server e il client VPN WireGuard su Ubuntu 20.04.

Prerequisiti

  • Due server con server Ubuntu 20.04.
  • Una password di root è configurata su entrambi i server.

Per iniziare

Innanzitutto, si consiglia di aggiornare i pacchetti di sistema all'ultima versione. Puoi aggiornarli con il seguente comando:

apt-get update -y

Una volta aggiornati tutti i pacchetti, dovrai installare Iptables nel tuo sistema. Puoi installarlo con il seguente comando:

apt-get install iptables -y

Al termine dell'installazione, puoi procedere al passaggio successivo.

Installa il server VPN WireGuard

Per impostazione predefinita, il pacchetto WireGuard è disponibile nel repository predefinito di Ubuntu 20.04. Puoi installarlo eseguendo il seguente comando:

apt-get install wireguard -y

Una volta installato il pacchetto WireGuard, puoi procedere al passaggio successivo.

Configura il server WireGuard

WireGuard funziona scambiando chiavi pubbliche tra ciascun dispositivo nella rete WireGuard. Quindi dovrai creare una chiave pubblica e una privata nel server.

WireGuard fornisce l'utilità della riga di comando wg e wg-quick per creare una chiave e gestire le interfacce.

Puoi creare sia la chiave pubblica che quella privata utilizzando il seguente comando:

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

Una volta create entrambe le chiavi, puoi verificarle con il seguente comando:

ls /etc/wireguard

Dovresti vedere il seguente output:

privatekey  publickey

Puoi visualizzare il contenuto della chiave privata con il seguente comando:

cat /etc/wireguard/privatekey

Dovresti vedere il seguente output:

4M1l65NIaoR2+fQ6xVnIdwj6iVjsSPDkEMuzVnbFh3A=

Puoi visualizzare il contenuto della chiave pubblica con il seguente comando:

cat /etc/wireguard/publickey

Dovresti vedere il seguente output:

00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=

Successivamente, dovrai creare un'interfaccia di rete per WireGuard. Puoi crearlo con il seguente comando:

nano /etc/wireguard/wg0.conf

Aggiungi le seguenti righe:

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = server-private-key
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Salva e chiudi il file quando hai finito.

Dove :

  • Indirizzo : Un indirizzo IP privato per l'interfaccia wg0.
  • Ascolta Porta: Specifica la porta di ascolto di WireGuard.
  • Chiave privata: Una chiave privata memorizzata nel file /etc/wireguard/privatekey.
  • PostUp : Specificare il comando che consente al traffico di lasciare il server e concedere ai client VPN l'accesso a Internet. Sostituisci anche eth0 con il nome della tua interfaccia di rete.

Quindi, imposta l'autorizzazione corretta per la chiave privata e il file wg0.

chmod 600 /etc/wireguard/{privatekey,wg0.conf}

Quindi, abilita l'interfaccia wg0 eseguendo il comando seguente:

wg-quick up wg0

Dovresti ottenere il seguente output:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Puoi anche avviare il servizio WireGuard utilizzando systemd come mostrato di seguito:

systemctl start [email protected]

Quindi, abilita l'avvio del servizio WireGuard al riavvio del sistema con il seguente comando:

systemctl enable [email protected]

Successivamente, verifica lo stato del servizio WireGuard con il seguente comando:

systemctl status [email protected]

Dovresti ottenere il seguente output:

? [email protected] - WireGuard via wg-quick(8) for wg0
     Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
     Active: active (exited) since Thu 2020-12-10 11:42:14 UTC; 7s ago
       Docs: man:wg-quick(8)
             man:wg(8)
             https://www.wireguard.com/
             https://www.wireguard.com/quickstart/
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
    Process: 2173 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
   Main PID: 2173 (code=exited, status=0/SUCCESS)

Dec 10 11:42:14 ubuntu2004 systemd[1]: Starting WireGuard via wg-quick(8) for wg0...
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link add wg0 type wireguard
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] wg setconf wg0 /dev/fd/63
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip -4 address add 10.0.0.1/24 dev wg0
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link set mtu 1420 up dev wg0
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Dec 10 11:42:14 ubuntu2004 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

Puoi anche controllare lo stato dell'interfaccia wg0 con il seguente comando:

wg show wg0

Dovresti ottenere il seguente output:

interface: wg0
  public key: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
  private key: (hidden)
  listening port: 51820

È possibile ottenere lo stato dell'indirizzo IP dell'interfaccia wg0 con il seguente comando:

ip a show wg0

Dovresti ottenere il seguente output:

13: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.0.0.1/24 scope global wg0
       valid_lft forever preferred_lft forever

Una volta terminato, puoi procedere al passaggio successivo.

Abilita inoltro IP

Successivamente, dovrai abilitare l'inoltro IP nel tuo server per instradare i pacchetti tra i client VPN e Internet. Puoi abilitarlo modificando il file /etc/sysctl.conf:

nano /etc/sysctl.conf

Modifica la seguente riga:

net.ipv4.ip_forward=1

Salva e chiudi il file, quindi esegui il comando seguente per applicare le modifiche alla configurazione:

sysctl -p

Una volta terminato, puoi procedere al passaggio successivo.

Installa e configura il client WireGuard

Innanzitutto, dovrai installare il pacchetto WireGuard sulla macchina client. Puoi installarlo con il seguente comando:

apt-get install wireguard -y

Dopo aver installato il pacchetto WireGuard, crea una chiave privata e una chiave pubblica con il seguente comando:

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

Una volta create entrambe le chiavi, dovrai creare un nuovo file di configurazione.

Puoi crearlo con il seguente comando:

nano /etc/wireguard/wg0.conf

Aggiungi le seguenti righe:

[Interface]
PrivateKey = client-private-key
Address = 10.0.0.2/24

[Peer]
PublicKey = server-public-key
Endpoint = server-ip-address:51820
AllowedIPs = 0.0.0.0/0

Salva e chiudi il file quando hai finito.

Dove :

  • Indirizzo : Un indirizzo IP privato per l'interfaccia wg0.
  • Chiave privata: Specificare la chiave privata sulla macchina client.
  • Chiave pubblica: Specificare la chiave pubblica sulla macchina server.
  • Punto finale: Specificare l'indirizzo IP del server.
  • IP consentiti: Specificare l'elenco degli indirizzi IP consentiti.

Successivamente, dovrai aggiungere la chiave pubblica del client e l'indirizzo IP sulla macchina server.

Sulla macchina server, esegui il comando seguente per aggiungere entrambi:

wg set wg0 peer client-public-key allowed-ips 10.0.0.2

Successivamente, dovrai visualizzare l'interfaccia wg0 sul computer client.

Sul computer client, esegui il comando seguente per visualizzare l'interfaccia:

wg-quick up wg0

Dovresti ottenere il seguente output:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] wg set wg0 fwmark 51820

A questo punto, la tua macchina client è connessa al server VPN WireGuard. Puoi controllare lo stato della connessione con il seguente comando:

wg

Dovresti ottenere il seguente output:

interface: wg0
  public key: 3FXBDpAO4Vado1tDjLtVQt+JnOCa+W2piLeFYQ8KyB4=
  private key: (hidden)
  listening port: 38830
  fwmark: 0xca6c

peer: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
  endpoint: 69.87.216.36:51820
  allowed ips: 0.0.0.0/0
  latest handshake: 41 seconds ago
  transfer: 5.27 KiB received, 12.97 KiB sent

Conclusione

Congratulazioni! hai installato e configurato correttamente il server e il client VPN WireGuard sul server Ubuntu 20.04. Ora, il traffico dalla tua macchina client dovrebbe essere instradato attraverso la tua macchina server. Ora puoi navigare in Internet in modo anonimo e mantenere privati ​​i tuoi dati.


Ubuntu
  1. Come configurare Wireguard VPN su CentOS 8

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

  3. Come configurare WireGuard su Ubuntu 22.04

  4. Come configurare WireGuard VPN su CentOS 8

  5. Come installo e configuro Git su Ubuntu?

Come configurare il cluster RabbitMQ su Ubuntu 20.04

Come configurare il server VPN Pritunl su Ubuntu 20.04

Come configurare una VPN su Ubuntu

Come configurare un VPN Pptp sul proprio server Ubuntu?

Come configurare WireGuard VPN su Debian 11

Come configurare WireGuard VPN su Linux