OffshoreVps
Sicurezza17 set 202610 min di letturaDi il team di OffshoreVps

Configura la tua VPN WireGuard su un VPS

Passo dopo passo: installa WireGuard su Ubuntu o Debian, crea le chiavi, scrivi le configurazioni di server e client, apri il firewall e testa il tunnel.

WireGuard è un moderno protocollo VPN veloce, piccolo e facile da configurare. Eseguire il tuo su un VPS ti dà un tunnel cifrato verso un server nel paese che scegli, senza alcuna società VPN di terze parti nel mezzo. Questa guida usa Ubuntu 24.04 o Debian 12/13 e presume che tu abbia già messo in sicurezza il server.

Finestra del terminale su un VPS che mostra i comandi usati per configurare WireGuard, a partire da “sudo apt update”
Il tipo di comandi che eseguirai sul tuo server in questa guida.

1. Installa WireGuard

sudo apt update
sudo apt install -y wireguard

2. Genera le chiavi del server

cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub

umask 077 fa sì che i file delle chiavi siano leggibili solo da root. Tieni privato server.key.

3. Crea le chiavi del client

Genera sul server una coppia di chiavi per il tuo laptop o telefono e copia poi la configurazione del client:

wg genkey | tee client1.key | wg pubkey > client1.pub

4. Scrivi la configurazione del server

Per prima cosa trova il nome della tua interfaccia di rete pubblica:

ip route get 1.1.1.1 | awk '{print $5; exit}'

Spesso è eth0 o ens3. Crea /etc/wireguard/wg0.conf e sostituisci i valori in maiuscolo con i tuoi:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ETH_IF -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ETH_IF -j MASQUERADE

[Peer]
# client1
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

Incolla il contenuto di server.key e client1.pub dove indicato e sostituisci ETH_IF con il nome della tua interfaccia.

5. Attiva l'IP forwarding

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
I passaggi di questa guida in ordine: 1. 1. Installa WireGuard; 2. 3. Crea le chiavi del client; 3. 5. Attiva l’IP forwarding; 4. 7. Avvia il tunnel; 5. 9. Testalo; 6. Scegliere una sede
I passaggi di questa guida, in ordine.

6. Apri il firewall

sudo ufw allow 51820/udp
sudo ufw route allow in on wg0
sudo ufw reload

7. Avvia il tunnel

sudo systemctl enable --now wg-quick@wg0
sudo wg show

Dovresti vedere l'interfaccia e, quando un client si connette, il suo ultimo handshake.

8. Configura il client

Sul tuo dispositivo, crea una configurazione come questa (le app ufficiali WireGuard per Windows, macOS, Linux, iOS e Android possono importarla da un file o da un codice QR):

[Interface]
Address = 10.8.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Usare AllowedIPs = 0.0.0.0/0, ::/0 fa passare tutto il traffico attraverso il tunnel. Per raggiungere solo la tua rete privata, usa invece 10.8.0.0/24.

9. Provalo

  1. Attiva il tunnel sul client.
  2. Esegui sudo wg show sul server e verifica che ci sia un handshake recente.
  3. Visita dal client una pagina "qual è il mio IP". Dovrebbe mostrare l'indirizzo del tuo server.
  4. Controlla le perdite DNS se l'obiettivo è la privacy e aggiungi regole IPv6 se il tuo server ha IPv6.

Aggiungere altri dispositivi

Per ogni nuovo dispositivo, genera una coppia di chiavi, aggiungi un altro blocco [Peer] con un nuovo indirizzo come 10.8.0.3/32 ed esegui sudo wg syncconf wg0 <(wg-quick strip wg0) per applicarlo senza interrompere le connessioni esistenti.

Scegliere una sede

Un server WireGuard funziona da qualsiasi nostra località. Scegline una vicina a te per la velocità, oppure nel paese di cui vuoi l'indirizzo IP per il tuo traffico. Vedi come scegliere una località per il VPS. Un piccolo VPS è più che sufficiente per un tunnel personale.