WireGuard sur Debian 12 : Installation et configuration avec Zero Logging

1. Introduction

WireGuard est un protocole VPN moderne, rapide et sûr, qui se distingue par sa simplicité et ses performances exceptionnelles. Contrairement à des solutions comme OpenVPN ou IPSec, WireGuard utilise une base de code minimaliste (environ 4 000 lignes de code) qui le rend plus facile à auditer du point de vue de la sécurité et moins exposé aux vulnérabilités.

Dans ce guide approfondi, nous verrons comment installer et configurer WireGuard sur Debian 12 (Bookworm), avec une attention particulière à la vie privée et à la mise en place d’une politique de zero logging côté serveur.

Pourquoi le Zero Logging ?

Une configuration zero logging garantit que le serveur VPN ne conserve aucune trace des activités des utilisateurs, ce qui protège la vie privée et réduit les risques en cas de compromission du serveur ou de requêtes légales.

2. Prérequis

Matériel et logiciel

  • Serveur : VPS ou serveur dédié avec Debian 12 installé
  • Minimum 1 Go de RAM (2 Go conseillés)
  • 1 cœur CPU (2+ conseillés)
  • Accès root ou sudo
  • Connexion Internet stable
  • Port UDP disponible (par défaut 51820)

Connaissances requises

  • Familiarité avec la ligne de commande Linux
  • Notions de base de réseau (IP, routing, NAT)
  • Compréhension des concepts de base d’un VPN

Attention : ce guide suppose que vous avez un accès SSH au serveur et des privilèges administratifs. Assurez-vous d’avoir une sauvegarde ou une méthode d’accès alternative avant de modifier des configurations réseau critiques.

3. Installation du serveur WireGuard

3.1 Mise à jour du système

Avant de procéder, mettons à jour le système :

sudo apt update && sudo apt upgrade -y

3.2 Installation des paquets nécessaires

WireGuard est disponible dans les dépôts officiels de Debian 12 :

sudo apt install wireguard wireguard-tools iptables resolvconf -y

3.3 Vérification de l’installation

Vérifions que WireGuard est correctement installé :

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

Contrôlons aussi le module du noyau :

sudo modprobe wireguard
lsmod | grep wireguard

Note : à partir du noyau Linux 5.6+, WireGuard est intégré directement dans le noyau, il n’est donc pas nécessaire d’installer de modules DKMS supplémentaires sur Debian 12.

4. Configuration du serveur WireGuard

4.1 Génération des clés cryptographiques

WireGuard utilise de la cryptographie à courbes elliptiques. Générons les clés pour le serveur :

# Crée le répertoire pour les clés
sudo mkdir -p /etc/wireguard
cd /etc/wireguard

# Génère clé privée et clé publique
umask 077
wg genkey | sudo tee server_privatekey | wg pubkey | sudo tee server_publickey

# Affiche les clés (à conserver en lieu sûr !)
echo "Clé privée serveur :"
sudo cat server_privatekey
echo "Clé publique serveur :"
sudo cat server_publickey

Important : la clé privée doit rester secrète ! Ne la partagez jamais. La clé publique sera en revanche partagée avec les clients.

4.2 Identification de l’interface réseau

Identifions l’interface réseau principale du serveur :

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

La sortie sera quelque chose comme eth0, ens3 ou enp0s3. Notez cette information, vous en aurez besoin.

4.3 Création du fichier de configuration du serveur

Créons le fichier de configuration principal :

sudo nano /etc/wireguard/wg0.conf

Insérons la configuration suivante (remplacez les valeurs entre <>) :

[Interface]
# Adresse IP privée du serveur dans le réseau VPN
Address = 10.200.100.1/24

# Port UDP d’écoute
ListenPort = 51820

# Clé privée du serveur
PrivateKey = <contenu de server_privatekey>

# Commandes exécutées au démarrage de l’interface
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

# Commandes exécutées à la fermeture de l’interface
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

# === CONFIGURATION PEER (CLIENT) ===
# Ajoutez un bloc [Peer] pour chaque client

[Peer]
# Clé publique du client
PublicKey = <client_publickey>

# IP du client dans le réseau VPN
AllowedIPs = 10.200.100.2/32

Explication des paramètres :

  • Address : adresse IP du serveur dans le réseau VPN privé
  • ListenPort : port UDP sur lequel le serveur écoute
  • PrivateKey : clé privée générée précédemment
  • PostUp/PostDown : règles iptables pour NAT et forwarding
  • %i : est remplacé automatiquement par le nom de l’interface (wg0)

