VPN WireGuard · 10 min read · Sep 09, 2025

Installa WireGuard VPN su Debian 12

Wireguard è un protocollo VPN open-source alternativo a IPSec, IKEv2 e OpenVPN. Wireguard è progettato per sistemi operativi Linux e Unix, funziona nello spazio del kernel Linux, il che rende Wireguard più veloce e più affidabile. Wireguard è utilizzato per creare connessioni tunnel sicure tra due computer o più.

Wireguard mira a sostituire protocolli VPN come IPSec, IKEv2 e OpenVPN. Wireguard è più leggero, più veloce, facile da configurare e più efficiente. Allo stesso tempo, Wireguard non ha sacrificato l’aspetto della sicurezza del protocollo VPN. Wireguard supporta la crittografia moderna come il framework del protocollo Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF e costruzioni sicure e fidate.

Questa guida ti mostrerà come installare Wireguard VPN sul server Debian 12 e configurare il client Wireguard su una macchina Linux.

Prerequisiti

Prima di iniziare, assicurati di avere questi requisiti:

  • Un server Linux che esegue Debian 12.
  • Un utente non root con privilegi sudo.
  • Una macchina client - in questo caso utilizzando la distribuzione basata su Debian.

Preparazione del sistema

Prima di installare Wireguard, devi preparare il tuo server Debian apportando le seguenti modifiche:

  • Abilitare il Port Forwarding tramite /etc/sysctl.conf
  • Installare e configurare UFW

Ora iniziamo.

Abilitare il Port Forwarding

Per abilitare il port forwarding, devi abilitare il modulo del kernel net.ipv4.ip_forward per IPv4 o net.ipv6.conf.all.forwarding per IPv6. Questi moduli del kernel possono essere abilitati tramite il file /etc/sysctl.conf.

Apri il file /etc/sysctl.conf utilizzando il seguente comando dell’editor nano.

sudo nano /etc/sysctl.conf

Inserisci la seguente configurazione per abilitare il port forwarding sia per IPv4 che per IPv6 (se necessario).

# Port Forwarding per IPv4  
net.ipv4.ip_forward=1  
  
# Port forwarding per IPv6  
net.ipv6.conf.all.forwarding=1

Salva il file ed esci dall’editor quando hai finito.

Ora applica le modifiche tramite il comando sysctl qui sotto.

sudo sysctl -p

Installazione di UFW

Il firewall predefinito su Debian è iptables, e ora installerai UFW. Utilizzerai sia UFW che iptables per il server Wireguard.

Esegui il comando apt qui sotto per aggiornare il tuo repository e installare UFW sul tuo sistema Debian.

sudo apt update && sudo apt install ufw -y

install ufw

Successivamente, esegui il comando ufw qui sotto per aggiungere il profilo dell’applicazione OpenSSH e abilitare UFW. Digita y e premi INVIO per confermare, e dovresti ricevere il messaggio “ Il firewall è attivo e abilitato all’avvio del sistema “.

sudo ufw allow OpenSSH  
sudo ufw enable

enable ufw

Infine, verifica lo stato di UFW utilizzando il comando qui sotto.

sudo ufw status

Se in esecuzione, dovresti ricevere l’output “ Stato: attivo. Vedrai anche che il profilo dell’applicazione OpenSSH è stato aggiunto a UFW.

verify ufw

Installazione del server Wireguard

Dopo aver configurato il server Debian, sei pronto per creare un server Wireguard VPN sulla tua macchina Debian. Completa i seguenti compiti per raggiungerlo:

  • Installazione di Wireguard
  • Generazione della chiave del server Wireguard
  • Generazione della chiave del client Wireguard
  • Configurazione dell’interfaccia Wireguard
  • Impostazione del NAT per l’interfaccia Wireguard

Facciamolo.

Installazione di Wireguard

Per prima cosa, installa il pacchetto wireguard sul tuo server Debian eseguendo il seguente comando.

sudo apt install wireguard

