Configuration d’un tunnel WireGuard sous Windows et Linux

Ce tutoriel explique pas à pas comment installer, configurer et sécuriser un tunnel VPN WireGuard entre un serveur Linux et un client (Windows ou Linux)
Introduction
WireGuard est un protocole VPN moderne, léger et rapide.
Il permet d’établir un tunnel chiffré entre un serveur et un ou plusieurs clients, tout en offrant de meilleures performances et une simplicité de configuration comparé à OpenVPN ou IPSec.
Dans ce guide, nous allons configurer un tunnel WireGuard entre un serveur Linux et un client (Linux ou Windows).
Prérequis
- Un serveur Linux (Debian/Ubuntu/CentOS ou équivalent) avec un accès root/SSH
- Un poste client sous Linux ou Windows
- Un accès administrateur sur le client
- Paquets
wireguard-toolsou l’application officielle WireGuard installée
Installation de WireGuard
Sous Linux
Mettre à jour vos paquets et installer WireGuard :
# Debian / Ubuntu
sudo apt update && sudo apt install wireguard -y
# CentOS / RHEL (via EPEL)
sudo yum install epel-release -y
sudo yum install kmod-wireguard wireguard-tools -y
Vérifier que WireGuard est installé :
wg --version
Sous Windows
- Télécharger l’installateur officiel depuis le site WireGuard.
- Installer le logiciel en suivant l’assistant.
- Après installation, vous aurez accès à l’application WireGuard avec une interface graphique.
Génération des clés
Chaque pair (serveur et client) a besoin d’une clé privée et d’une clé publique.
Sur le serveur ou le client Linux :
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
Cela génère deux fichiers :
privatekey→ clé privéepublickey→ clé publique
Sur Windows, utilisez le bouton Generate Keypair dans l’interface WireGuard.
Configuration du serveur
Créer le fichier /etc/wireguard/wg0.conf :
[Interface]
PrivateKey = <clé_privée_du_serveur>
Address = 10.0.0.1/24
ListenPort = 51820
[Peer]
PublicKey = <clé_publique_du_client>
AllowedIPs = 10.0.0.2/32
Activer et démarrer le service :
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
Vérifier :
sudo wg show
Configuration du client
Client Linux
Créer /etc/wireguard/wg0.conf :
[Interface]
PrivateKey = <clé_privée_du_client>
Address = 10.0.0.2/24
[Peer]
PublicKey = <clé_publique_du_serveur>
Endpoint = <IP_du_serveur>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Démarrer le tunnel :
sudo wg-quick up wg0
Client Windows
- Ouvrir l’application WireGuard.
- Cliquer sur Add Tunnel > Add empty tunnel.
- Remplir :
[Interface]
PrivateKey = <clé_privée_du_client>
Address = 10.0.0.2/24
[Peer]
PublicKey = <clé_publique_du_serveur>
Endpoint = <IP_du_serveur>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
- Enregistrer puis activer le tunnel.
Démarrage et test du tunnel
Sur le client, lancer :
ping 10.0.0.1
Sur le serveur :
ping 10.0.0.2
Vérifier aussi la sortie de :
sudo wg show
Sécurisation et bonnes pratiques
- Restreindre les IPs autorisées avec
AllowedIPs - Utiliser un pare-feu (
ufw,iptables) pour limiter l’accès au port WireGuard - Mettre en place un monitoring pour s’assurer que le tunnel reste actif
- Régénérer les clés périodiquement


















