Salta al contenuto principale

WireGuard: un protocollo VPN moderno, veloce e sicuro

wireguard

WireGuard è una tecnologia di rete che implementa una VPN (Virtual Private Network) moderna, leggera e sicura.
In pratica, è un protocollo e un software che permette di creare una connessione privata e cifrata tra due o più computer, come se fossero collegati alla stessa rete locale, anche se si trovano in luoghi diversi.

Caratteristiche principali di WireGuard:

  • Sicurezza elevata → utilizza algoritmi crittografici moderni e più sicuri rispetto a protocolli più datati come IPsec o OpenVPN.

  • Velocità e leggerezza → il codice è molto compatto (qualche migliaio di righe), facile da revisionare e ottimizzato per performance migliori.

  • Semplicità → la configurazione è più immediata rispetto a molte altre VPN: si basa su coppie di chiavi pubbliche/private, simili a SSH.

  • Portabilità → funziona su Linux, Windows, macOS, Android, iOS e anche su router e sistemi embedded.

  • Integrazione nel kernel Linux → è incluso direttamente nel kernel Linux, garantendo alte prestazioni e basso consumo di risorse.

A cosa serve WireGuard:

  • VPN personale → per collegare in modo sicuro il proprio PC o smartphone alla rete di casa o del lavoro.

  • Accesso remoto → per raggiungere server, NAS o dispositivi della propria rete privata da ovunque nel mondo.

  • Reti aziendali → per interconnettere sedi diverse in modo sicuro e veloce.

  • Privacy e anonimato → nascondere il proprio traffico a provider o reti Wi-Fi pubbliche, come fanno i servizi VPN commerciali.

  • Uso in cloud e container → per collegare in sicurezza macchine virtuali o container distribuiti su diversi data center.

In sintesi: WireGuard è un protocollo VPN moderno, veloce e sicuro, che permette di creare connessioni cifrate tra dispositivi e reti.


Di seguito installazione su Gnu/Linux e Windows


WireGuard su Debian 12

Installazione

Su entrambi (server e client):

sudo apt update
sudo apt install wireguard -y
 

Generazione delle chiavi

Ogni dispositivo deve avere una coppia di chiavi privata e pubblica.

Esempio sul server:

wg genkey | tee server_private.key | wg pubkey > server_public.key

Sul client:

wg genkey | tee client_private.key | wg pubkey > client_public.key

Adesso hai 4 file in totale (2 sul server, 2 sul client).
Le chiavi pubbliche vanno scambiate tra server e client, le private restano segrete.


Configurazione del server

File: /etc/wireguard/wg0.conf

[Interface]
Address = 10.0.0.1/24
PrivateKey = <CHIAVE_PRIVATA_SERVER>
ListenPort = 51820

[Peer]
PublicKey = <CHIAVE_PUBBLICA_CLIENT>
AllowedIPs = 10.0.0.2/32

Configurazione del client

File: /etc/wireguard/wg0.conf

[Interface]
Address = 10.0.0.2/24
PrivateKey = <CHIAVE_PRIVATA_CLIENT>

[Peer]
PublicKey = <CHIAVE_PUBBLICA_SERVER>
Endpoint = <IP_PUBBLICO_SERVER>:51820
AllowedIPs = 0.0.0.0/0, ::/0

Avvio del tunnel

Sul server:

sudo wg-quick up wg0

Sul client:

sudo wg-quick up wg0

Per rendere WireGuard automatico all’avvio:

sudo systemctl enable wg-quick@wg0
 


Verifica

Su entrambi:

sudo wg

Vedrai informazioni sullo stato della connessione, pacchetti inviati/ricevuti, peer collegati.

Puoi anche provare un ping:

ping 10.0.0.1   # dal client verso il server
ping 10.0.0.2   # dal server verso il client

Questo è il setup base. Da qui puoi espandere:

  • Aggiungere più client (basta generare nuove coppie di chiavi).

  • Usare la VPN per accedere solo a certe reti (modificando AllowedIPs).

  • Configurare il server come gateway per uscire su Internet.


Per gestire più client con WireGuard (multiutente)

1. Genera nuove chiavi per ogni client

Ogni client deve avere la sua coppia chiave privata/pubblica.
Sul client 2 (o sul server, poi copi):

wg genkey | tee client2_private.key | wg pubkey > client2_public.key

Ora hai:

  • client2_private.key → resta sul client

  • client2_public.key → va copiato sul server

2. Configura il server per più client

Apri il file /etc/wireguard/wg0.conf sul server e aggiungi una sezione [Peer] per ogni nuovo client.

Esempio con 2 client:

[Interface]
Address = 10.0.0.1/24
PrivateKey = <CHIAVE_PRIVATA_SERVER>
ListenPort = 51820

# Client 1
[Peer]
PublicKey = <CHIAVE_PUBBLICA_CLIENT1>
AllowedIPs = 10.0.0.2/32