Digita y per procedere con l’installazione.

install wireguard

Generazione della chiave del server Wireguard

Dopo che il pacchetto wireguard è stato installato, il compito successivo è generare i certificati del server, che possono essere creati utilizzando lo strumento da riga di comando wg.

Esegui il seguente comando per generare la chiave privata del server wireguard in /etc/wireguard/server.key. Quindi, cambia i permessi della chiave privata del server in 0400, il che significa che disabiliterai l’accesso in scrittura al file.

wg genkey | sudo tee /etc/wireguard/server.key  
sudo chmod 0400 /etc/wireguard/server.key

Successivamente, esegui il seguente comando per generare la chiave pubblica del server wireguard in /etc/wireguard/server.pub.

sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub

generate server key

Ora che hai generato la chiave privata in /etc/wireguard/server.key e la chiave pubblica in /etc/wireguard/server.pub per il tuo server wireguard. Puoi eseguire il comando cat qui sotto per mostrare il contenuto di entrambe le chiavi privata e pubblica.

cat /etc/wireguard/server.key  
cat /etc/wireguard/server.pub

Potresti avere un output diverso, ma le chiavi generate assomigliano a quelle seguenti:

Generazione della chiave del client Wireguard

Con la chiave del server wireguard generata, il compito successivo è generare chiavi per i client. Puoi generare chiavi client per ciascun utente, ma puoi anche utilizzare una singola chiave per più utenti.

In questo esempio, genererai una chiave client per un utente specifico alice.

Per iniziare, esegui il seguente comando per creare una nuova directory per memorizzare le chiavi client. In questo caso, le chiavi pubbliche e private per l’utente alice saranno generate nella directory /etc/wireguard/clients/alice.

mkdir -p /etc/wireguard/clients/alice

Ora, esegui il seguente comando per generare la chiave privata /etc/wireguard/clients/alice/alice.key e la chiave pubblica /etc/wireguard/clients/alice/alice.pub per l’utente alice.

wg genkey | tee /etc/wireguard/clients/alice/alice.key  
cat /etc/wireguard/clients/alice/alice.key | wg pubkey | tee /etc/wireguard/clients/alice/alice.pub

Infine, esegui il comando qui sotto per mostrare il contenuto delle chiavi private e pubbliche per l’utente alice.

cat /etc/wireguard/clients/alice/alice.key  
cat /etc/wireguard/clients/alice/alice.pub

L’output simile a quello seguente verrà visualizzato:

Configurazione dell’interfaccia Wireguard

Ora che hai generato chiavi private e pubbliche sia per il server che per il client, il compito successivo è configurare l’interfaccia e il peer di Wireguard. Configurerai un’interfaccia per la rete VPN di Wireguard e un peer che si stabilirà tra il client e il server.

Crea una nuova configurazione di Wireguard /etc/wireguard/wg0.conf utilizzando il seguente comando dell’editor nano.

sudo nano /etc/wireguard/wg0.conf

Inserisci la seguente configurazione nel file.

[Interface]  
# Chiave privata del server Wireguard - server.key  
PrivateKey = cNBb6MGaKhmgllFxSq/h9BdYfZOdyKvo8mjzb2STbW8=  
  
# L'interfaccia Wireguard verrà eseguita su 10.10.0.1  
Address = 10.10.0.1/24  
  
# I client si connetteranno alla porta UDP 51820  
ListenPort = 51820  
  
# Assicurati che eventuali modifiche vengano salvate nel file di configurazione di Wireguard  
SaveConfig = true

Di seguito i dettagli dei parametri che verranno utilizzati all’interno della sezione [Interface]:

  • PrivateKey: Inserisci il contenuto della chiave privata del server wireguard server.key.
  • Address: l’indirizzo IP che verrà assegnato all’interfaccia Wireguard. In questo caso, l’interfaccia wireguard avrà un indirizzo IP di 10.10.0.1.
  • ListenPort: Questa è la porta che verrà utilizzata dal client per connettersi al server wireguard. In questo caso, verrà utilizzata la porta 51820.
  • SaveConfig: il valore true significa che eventuali modifiche verranno salvate dallo stato attuale dell’interfaccia allo spegnimento.

