Configuration d’un tunnel WireGuard sous Windows et Linux
Published on September 23, 2025 at 11:24 PM

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-tools` ou l’application officielle WireGuard installée
---
## Installation de WireGuard
### Sous Linux
Mettre à jour vos paquets et installer WireGuard :
```bash
# 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é :
```bash
wg --version
```
### Sous Windows
1. Télécharger l’installateur officiel depuis [le site WireGuard](https://www.wireguard.com/install/).
2. Installer le logiciel en suivant l’assistant.
3. 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 :
```bash
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
```
Cela génère deux fichiers :
- `privatekey` → clé privée
- `publickey` → clé publique
Sur Windows, utilisez le bouton **Generate Keypair** dans l’interface WireGuard.
---
## Configuration du serveur
Créer le fichier `/etc/wireguard/wg0.conf` :
```ini
[Interface]
PrivateKey =
Address = 10.0.0.1/24
ListenPort = 51820
[Peer]
PublicKey =
AllowedIPs = 10.0.0.2/32
```
Activer et démarrer le service :
```bash
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
```
Vérifier :
```bash
sudo wg show
```
---
## Configuration du client
### Client Linux
Créer `/etc/wireguard/wg0.conf` :
```ini
[Interface]
PrivateKey =
Address = 10.0.0.2/24
[Peer]
PublicKey =
Endpoint = :51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
```
Démarrer le tunnel :
```bash
sudo wg-quick up wg0
```
### Client Windows
1. Ouvrir l’application **WireGuard**.
2. Cliquer sur **Add Tunnel > Add empty tunnel**.
3. Remplir :
```ini
[Interface]
PrivateKey =
Address = 10.0.0.2/24
[Peer]
PublicKey =
Endpoint = :51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
```
4. Enregistrer puis activer le tunnel.
---
## Démarrage et test du tunnel
Sur le client, lancer :
```bash
ping 10.0.0.1
```
Sur le serveur :
```bash
ping 10.0.0.2
```
Vérifier aussi la sortie de :
```bash
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
---
## Ressources utiles
- [Site officiel WireGuard](https://www.wireguard.com/)
- [Documentation Debian WireGuard](https://wiki.debian.org/WireGuard)
- [Client Windows WireGuard](https://www.wireguard.com/install/)


















