WireGuard su Debian 12: Installazione e Configurazione con Zero Logging


1. Introduzione

WireGuard è un protocollo VPN moderno, veloce e sicuro che si distingue per la sua semplicità e performance eccezionali. A differenza di soluzioni come OpenVPN o IPSec, WireGuard utilizza una codebase minimale (circa 4.000 righe di codice) che lo rende più facile da verificare dal punto di vista della sicurezza e meno soggetto a vulnerabilità.

In questa guida approfondita vedremo come installare e configurare WireGuard su Debian 12 (Bookworm), con particolare attenzione alla privacy e all’implementazione di una politica di zero logging sul server.

Perché Zero Logging?

Una configurazione con zero logging garantisce che il server VPN non conservi tracce delle attività degli utenti, proteggendo la privacy e riducendo i rischi in caso di compromissione del server o richieste legali.

2. Requisiti preliminari

Hardware e Software

  • Server: VPS o server dedicato con Debian 12 installato
  • Minimo 1GB RAM (consigliati 2GB)
  • 1 CPU core (consigliati 2+)
  • Accesso root o sudo
  • Connessione internet stabile
  • Porta UDP disponibile (default 51820)

Conoscenze richieste

  • Familiarità con la linea di comando Linux
  • Nozioni base di networking (IP, routing, NAT)
  • Comprensione concetti base VPN
Attenzione: Questa guida assume che tu abbia accesso SSH al server e privilegi amministrativi. Assicurati di avere un backup o un metodo alternativo di accesso prima di modificare configurazioni di rete critiche.

3. Installazione WireGuard Server

3.1 Aggiornamento sistema

Prima di procedere, aggiorniamo il sistema:

sudo apt update && sudo apt upgrade -y

3.2 Installazione pacchetti necessari

WireGuard è disponibile nei repository ufficiali di Debian 12:

sudo apt install wireguard wireguard-tools iptables resolvconf -y

3.3 Verifica installazione

Verifichiamo che WireGuard sia installato correttamente:

wg --version
# Output: wireguard-tools v1.0.20210914

Controlliamo anche il modulo kernel:

sudo modprobe wireguard
lsmod | grep wireguard
Nota: A partire dal kernel Linux 5.6+, WireGuard è integrato direttamente nel kernel, quindi non è necessario installare moduli DKMS aggiuntivi su Debian 12.

4. Configurazione WireGuard Server

4.1 Generazione chiavi crittografiche

WireGuard utilizza crittografia a curve ellittiche. Generiamo le chiavi per il server:

# Crea directory per le chiavi
sudo mkdir -p /etc/wireguard
cd /etc/wireguard

# Genera chiave privata e pubblica
umask 077
wg genkey | sudo tee server_privatekey | wg pubkey | sudo tee server_publickey

# Visualizza le chiavi (salvale in luogo sicuro!)
echo "Chiave privata server:"
sudo cat server_privatekey
echo "Chiave pubblica server:"
sudo cat server_publickey
Importante: La chiave privata deve rimanere segreta! Non condividerla mai. La chiave pubblica invece verrà condivisa con i client.

4.2 Identificazione interfaccia di rete

Identifichiamo l’interfaccia di rete principale del server:

ip -o -4 route show to default | awk '{print $5}'

L’output sarà qualcosa come eth0, ens3, o enp0s3. Annota questa informazione, ti servirà.

4.3 Creazione file di configurazione server

Creiamo il file di configurazione principale:

sudo nano /etc/wireguard/wg0.conf

Inseriamo la seguente configurazione (sostituisci i valori tra <>):

[Interface]
# Indirizzo IP privato del server nella rete VPN
Address = 10.200.100.1/24

# Porta UDP di ascolto
ListenPort = 51820

# Chiave privata del server
PrivateKey = <contenuto di server_privatekey>

# Comandi eseguiti all'avvio dell'interfaccia
PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -A FORWARD -o %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Comandi eseguiti alla chiusura dell'interfaccia
PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -D FORWARD -o %i -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# === CONFIGURAZIONE PEER (CLIENT) ===
# Aggiungi un blocco [Peer] per ogni client

[Peer]
# Chiave pubblica del client
PublicKey = <client_publickey>