Ora aggiungi la seguente sezione [Peer] per i client wireguard.

[Peer]  
# Chiave pubblica del client Wireguard - alice.pub  
PublicKey = 3ZoaoVgHOioZnKzCrF/XALAv70V4vyJXpl/UO7AKYzA=  
  
# indirizzi IP VPN dei client che consenti di connettersi  
# possibile specificare subnet ⇒ [10.10.0.0/24]  
AllowedIPs = 10.10.0.2/24

Di seguito i parametri utilizzati all’interno della sezione [Peer]:

PublicKey: Inserisci la chiave pubblica del client wireguard in questo parametro. In questo caso, il contenuto della chiave pubblica alice.pub.
AllowedIPs: Definisci l’indirizzo IP per il client e instrada il traffico all’interfaccia wireguard.

Salva e chiudi il file quando hai finito.

Infine, esegui il seguente comando per aprire la porta 51820/udp per le connessioni dei client.

sudo ufw allow 51820/udp

Impostazione del NAT per l’interfaccia Wireguard

Per prima cosa, esegui il seguente comando per mostrare l’interfaccia del gateway predefinito utilizzata per connettersi a Internet.

sudo ip route list default

In questo caso, il gateway di rete Internet predefinito è l’interfaccia eth0.

Ora apri la configurazione di wireguard /etc/wireguard/wg0.conf utilizzando il seguente comando dell’editor nano.

sudo nano /etc/wireguard/wg0.conf

Aggiungi la seguente configurazione sotto la sezione [Interface], e assicurati di cambiare l’interfaccia eth0 con l’interfaccia del gateway Internet predefinito.

[Interface]  
...  
  
PostUp = ufw route allow in on wg0 out on eth0  
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE  
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE  
  
PreDown = ufw route delete allow in on wg0 out on eth0  
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE  
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Salva e chiudi il file quando hai finito.

A questo punto, hai configurato il tuo server Wireguard.

Gestione del servizio Wireguard

Ora che l’installazione e la configurazione del server Wireguard sono complete, sei pronto per avviare il servizio Wireguard sul tuo sistema Debian. Questo può essere fatto tramite il comando systemctl o utilizzando l’utilità wg-quick.

Per avviare e abilitare il server wireguard, esegui il seguente comando systemctl. Con il nome del servizio wg-quick@wg0, avvierai Wireguard all’interno dell’interfaccia wg0, che si basa sulla configurazione /etc/wireguard/wg0.conf.

sudo systemctl start [email protected]  
sudo systemctl enable [email protected]

Ora verifica il servizio wirguard@wg0 utilizzando il seguente comando.

sudo systemctl status [email protected]

Se il servizio è in esecuzione, verrà visualizzato il seguente output.

start verify wireguard service

Successivamente, esegui il comando ip qui sotto per mostrare i dettagli dell’interfaccia wireguard wg0. E dovresti vedere che l’interfaccia wireguard wg0 ha un indirizzo IP 10.10.0.1.

sudo ip a show wg0

check wg0 interface

Puoi anche avviare o fermare il wireguard manualmente tramite il comando wg-quick qui sotto.

sudo wg-quick up /etc/wireguard/wg0.conf  
sudo wg-quick down /etc/wireguard/wg0.conf

Con questo, hai configurato il server wireguard e lo hai avviato in background tramite il comando systemctl. Il tuo client è ora pronto per connettersi al server wireguard.

Impostazione del client Wireguard su distribuzione basata su Debian

Nella sezione seguente, configurerai il client wireguard per la distribuzione basata su Debian. Installerai gli strumenti wireguard, creerai una configurazione del client wireguard, ti connetterai al server wireguard, verificherai la connessione tramite l’utilità wg e accederai a Internet.