Important : remplacez eth0 par l’interface réseau identifiée au point 4.2.

4.4 Permissions correctes

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

4.5 Activation de l’IP forwarding

Activons le forwarding IP de manière permanente :

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 Démarrage du service WireGuard

# Démarre l’interface WireGuard
sudo wg-quick up wg0

# Vérifie l’état
sudo wg show

# Active le démarrage automatique au boot
sudo systemctl enable wg-quick@wg0

Serveur configuré ! Votre serveur WireGuard est désormais opérationnel et à l’écoute sur le port 51820.

5. Configuration du Zero Logging

Pour garantir un maximum de vie privée, configurons le serveur pour qu’il n’enregistre aucune activité des utilisateurs. Cela demande des modifications de rsyslog et logrotate.

5.1 Configuration de rsyslog

Rsyslog est le système de logging par défaut sur Debian. Créons une configuration spécifique pour WireGuard :

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

Ajoutons les règles suivantes pour ignorer les logs de WireGuard :

# Bloque tous les logs liés à WireGuard
:msg, contains, "wireguard" stop
:msg, contains, "wg0" stop
:msg, contains, "wg-quick" stop

# Bloque les logs noyau liés à WireGuard
:programname, isequal, "kernel" :msg, contains, "wireguard" stop

# Bloque les logs de connexions VPN
:msg, regex, "10.200.100." stop

Attention : la dernière règle bloque tous les logs qui contiennent des IP du réseau VPN (10.200.100.x). Modifiez ce range si vous utilisez un autre sous-réseau.

Redémarrons rsyslog pour appliquer les modifications :

sudo systemctl restart rsyslog
sudo systemctl status rsyslog

5.2 Désactivation du logging noyau pour WireGuard

Nous pouvons réduire encore les logs du noyau :

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

Ajoutons :

# Réduit la verbosité du noyau
kernel.printk = 3 3 3 3

# Désactive les logs conntrack (si non nécessaire)
net.netfilter.nf_conntrack_log_invalid = 0

Appliquons :

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

5.3 Configuration de logrotate

Configurons logrotate pour supprimer rapidement les éventuels logs résiduels :

sudo nano /etc/logrotate.d/wireguard

Ajoutons :

/var/log/wireguard*.log {
    daily
    rotate 0
    missingok
    notifempty
    sharedscripts
    postrotate
        # Supprime immédiatement le fichier après rotation
        rm -f /var/log/wireguard*.log* 2> /dev/null || true
    endscript
}