# IP del client nella rete VPN
AllowedIPs = 10.200.100.2/32
Spiegazione parametri:
  • Address: Indirizzo IP del server nella rete VPN privata
  • ListenPort: Porta UDP su cui il server ascolta
  • PrivateKey: Chiave privata generata precedentemente
  • PostUp/PostDown: Regole iptables per NAT e forwarding
  • %i: Viene sostituito automaticamente con il nome dell’interfaccia (wg0)

Importante: Sostituisci eth0 con la tua interfaccia di rete identificata al punto 4.2.

4.4 Impostazione permessi corretti

sudo chmod 600 /etc/wireguard/wg0.conf
sudo chmod 600 /etc/wireguard/server_privatekey

4.5 Abilitazione IP forwarding

Abilitiamo il forwarding IP permanentemente:

echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

4.6 Avvio del servizio WireGuard

# Avvia l'interfaccia WireGuard
sudo wg-quick up wg0

# Verifica stato
sudo wg show

# Abilita avvio automatico al boot
sudo systemctl enable wg-quick@wg0
Server configurato! Il tuo server WireGuard è ora operativo e in ascolto sulla porta 51820.

5. Configurazione Zero Logging

Per garantire la massima privacy, configuriamo il server per non registrare alcuna attività degli utenti. Questo richiede modifiche a rsyslog e logrotate.

5.1 Configurazione rsyslog

Rsyslog è il sistema di logging predefinito su Debian. Creiamo una configurazione specifica per WireGuard:

sudo nano /etc/rsyslog.d/30-wireguard-nolog.conf

Aggiungiamo le seguenti regole per scartare i log di WireGuard:

# Blocca tutti i log relativi a WireGuard
:msg, contains, "wireguard" stop
:msg, contains, "wg0" stop
:msg, contains, "wg-quick" stop

# Blocca log del kernel relativi a WireGuard
:programname, isequal, "kernel" :msg, contains, "wireguard" stop

# Blocca log di connessioni VPN
:msg, regex, "10\.200\.100\." stop
Attenzione: L’ultima regola blocca tutti i log che contengono IP della rete VPN (10.200.100.x). Modifica questo range se usi una subnet diversa.

Riavviamo rsyslog per applicare le modifiche:

sudo systemctl restart rsyslog
sudo systemctl status rsyslog

5.2 Disabilitazione logging kernel per WireGuard

Possiamo ridurre ulteriormente i log del kernel:

sudo nano /etc/sysctl.d/99-wireguard-nolog.conf

Aggiungiamo:

# Riduce verbosità kernel
kernel.printk = 3 3 3 3

# Disabilita log di conntrack (se non necessario)
net.netfilter.nf_conntrack_log_invalid = 0

Applichiamo:

sudo sysctl -p /etc/sysctl.d/99-wireguard-nolog.conf

5.3 Configurazione logrotate

Configuriamo logrotate per eliminare rapidamente eventuali log residui:

sudo nano /etc/logrotate.d/wireguard

Aggiungiamo:

/var/log/wireguard*.log {
    daily
    rotate 0
    missingok
    notifempty
    sharedscripts
    postrotate
        # Elimina immediatamente il file dopo rotazione
        rm -f /var/log/wireguard*.log* 2> /dev/null || true
    endscript
}