Installa il pacchetto wireguard-tools sulla macchina client tramite APT. La macchina client è una distribuzione basata su Debian, quindi verrà utilizzato il gestore pacchetti APT.

sudo apt install wireguard-tools resolvconf

install wireguard tools

Dopo aver installato gli strumenti wireguard, crea una nuova configurazione del client wireguard /etc/wireguard/wg-alice.conf utilizzando il seguente editor nano.

sudo nano /etc/wireguard/wg-alice.conf

Inserisci la seguente configurazione nel file.

[Interface]  
# Definisci l'indirizzo IP per il client - deve corrispondere a wg0 sul server Wireguard  
Address = 10.10.0.2/24  
  
# server DNS specifico  
DNS = 1.1.1.1  
  
# Chiave privata per il client - alice.key  
PrivateKey = cPDg6SQHz/3l2R83lMWPzmR6/mMKnKp9PNImbtB6nGI=  
  
[Peer]  
# Chiave pubblica del server Wireguard - server.pub  
PublicKey = APyBQvTkYVm0oakzcQUQViarwx1aIYz5wb/g2v2xdUE=  
  
# Consenti a tutto il traffico di essere instradato tramite Wireguard VPN  
AllowedIPs = 0.0.0.0/0  
  
# Indirizzo IP pubblico del server Wireguard  
Endpoint = 192.168.128.15:51820  
  
# Invia Keepalive ogni 25 secondi  
PersistentKeepalive = 25

Salva e chiudi il file quando hai finito.

Di seguito alcuni dei parametri all’interno della sezione [Interface] per i client wireguard:

  • Address: specifica l’indirizzo IP interno dell’interfaccia wireguard sulla macchina client.
  • DNS: imposta il server DNS predefinito per il client.
  • PrivateKey: la chiave privata del client wireguard, in questo caso, è alice.key.

E all’interno della sezione [Peer] nella configurazione del client wireguard:

  • PublicKey: questa è la chiave pubblica del server wireguard, che è server.pub.
  • AllowedIPs: consenti a qualsiasi accesso di essere instradato tramite l’interfaccia wireguard.
  • Endpoint: l’indirizzo IP e la porta del server wireguard.
  • PersistentKeepalive: invia keepalive ogni x secondi per mantenere la connessione attiva.

Successivamente, esegui il comando wg-quick qui sotto per avviare il wireguard sull’interfaccia wg-alice.

sudo wg-quick up wg-alice

Se tutto va bene, verrà mostrato un output simile a quello seguente.

start wireguard on client

Dopo di che, esegui il comando ip qui sotto per controllare i dettagli dell’interfaccia wg-alice. E dovresti vedere l’interfaccia wg-alice con l’indirizzo IP locale 10.10.0.2.

sudo ip a show wg-alice

check wireguard interface on client

Successivamente, verifica la connessione a Internet della macchina client eseguendo il seguente comando.

ping -c3 10.10.0.1  
ping -c3 1.1.1.1  
ping -c3 duckduckgo.com

Se l’installazione del server wireguard è stata eseguita con successo, riceverai risposta da ciascun server di destinazione come segue:

check ping

Inoltre, puoi anche visualizzare i dettagli delle connessioni tra il server wireguard e il client eseguendo il seguente comando sul server wireguard o sulla macchina client.

wg show

L’output simile a quello seguente verrà visualizzato.

show wireguard connections

Infine, per fermare la connessione wireguard sulla macchina client, esegui il comando wg-quick qui sotto.

sudo wg-quick down wg-alice

stop wireguard on client

Conclusione

Per concludere, hai ora completato l’installazione di Wireguard VPN sul server Debian 12 passo dopo passo. Hai anche configurato una macchina client basata su Debian con Wireguard e ti sei connesso al server Wireguard. Tenendo presente questo, puoi ora aggiungere più client aggiungendo più chiavi Wireguard e configurazioni Peer.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.