# Nettoyage mensuel d’éventuels logs cachés
/var/log/*wg*.log {
    monthly
    rotate 0
    missingok
    postrotate
        rm -f /var/log/*wg*.log* 2> /dev/null || true
    endscript
}

5.4 Désactivation du conntrack accounting

Désactivons le connection tracking pour le trafic VPN (optionnel, peut réduire les performances) :

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

Pour rendre ces règles persistantes :

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

# Sauvegarder les règles
sudo netfilter-persistent save

5.5 Nettoyage des logs existants

Supprimons les logs existants qui pourraient contenir des informations sur WireGuard :

# Sauvegarde avant suppression (optionnel)
sudo tar -czf /root/logs-backup-$(date +%F).tar.gz /var/log/*.log 2>/dev/null || true

# Recherche et suppression des logs WireGuard
sudo grep -rl "wireguard\|wg0\|wg-quick" /var/log/ 2>/dev/null | xargs sudo rm -f

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

5.6 Configuration du journal systemd

Limitons aussi les logs du journal systemd :

sudo nano /etc/systemd/journald.conf

Modifions ou ajoutons :

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

Redémarrons le service :

sudo systemctl restart systemd-journald

5.7 Script de nettoyage automatique

Créons un script pour un nettoyage périodique automatique :

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

Contenu du script :

#!/bin/bash
# Script de nettoyage des logs WireGuard

# Supprime les logs contenant des références à WireGuard
find /var/log -type f -name "*.log" -exec grep -l "wireguard\|wg0\|wg-quick" {} \; -delete 2>/dev/null

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

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

# Nettoyage history bash pour utilisateur wireguard (s’il existe)
rm -f /home/wireguard/.bash_history 2>/dev/null || true

echo "$(date) : nettoyage terminé" >> /var/log/wg-cleanup.log

Rendons-le exécutable et planifions-le avec cron :

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

# Ajout à crontab (toutes les heures)
echo "0 * * * * /usr/local/bin/wg-cleanup.sh" | sudo crontab -

Zero Logging configuré ! Le serveur ne conserve désormais que le strict minimum de logs opérationnels et supprime automatiquement toute trace des activités des utilisateurs.

6. Optimisations sysctl.conf

Optimisons les performances et la sécurité du serveur via des paramètres du noyau :

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

Ajoutons les optimisations suivantes :

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

# === NETWORKING ===
# IP Forwarding (essentiel pour le VPN)
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1

# === PERFORMANCE ===
# Augmente les buffers réseau pour gérer plus de trafic
net.core.rmem_default = 262144
net.core.rmem_max = 67108864
net.core.wmem_default = 262144
net.core.wmem_max = 67108864

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

# Augmente le backlog
net.core.netdev_max_backlog = 5000

# Optimisation MTU discovery
net.ipv4.tcp_mtu_probing = 1

# BBR congestion control (si noyau 4.9+ disponible)
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

# === SÉCURITÉ ===
# Protection SYN flood
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_synack_retries = 2

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

# Ignore les 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

# N’envoie pas d’ICMP redirect
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# Ignore les ping broadcast
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Protection contre les bad ICMP messages
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Log martian packets (optionnel, désactiver pour zero-log)
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.default.log_martians = 0

# === CONNTRACK (Connection Tracking) ===
# Augmente les limites conntrack pour gérer beaucoup de peers
net.netfilter.nf_conntrack_max = 262144

# Timeouts plus courts pour conntrack
net.netfilter.nf_conntrack_tcp_timeout_established = 3600
net.netfilter.nf_conntrack_udp_timeout = 60
net.netfilter.nf_conntrack_udp_timeout_stream = 120

# Désactive le log conntrack invalid (vie privée)
net.netfilter.nf_conntrack_log_invalid = 0

# === IPv6 (si non utilisé, désactiver) ===
# Décommenter si on n’utilise pas IPv6
# net.ipv6.conf.all.disable_ipv6 = 1
# net.ipv6.conf.default.disable_ipv6 = 1

# === NOYAU ===
# Réduit le swappiness (mieux pour un serveur VPN)
vm.swappiness = 10

# Réduit la verbosité du noyau (vie privée)
kernel.printk = 3 3 3 3

# Protection kernel pointer
kernel.kptr_restrict = 2

# Désactive dmesg pour les utilisateurs non-root
kernel.dmesg_restrict = 1

Appliquons les modifications :

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

Vérifions que BBR est actif (optionnel mais conseillé) :

sysctl net.ipv4.tcp_congestion_control
# Sortie : net.ipv4.tcp_congestion_control = bbr

Note sur BBR : BBR (Bottleneck Bandwidth and Round-trip propagation time) est un algorithme de contrôle de congestion développé par Google qui améliore significativement les performances, notamment sur les connexions à forte latence.

7. Installation du client WireGuard

7.1 Client Linux (Debian/Ubuntu)

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

7.2 Client Windows

Téléchargez l’installeur officiel depuis : https://www.wireguard.com/install/

7.3 Client macOS

Téléchargez depuis le Mac App Store en cherchant « WireGuard », ou via Homebrew :

brew install wireguard-tools

7.4 Client Android/iOS

Téléchargez l’application officielle WireGuard depuis Google Play Store ou Apple App Store.

8. Configuration du client WireGuard

8.1 Génération des clés client

Sur le client (ou sur le serveur, à copier ensuite), générez les clés :

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

# Génère les clés
wg genkey | tee client_privatekey | wg pubkey | tee client_publickey

# Affichage
cat client_privatekey
cat client_publickey

8.2 Mise à jour de la configuration serveur

Sur le serveur, ajoutez le peer client à la configuration :

sudo nano /etc/wireguard/wg0.conf

Ajoutez à la fin du fichier :

[Peer]
# Nom identifiant (commentaire uniquement)
# Client : Laptop de Mario

PublicKey = <client_publickey générée au point 8.1>
AllowedIPs = 10.200.100.2/32

Redémarrez WireGuard :

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

8.3 Création du fichier de configuration client

Sur le client, créez le fichier de configuration :

nano ~/.wireguard/wg-client.conf

Contenu :

[Interface]
# IP du client dans le réseau VPN
Address = 10.200.100.2/24

# Clé privée du client
PrivateKey = <contenu de client_privatekey>

# DNS à utiliser quand connecté au VPN
DNS = 1.1.1.1, 8.8.8.8

[Peer]
# Clé publique du serveur
PublicKey = <server_publickey du point 4.1>

# IP publique et port du serveur
Endpoint = VOTRE_SERVER_IP:51820

# Tout le trafic passe par le VPN
AllowedIPs = 0.0.0.0/0, ::/0

# Maintien de la connexion active (important pour le NAT)
PersistentKeepalive = 25

Explication AllowedIPs :

  • 0.0.0.0/0 = tout le trafic IPv4 passe par le VPN
  • Pour un split tunnel (seulement le trafic spécifique), utilisez : 10.200.100.0/24
  • PersistentKeepalive = 25 envoie des paquets toutes les 25 secondes pour maintenir la connexion à travers le NAT

Définir les permissions :

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

8.4 Connexion client

Linux :

# Démarre la connexion
sudo wg-quick up ~/.wireguard/wg-client.conf

# Vérification
sudo wg show

# Déconnexion
sudo wg-quick down ~/.wireguard/wg-client.conf

Windows/macOS :

  1. Ouvrez l’application WireGuard
  2. Cliquez sur « Import tunnel(s) from file »
  3. Sélectionnez le fichier wg-client.conf
  4. Cliquez sur « Activate » pour vous connecter

Android/iOS :

  1. Ouvrez l’application WireGuard
  2. Tap sur « + » puis « Create from file or archive »
  3. Sélectionnez le fichier .conf ou scannez un QR code (voir ci-dessous)

8.5 Génération d’un QR code pour mobile

Pour configurer facilement des appareils mobiles, générez un QR code :

# Installer qrencode
sudo apt install qrencode -y

# Générer le QR code
qrencode -t ansiutf8 < ~/.wireguard/wg-client.conf

Scannez le QR code avec l’application WireGuard sur mobile.

9. Vérification et tests

9.1 Vérification du handshake

Sur le serveur :

sudo wg show wg0

Sortie attendue :

interface: wg0
  public key: [clé publique serveur]
  private key: (hidden)
  listening port: 51820

peer: [clé publique 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

Important : si vous voyez « latest handshake » avec un horodatage récent, la connexion est active !

9.2 Test de connectivité

Depuis le client :

# Ping vers le serveur VPN
ping 10.200.100.1

# Vérification de l’IP publique (doit être l’IP du serveur)
curl https://api.ipify.org

# Test DNS
nslookup google.com

# Test débit
curl -o /dev/null http://speedtest.tele2.net/100MB.zip

9.3 Vérification des DNS leak

Vérifiez qu’il n’y a pas de fuite DNS en visitant :

9.4 Test de performance

# Installer iperf3 sur serveur et client
sudo apt install iperf3 -y

# Sur le serveur
iperf3 -s

# Sur le client
iperf3 -c 10.200.100.1

9.5 Monitoring du trafic

# Monitoring en temps réel
watch -n 1 sudo wg show wg0

# Statistiques d’interface
ip -s link show wg0

10. Hardening et sécurité

10.1 Pare-feu avec UFW

Configurons un pare-feu simple avec UFW :

# Installer UFW
sudo apt install ufw -y

# Politiques par défaut
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Autoriser SSH (IMPORTANT : avant d’activer !)
sudo ufw allow 22/tcp

# Autoriser WireGuard
sudo ufw allow 51820/udp

# Activer UFW
sudo ufw enable

# Vérification
sudo ufw status verbose

10.2 Pare-feu avec iptables (alternative avancée)

#!/bin/bash
# Script firewall avancé pour WireGuard

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

# Politiques par défaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

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

# Connexions établies
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# SSH (changer le port si nécessaire)
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 pour VPN
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Sauvegarder les règles
netfilter-persistent save

10.3 Fail2ban pour la protection SSH

sudo apt install fail2ban -y

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

Ajoutez :

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

Redémarrer :

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

10.4 Changement du port SSH

Pour réduire les attaques automatisées :

sudo nano /etc/ssh/sshd_config

# Modifier :
Port 2222

# Redémarrer
sudo systemctl restart sshd

# Mettre à jour le firewall
sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp

10.5 Rotation périodique des clés

Script pour la rotation automatique des clés (à exécuter manuellement) :

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

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

# Sauvegarde des clés actuelles
cp /etc/wireguard/server_privatekey "$BACKUP_DIR/server_privatekey.$(date +%F)"
cp /etc/wireguard/server_publickey "$BACKUP_DIR/server_publickey.$(date +%F)"

# Génère les nouvelles clés
cd /etc/wireguard
wg genkey | tee server_privatekey.new | wg pubkey > server_publickey.new

echo "Nouvelles clés générées :"
echo "Publique : $(cat server_publickey.new)"
echo "Prévenez les clients et mettez à jour leurs configurations !"

10.6 Monitoring de sécurité

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

# Installer aide (intégrité des fichiers)
sudo apt install aide -y
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

# Contrôle périodique
sudo aide --check

10.7 Limitation du rate de connexion

Limitez les tentatives de connexion pour prévenir les abus :

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 Le client ne se connecte pas

ProblèmeCause possibleSolution
Pas de handshakePare-feu bloque l’UDP 51820sudo ufw allow 51820/udp
Endpoint unreachableIP serveur erronéeVérifier l’IP publique du serveur avec curl ifconfig.me
Handshake OK mais pas d’InternetIP forwarding désactivésudo sysctl -w net.ipv4.ip_forward=1
DNS ne fonctionne pasresolvconf non installésudo apt install resolvconf

11.2 Commandes de diagnostic

# Vérifier le module noyau
lsmod | grep wireguard

# Vérifier le service
sudo systemctl status wg-quick@wg0

# Logs système
sudo journalctl -u wg-quick@wg0 -n 50

# Test de connectivité UDP
sudo nc -u -v SERVER_IP 51820

# Vérification du routing
ip route show table all

# Test MTU
ping -M do -s 1400 10.200.100.1

# Vérification du NAT
sudo iptables -t nat -L -n -v

# Test du serveur vers le client
sudo wg show wg0 endpoints
ping <client_vpn_ip>

11.3 Performances faibles

# Vérifier le MTU optimal
# Sur le client
ping -M do -s 1400 10.200.100.1
# Réduisez la taille jusqu’à trouver le MTU max sans fragmentation

# Imposer le MTU dans la configuration
[Interface]
MTU = 1420

# Vérifier l’usage CPU
top
htop

# Test bande passante
iperf3 -c 10.200.100.1

11.4 Reset complet de la configuration

# Sur le serveur
sudo wg-quick down wg0
sudo rm /etc/wireguard/wg0.conf
sudo rm /etc/wireguard/*key*

# Reprenez à partir du point 4.1

11.5 Logs de debug temporaires

Si vous avez besoin d’un debug temporaire (pensez à le supprimer après !) :

# Activer les logs
sudo nano /etc/rsyslog.d/30-wireguard-nolog.conf
# Commentez toutes les lignes avec #

sudo systemctl restart rsyslog

# Afficher les logs
sudo journalctl -f | grep -i wireguard

# Une fois terminé, réactivez le no-log
sudo nano /etc/rsyslog.d/30-wireguard-nolog.conf
# Retirez les # des commentaires
sudo systemctl restart rsyslog

12. Conclusion

Vous disposez maintenant d’un serveur WireGuard VPN pleinement fonctionnel sur Debian 12, avec une configuration orientée vie privée et zero logging. Cette configuration offre :

  • Excellentes performances grâce à l’efficacité de WireGuard
  • Sécurité robuste avec une cryptographie moderne
  • Vie privée maximale grâce à la politique zero logging
  • Facilité de gestion grâce à la simplicité de WireGuard

Prochaines étapes conseillées :

  • Configurez des sauvegardes automatiques des clés
  • Mettez en place un monitoring avec Prometheus/Grafana
  • Envisagez un setup multi-hop pour une vie privée avancée
  • Documentez les configurations pour le disaster recovery
  • Testez régulièrement avec https://dnsleaktest.com

Maintenance :

  • Mettez à jour le système régulièrement : sudo apt update && sudo apt upgrade
  • Surveillez l’espace disque : df -h
  • Vérifiez les connexions actives : sudo wg show
  • Contrôlez les logs de sécurité : sudo fail2ban-client status
  • Testez périodiquement les sauvegardes

Rappelez-vous : un VPN n’est qu’une des couches d’une stratégie de vie privée complète. Combinez toujours l’usage du VPN avec de bonnes pratiques de sécurité en ligne.

13. Ressources supplémentaires

Documentation officielle

Outils utiles