Skip to content
Learni
View all tutorials
Réseau et Infrastructure

Comment installer et configurer WireGuard en 2026

14 minINTERMEDIATE

Introduction

WireGuard est un VPN moderne, simple et performant qui a supplanté OpenVPN dans de nombreux cas d'usage. Sa configuration minimaliste réduit la surface d'attaque tout en offrant des performances excellentes grâce à l'utilisation de ChaCha20 et Curve25519. Ce tutoriel vous guide pas à pas dans le déploiement d'un serveur WireGuard avec plusieurs clients, incluant la configuration réseau et le routage. Vous apprendrez à générer les clés, à créer les fichiers de configuration et à sécuriser le tunnel. L'approche progressive permet de comprendre chaque étape avant d'aller plus loin dans la personnalisation.

Prérequis

  • Serveur Ubuntu 22.04 ou 24.04 avec accès root
  • Connaissances de base en ligne de commande Linux
  • Un domaine ou une IP publique pour le serveur
  • Client Linux, macOS ou Windows pour tester

Installation du paquet WireGuard

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

Cette commande installe le module noyau WireGuard et les outils wg. Sur Ubuntu 22.04+, le module est déjà intégré au noyau, mais les outils sont nécessaires pour gérer les interfaces.

Génération des clés serveur

terminal
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
chmod 600 /etc/wireguard/server_private.key

On génère une paire de clés Curve25519. La clé privée est protégée avec chmod 600 car elle ne doit jamais être exposée.

Création du fichier de configuration serveur

/etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = $(cat /etc/wireguard/server_private.key)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.0.0.2/32

Le fichier wg0.conf définit l'interface serveur. PostUp/PostDown gèrent le NAT pour que les clients accèdent à Internet via le serveur.

Activation et démarrage du service

terminal
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo wg show

wg-quick@wg0 utilise systemd pour charger la configuration et créer l'interface. La commande wg show permet de vérifier que l'interface est active.

Configuration du client

client.conf
[Interface]
Address = 10.0.0.2/24
PrivateKey = CLIENT_PRIVATE_KEY
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = VOTRE_IP:51820
AllowedIPs = 0.0.0.0/0

Le client utilise AllowedIPs = 0.0.0.0/0 pour router tout le trafic via le VPN. Remplacez les variables par vos vraies clés et IP.

Bonnes pratiques

  • Toujours utiliser des clés uniques par client et les révoquer en cas de compromission
  • Restreindre AllowedIPs au minimum nécessaire
  • Activer le pare-feu UFW ou nftables en plus des règles PostUp
  • Sauvegarder les clés privées de manière chiffrée
  • Mettre à jour régulièrement le noyau et wireguard-tools

Erreurs courantes à éviter

  • Oublier d'activer le forwarding IPv4 dans sysctl
  • Utiliser la même clé privée sur plusieurs appareils
  • Négliger la configuration DNS côté client
  • Ne pas ouvrir le port UDP 51820 sur le pare-feu du serveur

Pour aller plus loin

Pour approfondir la configuration avancée de WireGuard, découvrez nos formations Learni.