# Client 2
[Peer]
PublicKey = <CHIAVE_PUBBLICA_CLIENT2>
AllowedIPs = 10.0.0.3/32

NOTA: Ogni client deve avere un IP diverso (nel range 10.0.0.x/24).


3. Configura i client

Su client1, /etc/wireguard/wg0.conf:

[Interface]
Address = 10.0.0.2/24
PrivateKey = <CHIAVE_PRIVATA_CLIENT1>

[Peer]
PublicKey = <CHIAVE_PUBBLICA_SERVER>
Endpoint = <IP_PUBBLICO_SERVER>:51820
AllowedIPs = 0.0.0.0/0, ::/0

Su client2, /etc/wireguard/wg0.conf:

[Interface]
Address = 10.0.0.3/24
PrivateKey = <CHIAVE_PRIVATA_CLIENT2>

[Peer]
PublicKey = <CHIAVE_PUBBLICA_SERVER>
Endpoint = <IP_PUBBLICO_SERVER>:51820
AllowedIPs = 0.0.0.0/0, ::/0

4. Avvio e test

Sul server:

sudo systemctl restart wg-quick@wg0

Su ciascun client:

sudo wg-quick up wg0

Verifica:

sudo wg

Vedrai entrambi i peer collegati.

Puoi testare con:

ping 10.0.0.1   # dal client verso il server
ping 10.0.0.2   # da client2 verso client1

5. Aggiungere altri client

Per ogni nuovo client:

  1. Genera chiavi.

  2. Aggiungi [Peer] sul server.

  3. Configura il file wg0.conf sul client con un IP unico.


💡 Consiglio pratico: se devi gestire tanti client, puoi usare uno script o un tool come wg-gen-web o wireguard-manager, che automatizzano la generazione delle chiavi e i file di configurazione.


WireGuard su Windows

Molti pensano che le VPN open source siano riservate a chi utilizza Linux. In realtà, grazie a WireGuard, chiunque può creare connessioni sicure e veloci anche da Windows, senza dover ricorrere a soluzioni proprietarie e spesso poco trasparenti.

🔒 Cos’è WireGuard?

WireGuard è un protocollo e un software VPN moderno, progettato per essere:

  • Sicuro → utilizza crittografia avanzata con algoritmi all’avanguardia.

  • Veloce → integrato direttamente nel kernel Linux, ma ottimizzato anche per Windows e altri sistemi.

  • Semplice → bastano pochi passaggi per configurarlo.

  • Open Source → il codice è pubblico, verificabile e mantenuto dalla comunità.

In poche parole, WireGuard permette di creare un “tunnel” sicuro tra il proprio PC e un server, come se fossero collegati alla stessa rete locale, anche a chilometri di distanza.


🖥️ Installare WireGuard su Windows

WireGuard ha un client ufficiale per Windows, gratuito e open source.

  1. Vai sul sito ufficiale: https://www.wireguard.com/install/

  2. Scarica la versione per Windows.

  3. Installa l’applicazione come un normale programma.

Dopo l’installazione troverai l’icona di WireGuard nel menu Start.


⚙️ Configurazione base su Windows

WireGuard utilizza file di configurazione molto semplici, con estensione .conf.
Questi file contengono:

La tua chiave privata (generata dal client).

L’indirizzo interno VPN che userai (es. 10.0.0.2).

La chiave pubblica del server e il suo indirizzo IP.

Un esempio di configurazione client (Windows):
[Interface]
PrivateKey = <chiave_privata_client>
Address = 10.0.0.2/24

[Peer]
PublicKey = <chiave_pubblica_server>
Endpoint = <IP_PUBBLICO_SERVER>:51820
AllowedIPs = 0.0.0.0/0

👉 Puoi importare questo file direttamente nell’app WireGuard su Windows cliccando su “Add Tunnel” → “Add empty tunnel” o “Import from file”.


🚀 Avviare la connessione

Una volta importato il file .conf, basta selezionare il tunnel e cliccare su Activate.
Da quel momento tutto il tuo traffico passerà attraverso la VPN, in modo sicuro e cifrato.

Puoi verificare la connessione aprendo il prompt dei comandi e provando un ping all’indirizzo interno del server:

ping 10.0.0.1

🌍 Perché scegliere WireGuard su Windows?

  • È gratuito e open source → non ci sono costi nascosti né log delle tue attività.

  • È compatibile con Linux, macOS, Android e iOS → perfetto se vuoi collegare più dispositivi.

  • È veloce → WireGuard è più leggero di OpenVPN e IPSec.

  • È trasparente → sai esattamente cosa installi e come funziona.


✅ Conclusione

WireGuard non è solo un progetto per smanettoni Linux: è uno strumento alla portata di tutti.
Con pochi clic anche gli utenti Windows possono proteggere la propria connessione, navigare in sicurezza su reti pubbliche e accedere in modo sicuro alle proprie risorse di lavoro o di casa.

Se usi Windows ma credi nell’open source, WireGuard è la soluzione perfetta per avere una VPN sicura, veloce e libera.