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 :

# 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

  1. Télécharger l’installateur officiel depuis le site WireGuard.
  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 :

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 :

[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

  1. Ouvrir l’application WireGuard.
  2. Cliquer sur Add Tunnel > Add empty tunnel.
  3. 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
  1. 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

Ressources utiles