WireGuard1 è un programma open source e un protocollo che implementa la tecnica della virtual private network (VPN) per creare connessioni sicure punto-punto in configurazione routed o bridged. Viene eseguito come modulo nel kernel linux e punta ad avere prestazioni migliori rispetto ad IPsec e OpenVPN.
(contributori di Wikipedia, 2024)2
Supponiamo di voler impostare la nostra VPN con WireGuard avendo la seguente configurazione:
- server Ubuntu
- indirizzo FQDN ubusrv.dom.internet
- ip locale 10.10.10.254/24
- client
- subnet 192.168.10.0/24
Per permettere che il client comunichi con il server, è necessario configurare il Router 1 affinché i pacchetti UDP diretti all’indirizzo pubblico del server WireGuard dal client attraverso Internet siano inoltrati all’indirizzo IP locale dello stesso server.
Installazione
sudo apt install wireguard-tools iptables
Configurazione
- Generiamo la chiave privata per il server:
umask 077
wg genkey | tee /etc/wireguard/server.key
- Chiave pubblica per il server:
cat /etc/wireguard/server.key | wg pubkey | tee /etc/wireguard/server.pub
- Chiave privata per il client:
wg genkey | tee /etc/wireguard/client.key
- Chiave pubblica per il client:
cat /etc/wireguard/client.key | wg pubkey | tee /etc/wireguard/client.pub
Impostiamo il profilo di configurazione per l’interfaccia della VPN:
nano /etc/wireguard/wg0.conf
Facciamo partire l’interfaccia per la VPN:
systemctl start wg-quick@wg0
Verifichiamo l’interfaccia:
ip addr
Configurazione del client Windows
- Trasferiamo sul client Windows la chiave privata per il client e la chiave pubblica per il server, generate in precedenza.
- Scarichiamo ed installiamo WireGuard3 sul computer Windows.
- Creiamo un file di configurazione per WireGuard nella cartella che preferiamo.
- Apriamo WireGuard ed importiamo il file di configurazione
Con l’importazione del file wg0.conf, le impostazioni del tunnel sono caricate. Per avviare la VPN facciamo clic su Activate
Se le impostazioni sono corrette, il tunnel viene attivato
Possiamo infine controllare il collegamento con il server: