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 :
- Ouvrez l’application WireGuard
- Cliquez sur « Import tunnel(s) from file »
- Sélectionnez le fichier
wg-client.conf - Cliquez sur « Activate » pour vous connecter
Android/iOS :
- Ouvrez l’application WireGuard
- Tap sur « + » puis « Create from file or archive »
- Sélectionnez le fichier
.confou 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ème | Cause possible | Solution |
|---|---|---|
| Pas de handshake | Pare-feu bloque l’UDP 51820 | sudo ufw allow 51820/udp |
| Endpoint unreachable | IP serveur erronée | Vérifier l’IP publique du serveur avec curl ifconfig.me |
| Handshake OK mais pas d’Internet | IP forwarding désactivé | sudo sysctl -w net.ipv4.ip_forward=1 |
| DNS ne fonctionne pas | resolvconf 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
- Site officiel WireGuard : https://www.wireguard.com
- WireGuard Quick Start : https://www.wireguard.com/quickstart/
- Dépôt GitHub : https://github.com/WireGuard
- Mailing list : https://lists.zx2c4.com/mailman/listinfo/wireguard
Outils utiles
- WireGuard Config Generator : https://www.wireguardconfig.com
- Test DNS Leak : https://dnsleaktest.com
- Test IP : https://ipleak.net
- Speedtest : https://www.speedtest.net