🎯 TUTORIEL PAS À PAS

🔐 Mise en œuvre de VPN : WireGuard & OpenVPN

📅 Mis à jour : Août 2026 ⏱️ Durée : 1h30 📋 Niveau : Intermédiaire / Avancé 🔐 VPN 🐧 Debian 13 🔷 pfSense

Ce tutoriel complet vous guide pas à pas dans la mise en œuvre de trois solutions VPN : WireGuard sur Debian 13, WireGuard sur pfSense et OpenVPN sur pfSense. Vous apprendrez à installer, configurer et sécuriser chaque solution, avec des exemples concrets et des bonnes pratiques.

📌 Prérequis généraux :

1 WireGuard sur Debian 13

1.1 – Mise à jour du système
$ sudo apt update && sudo apt upgrade -y
1.2 – Installation de WireGuard
Sur Debian 13, WireGuard est intégré au noyau Linux 6.x. Il suffit d’installer les outils en espace utilisateur[reference:0].
$ sudo apt install wireguard wireguard-tools -y
✅ WireGuard est installé. Vérifiez le module : sudo modprobe wireguard && lsmod | grep wireguard[reference:1].
1.3 – Génération des clés du serveur
WireGuard utilise une paire de clés asymétriques (Curve25519). La clé privée ne quitte jamais le serveur[reference:2].
# Créer le répertoire de configuration
$ sudo mkdir -p /etc/wireguard
$ sudo chmod 700 /etc/wireguard

# Générer la clé privée
$ sudo wg genkey | sudo tee /etc/wireguard/server_private.key > /dev/null
$ sudo chmod 600 /etc/wireguard/server_private.key

# Générer la clé publique
$ sudo sh -c 'wg pubkey < /etc/wireguard/server_private.key' | sudo tee /etc/wireguard/server_public.key > /dev/null
🔑 Récupérez vos clés : sudo cat /etc/wireguard/server_private.key et sudo cat /etc/wireguard/server_public.key[reference:3].
1.4 – Configuration du serveur (/etc/wireguard/wg0.conf)
Créez le fichier de configuration de l’interface wg0. Adaptez ens192 à votre interface réseau principale[reference:4].
$ sudo nano /etc/wireguard/wg0.conf
[Interface]
PrivateKey = VOTRE_CLE_PRIVEE_SERVEUR
Address = 10.8.0.1/24
ListenPort = 51820

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens192 -j MASQUERADE
⚠️ Remplacez :
  • VOTRE_CLE_PRIVEE_SERVEUR par votre clé privée.
  • ens192 par le nom de votre interface réseau principale (ip a pour la trouver).
1.5 – Démarrage du service
# Activer et démarrer WireGuard
$ sudo systemctl enable wg-quick@wg0
$ sudo systemctl start wg-quick@wg0

# Vérifier l’état
$ sudo wg show
✅ WireGuard est actif. L’interface wg0 est créée avec l’IP 10.8.0.1/24.
1.6 – Ajout d’un client (Peer)
Pour chaque client, générez une paire de clés sur le poste client, puis ajoutez sa clé publique dans wg0.conf[reference:5].
[Peer]
PublicKey = CLE_PUBLIQUE_DU_CLIENT
AllowedIPs = 10.8.0.2/32
Rechargez la configuration : sudo wg syncconf wg0 <(wg-quick strip wg0)
✅ Le client peut maintenant se connecter avec sa clé privée et l’IP 10.8.0.2.

2 WireGuard sur pfSense

