Skip to content
Learni
Voir tous les tutoriels
Réseau et Infrastructure

Comment installer et configurer WireGuard en 2026

14 minINTERMEDIATE
Read in English

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.