# Pulizia mensile di eventuali log nascosti
/var/log/*wg*.log {
    monthly
    rotate 0
    missingok
    postrotate
        rm -f /var/log/*wg*.log* 2> /dev/null || true
    endscript
}

5.4 Disabilitazione accounting netfilter

Disabilitiamo il connection tracking per il traffico VPN (opzionale, può ridurre performance):

sudo iptables -t raw -A PREROUTING -i wg0 -j NOTRACK
sudo iptables -t raw -A OUTPUT -o wg0 -j NOTRACK

Per rendere persistenti queste regole:

# Installa iptables-persistent
sudo apt install iptables-persistent -y

# Salva regole
sudo netfilter-persistent save

5.5 Pulizia log esistenti

Eliminiamo log esistenti che potrebbero contenere informazioni su WireGuard:

# Backup prima di eliminare (opzionale)
sudo tar -czf /root/logs-backup-$(date +%F).tar.gz /var/log/*.log 2>/dev/null || true

# Ricerca e eliminazione log WireGuard
sudo grep -rl "wireguard\|wg0\|wg-quick" /var/log/ 2>/dev/null | xargs sudo rm -f

# Pulizia journal systemd
sudo journalctl --vacuum-time=1s

5.6 Configurazione journal systemd

Limitiamo anche i log di systemd journal:

sudo nano /etc/systemd/journald.conf

Modifichiamo o aggiungiamo:

[Journal]
Storage=volatile
RuntimeMaxUse=50M
RuntimeMaxFileSize=10M
MaxRetentionSec=3600
ForwardToSyslog=no

Riavviamo il servizio:

sudo systemctl restart systemd-journald

5.7 Script di pulizia automatica

Creiamo uno script per pulizia periodica automatica:

sudo nano /usr/local/bin/wg-cleanup.sh

Contenuto dello script:

#!/bin/bash
# Script di pulizia log WireGuard

# Elimina log contenenti riferimenti a WireGuard
find /var/log -type f -name "*.log" -exec grep -l "wireguard\|wg0\|wg-quick" {} \; -delete 2>/dev/null

# Pulizia journal
journalctl --vacuum-time=1h --quiet

# Pulizia conntrack
conntrack -D -p udp --dport 51820 2>/dev/null || true

# Pulizia history bash per utente wireguard (se esiste)
rm -f /home/wireguard/.bash_history 2>/dev/null || true

echo "$(date): Pulizia completata" >> /var/log/wg-cleanup.log

Rendiamo eseguibile e pianifichiamo con cron:

sudo chmod +x /usr/local/bin/wg-cleanup.sh

# Aggiungi a crontab (ogni ora)
echo "0 * * * * /usr/local/bin/wg-cleanup.sh" | sudo crontab -
Zero Logging configurato! Il server ora mantiene il minimo indispensabile di log operativi, eliminando automaticamente qualsiasi traccia delle attività degli utenti.

6. Ottimizzazioni sysctl.conf

Ottimizziamo le performance e la sicurezza del server attraverso parametri del kernel:

sudo nano /etc/sysctl.d/99-wireguard-optimizations.conf

Aggiungiamo le seguenti ottimizzazioni:

# ========================================
# WIREGUARD OPTIMIZATIONS
# ========================================

# === NETWORKING ===
# IP Forwarding (essenziale per VPN)
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1

# === PERFORMANCE ===
# Aumenta buffer di rete per gestire più traffico
net.core.rmem_default = 262144
net.core.rmem_max = 67108864
net.core.wmem_default = 262144
net.core.wmem_max = 67108864

# Buffer TCP
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864

# Aumenta queue di backlog
net.core.netdev_max_backlog = 5000

# Ottimizzazione MTU discovery
net.ipv4.tcp_mtu_probing = 1

# BBR congestion control (se disponibile kernel 4.9+)
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

# === SICUREZZA ===
# Protezione SYN flood
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_synack_retries = 2

# Protezione IP spoofing
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1

# Ignora ICMP redirect
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0

# Non inviare ICMP redirect
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# Ignora ping broadcast
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Protezione contro bad ICMP messages
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Log martian packets (opzionale, disabilita per zero-log)
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.default.log_martians = 0

# === CONNTRACK (Connection Tracking) ===
# Aumenta limiti conntrack per gestire molti peer
net.netfilter.nf_conntrack_max = 262144

# Timeout più brevi per conntrack
net.netfilter.nf_conntrack_tcp_timeout_established = 3600
net.netfilter.nf_conntrack_udp_timeout = 60
net.netfilter.nf_conntrack_udp_timeout_stream = 120

# Disabilita log conntrack invalid (privacy)
net.netfilter.nf_conntrack_log_invalid = 0

# === IPv6 (se non usato, disabilita) ===
# Decommentare se non si usa IPv6
# net.ipv6.conf.all.disable_ipv6 = 1
# net.ipv6.conf.default.disable_ipv6 = 1

# === KERNEL ===
# Riduce swappiness (meglio per VPN server)
vm.swappiness = 10

# Riduce verbosità kernel (privacy)
kernel.printk = 3 3 3 3

# Protezione kernel pointer
kernel.kptr_restrict = 2

# Disabilita dmesg per utenti non-root
kernel.dmesg_restrict = 1

Applichiamo le modifiche:

sudo sysctl -p /etc/sysctl.d/99-wireguard-optimizations.conf

Verifichiamo che BBR sia attivo (opzionale ma consigliato):

sysctl net.ipv4.tcp_congestion_control
# Output: net.ipv4.tcp_congestion_control = bbr
Nota su BBR: BBR (Bottleneck Bandwidth and Round-trip propagation time) è un algoritmo di controllo della congestione sviluppato da Google che migliora significativamente le performance, specialmente su connessioni con latenza alta.

7. Installazione WireGuard Client

7.1 Client Linux (Debian/Ubuntu)

sudo apt update
sudo apt install wireguard wireguard-tools -y

7.2 Client Windows

Scarica l’installer ufficiale da: https://www.wireguard.com/install/

7.3 Client macOS

Scarica dal Mac App Store cercando “WireGuard” oppure usa Homebrew:

brew install wireguard-tools

7.4 Client Android/iOS

Scarica l’app ufficiale WireGuard da Google Play Store o Apple App Store.

8. Configurazione WireGuard Client

8.1 Generazione chiavi client

Sul client (o sul server per poi copiare), genera le chiavi:

mkdir -p ~/.wireguard
cd ~/.wireguard
umask 077

# Genera chiavi
wg genkey | tee client_privatekey | wg pubkey | tee client_publickey

# Visualizza
cat client_privatekey
cat client_publickey

8.2 Aggiornamento configurazione server

Sul server, aggiungi il peer client alla configurazione:

sudo nano /etc/wireguard/wg0.conf

Aggiungi alla fine del file:

[Peer]
# Nome identificativo (solo commento)
# Cliente: Laptop di Mario

PublicKey = <client_publickey generata al punto 8.1>
AllowedIPs = 10.200.100.2/32

Riavvia WireGuard:

sudo wg-quick down wg0
sudo wg-quick up wg0

8.3 Creazione file configurazione client

Sul client, crea il file di configurazione:

nano ~/.wireguard/wg-client.conf

Contenuto:

[Interface]
# IP del client nella rete VPN
Address = 10.200.100.2/24

# Chiave privata del client
PrivateKey = <contenuto di client_privatekey>

# DNS da usare quando connesso alla VPN
DNS = 1.1.1.1, 8.8.8.8

[Peer]
# Chiave pubblica del server
PublicKey = <server_publickey del punto 4.1>

# IP pubblico e porta del server
Endpoint = TUO_SERVER_IP:51820

# Tutto il traffico passa per VPN
AllowedIPs = 0.0.0.0/0, ::/0

# Mantieni connessione attiva (importante per NAT)
PersistentKeepalive = 25
Spiegazione AllowedIPs:
  • 0.0.0.0/0 = tutto il traffico IPv4 passa per VPN
  • Per tunnel split (solo traffico specifico), usa: 10.200.100.0/24
  • PersistentKeepalive = 25 invia pacchetti ogni 25 secondi per mantenere connessione attraverso NAT

Imposta permessi:

chmod 600 ~/.wireguard/wg-client.conf

8.4 Connessione client

Linux:

# Avvia connessione
sudo wg-quick up ~/.wireguard/wg-client.conf

# Verifica
sudo wg show

# Disconnetti
sudo wg-quick down ~/.wireguard/wg-client.conf

Windows/macOS:

  1. Apri l’applicazione WireGuard
  2. Click su “Import tunnel(s) from file”
  3. Seleziona il file wg-client.conf
  4. Click su “Activate” per connetterti

Android/iOS:

  1. Apri app WireGuard
  2. Tap su “+” e “Create from file or archive”
  3. Seleziona il file .conf oppure scansiona QR code (vedi sotto)

8.5 Generazione QR code per mobile

Per configurare facilmente dispositivi mobili, genera un QR code:

# Installa qrencode
sudo apt install qrencode -y

# Genera QR code
qrencode -t ansiutf8 < ~/.wireguard/wg-client.conf

Scansiona il QR code con l’app WireGuard su mobile.

9. Verifica e Test

9.1 Verifica handshake

Sul server:

sudo wg show wg0

Output atteso:

interface: wg0
  public key: [chiave pubblica server]
  private key: (hidden)
  listening port: 51820

peer: [chiave pubblica client]
  endpoint: [IP client]:random_port
  allowed ips: 10.200.100.2/32
  latest handshake: 30 seconds ago
  transfer: 5.12 MiB received, 12.45 MiB sent
Importante: Se vedi “latest handshake” con un tempo recente, la connessione è attiva!

9.2 Test connettività

Dal client:

# Ping al server VPN
ping 10.200.100.1

# Verifica IP pubblico (dovrebbe essere IP del server)
curl https://api.ipify.org

# Test DNS
nslookup google.com

# Test velocità
curl -o /dev/null http://speedtest.tele2.net/100MB.zip

9.3 Verifica DNS leak

Verifica che non ci siano leak DNS visitando:

  • https://dnsleaktest.com
  • https://ipleak.net

9.4 Test performance

# Installa iperf3 su server e client
sudo apt install iperf3 -y

# Sul server
iperf3 -s

# Sul client
iperf3 -c 10.200.100.1

9.5 Monitoraggio traffico

# Monitoraggio real-time
watch -n 1 sudo wg show wg0

# Statistiche interfaccia
ip -s link show wg0

10. Hardening e Sicurezza

10.1 Firewall con UFW

Configuriamo un firewall semplice con UFW:

# Installa UFW
sudo apt install ufw -y

# Policy default
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Permetti SSH (IMPORTANTE: prima di abilitare!)
sudo ufw allow 22/tcp

# Permetti WireGuard
sudo ufw allow 51820/udp

# Abilita UFW
sudo ufw enable

# Verifica
sudo ufw status verbose

10.2 Firewall con iptables (alternativa avanzata)

#!/bin/bash
# Script firewall avanzato per WireGuard

# Reset
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# Policy default
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Loopback
iptables -A INPUT -i lo -j ACCEPT

# Connessioni stabilite
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# SSH (cambia porta se necessario)
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT

# WireGuard
iptables -A INPUT -p udp --dport 51820 -j ACCEPT

# Forward VPN
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -A FORWARD -o wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# NAT per VPN
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Salva regole
netfilter-persistent save

10.3 Fail2ban per protezione SSH

sudo apt install fail2ban -y

# Configurazione
sudo nano /etc/fail2ban/jail.local

Aggiungi:

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600

Riavvia:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

10.4 Cambio porta SSH

Per ridurre attacchi automatizzati:

sudo nano /etc/ssh/sshd_config

# Cambia:
Port 2222

# Riavvia
sudo systemctl restart sshd

# Aggiorna firewall
sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp

10.5 Rotazione chiavi periodica

Script per rotazione automatica chiavi (da eseguire manualmente):

#!/bin/bash
# /usr/local/bin/wg-rotate-keys.sh

BACKUP_DIR="/root/wireguard-keys-backup"
mkdir -p $BACKUP_DIR

# Backup chiavi correnti
cp /etc/wireguard/server_privatekey "$BACKUP_DIR/server_privatekey.$(date +%F)"
cp /etc/wireguard/server_publickey "$BACKUP_DIR/server_publickey.$(date +%F)"

# Genera nuove chiavi
cd /etc/wireguard
wg genkey | tee server_privatekey.new | wg pubkey > server_publickey.new

echo "Nuove chiavi generate:"
echo "Pubblica: $(cat server_publickey.new)"
echo "Avvisa i client e aggiorna configurazioni!"

10.6 Monitoraggio sicurezza

# Installa rkhunter
sudo apt install rkhunter -y
sudo rkhunter --update
sudo rkhunter --check

# Installa aide (file integrity)
sudo apt install aide -y
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

# Check periodico
sudo aide --check

10.7 Limitazione rate connection

Limita tentativi di connessione per prevenire abuse:

sudo iptables -A INPUT -p udp --dport 51820 -m conntrack --ctstate NEW -m recent --set
sudo iptables -A INPUT -p udp --dport 51820 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 -j DROP

sudo netfilter-persistent save

11. Troubleshooting

11.1 Client non si connette

Problema Causa possibile Soluzione
No handshake Firewall blocca UDP 51820 sudo ufw allow 51820/udp
Endpoint unreachable IP server errato Verifica IP pubblico server con curl ifconfig.me
Handshake avviene ma no internet IP forwarding disabilitato sudo sysctl -w net.ipv4.ip_forward=1
DNS non funziona resolvconf non installato sudo apt install resolvconf

11.2 Comandi diagnostici

# Verifica modulo kernel
lsmod | grep wireguard

# Verifica servizio
sudo systemctl status wg-quick@wg0

# Log sistema
sudo journalctl -u wg-quick@wg0 -n 50

# Test connettività UDP
sudo nc -u -v SERVER_IP 51820

# Verifica routing
ip route show table all

# Test MTU
ping -M do -s 1400 10.200.100.1

# Verifica NAT
sudo iptables -t nat -L -n -v

# Test from server to client
sudo wg show wg0 endpoints
ping <client_vpn_ip>

11.3 Performance scarse

# Verifica MTU ottimale
# Sul client
ping -M do -s 1400 10.200.100.1
# Riduci size fino a trovare MTU massimo senza fragmentazione

# Imposta MTU in configurazione
[Interface]
MTU = 1420

# Verifica CPU usage
top
htop

# Test bandwidth
iperf3 -c 10.200.100.1

11.4 Reset completo configurazione

# Sul server
sudo wg-quick down wg0
sudo rm /etc/wireguard/wg0.conf
sudo rm /etc/wireguard/*key*

# Ricomincia da punto 4.1

11.5 Log debugging temporaneo

Se necessario debug temporaneo (ricorda di rimuovere dopo!):

# Abilita log
sudo nano /etc/rsyslog.d/30-wireguard-nolog.conf
# Commenta tutte le righe con #

sudo systemctl restart rsyslog

# Visualizza log
sudo journalctl -f | grep -i wireguard

# Quando finito, riabilita no-log
sudo nano /etc/rsyslog.d/30-wireguard-nolog.conf
# Rimuovi # dai commenti
sudo systemctl restart rsyslog

12. Conclusioni

Hai ora un server WireGuard VPN completamente funzionante su Debian 12 con una configurazione orientata alla privacy e zero logging. Questa configurazione offre:

  • Performance eccellenti grazie all’efficienza di WireGuard
  • Sicurezza robusta con crittografia moderna
  • Privacy massima con politica zero logging
  • Facilità di gestione grazie alla semplicità di WireGuard
Prossimi passi consigliati:
  • Configura backup automatici delle chiavi
  • Implementa monitoraggio con Prometheus/Grafana
  • Considera setup multi-hop per privacy avanzata
  • Documenta le configurazioni per disaster recovery
  • Testa regolarmente con https://dnsleaktest.com
Manutenzione:
  • Aggiorna regolarmente il sistema: sudo apt update && sudo apt upgrade
  • Monitora lo spazio disco: df -h
  • Verifica connessioni attive: sudo wg show
  • Controlla log sicurezza: sudo fail2ban-client status
  • Testa backup periodicamente

Ricorda: una VPN è solo uno degli strati di una strategia di privacy completa. Combina sempre l’uso della VPN con buone pratiche di sicurezza online.

13. Risorse aggiuntive

Documentazione ufficiale

  • Sito ufficiale WireGuard: https://www.wireguard.com
  • WireGuard Quick Start: https://www.wireguard.com/quickstart/
  • Repository GitHub: https://github.com/WireGuard
  • Mailing list: https://lists.zx2c4.com/mailman/listinfo/wireguard

Tool utili

  • WireGuard Config Generator: https://www.wireguardconfig.com
  • Test DNS Leak: https://dnsleaktest.com
  • Test IP: https://ipleak.net
  • Speedtest: https://www.speedtest.net

Disclaimer: Questa guida è fornita a scopo educativo. L’uso di VPN deve essere conforme alle leggi locali. L’autore non è responsabile per l’uso improprio delle informazioni contenute in questo articolo.

© 2025 – Tutti i diritti riservati