2.1 – Installation du paquet WireGuard
Connectez-vous à l’interface web de pfSense, puis allez dans System → Package Manager → Available Packages. Recherchez wireguard, cliquez sur Install puis confirmez[reference:6].
✅ Le paquet WireGuard est installé.
2.2 – Génération des clés et création du tunnel
Allez dans VPN → WireGuard → Tunnels et cliquez sur + Add Tunnel. Cliquez sur Generate pour créer une nouvelle paire de clés[reference:7].
Description     : WireGuard-Server
Listen Port     : 51820
Interface Keys  : (clés générées automatiquement)
Interface Addresses : 10.0.0.1/24
Cliquez sur Save Tunnel pour enregistrer.
🔑 Récupérez la clé publique : Elle est affichée dans l’interface après génération. Vous en aurez besoin pour configurer les peers[reference:8].
2.3 – Ajout d’un Peer (client)
Dans le même écran, cliquez sur + Add Peer. Remplissez les informations du client[reference:9].
Description     : Client-01
Public Key      : (clé publique du client)
Allowed IPs     : 10.0.0.2/32
Endpoint        : (IP publique du client : port)
Persistent Keepalive : 25
Cliquez sur Save Peer puis Apply Changes.
2.4 – Assignation de l’interface
Allez dans Interfaces → Assignments. Sélectionnez le tunnel WireGuard (généralement tun_wg0) et cliquez sur + Add pour l’assigner[reference:10].
Donnez un nom à l’interface (ex: WG_VPN) et activez-la.
✅ L’interface WireGuard est maintenant disponible et routable.
2.5 – Règles de pare-feu
Allez dans Firewall → Rules, sélectionnez l’interface WG_VPN et ajoutez une règle pour autoriser le trafic (ex: Pass depuis l’IP du client vers n’importe quelle destination).
Action   : Pass
Protocol : Any
Source   : WG_VPN net
Destination : Any
✅ Les clients WireGuard peuvent maintenant accéder au réseau interne.

3 OpenVPN sur pfSense

3.1 – Création du certificat racine (CA)
Allez dans System → Certificates → Authorities et cliquez sur + Add. Créez une nouvelle autorité de certification pour signer les certificats clients[reference:11].
Descriptive name : OpenVPN_CA
Key length       : 2048
Digest Algorithm : SHA256
Country Code     : FR
State/Province   : Normandie
City             : Avranches
Organization     : NDLP
Cliquez sur Create pour générer la CA.
3.2 – Création du certificat serveur
Allez dans System → Certificates → Certificates et cliquez sur + Add. Sélectionnez Create a new certificate et choisissez la CA créée précédemment.
Type         : Server Certificate
Descriptive name : OpenVPN_Server
Common Name  : openvpn-server
Certificate Authority : OpenVPN_CA
Cliquez sur Create.
3.3 – Configuration du serveur OpenVPN
Allez dans VPN → OpenVPN → Servers et cliquez sur + Add.
Server Mode     : Remote Access (SSL/TLS)
Protocol        : UDP on IPv4 only
Port            : 1194
TLS Configuration : Yes (SSL/TLS)
Peer Certificate Authority : OpenVPN_CA
Server Certificate : OpenVPN_Server
IPv4 Tunnel Network : 10.8.8.0/24
IPv4 Local networks : (vos réseaux internes)
Redirect Gateway : Enabled (force le trafic via le VPN)
Cliquez sur Save.
✅ Le serveur OpenVPN est configuré.
3.4 – Règles de pare-feu OpenVPN
Allez dans Firewall → Rules, sélectionnez l’interface OpenVPN et ajoutez une règle pour autoriser le trafic des clients vers le réseau interne.
Action   : Pass
Protocol : Any
Source   : OpenVPN net
Destination : Any (ou réseaux internes)
✅ Les clients OpenVPN peuvent accéder aux ressources internes.
3.5 – Export de la configuration client
Pour générer un fichier de configuration client, installez le paquet OpenVPN Client Export depuis System → Package Manager.
Une fois installé, allez dans VPN → OpenVPN → Client Export et téléchargez le fichier .ovpn pour votre client.
✅ Les clients peuvent importer ce fichier dans leur logiciel OpenVPN pour se connecter.

Test de validation

🎉 Vérifications finales :


📚 Ressources complémentaires


← Retour au portail
BTS SIO – Lycée NDLP Avranches – Tutoriel VPN v1.0