🎯 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 :
- Un serveur Debian 13 avec accès root et une IP publique.
- Un pfSense (version 2.7.0 ou supérieure) avec accès à l'interface web.
- Les ports UDP 51820 (WireGuard) et 1194 (OpenVPN) ouverts.
- Des connaissances de base en réseau et en ligne de commande.
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].
$ sudo mkdir -p /etc/wireguard
$ sudo chmod 700 /etc/wireguard
$ sudo wg genkey | sudo tee /etc/wireguard/server_private.key > /dev/null
$ sudo chmod 600 /etc/wireguard/server_private.key
$ 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
$ sudo systemctl enable wg-quick@wg0
$ sudo systemctl start wg-quick@wg0
$ 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 :
- WireGuard Debian :
sudo wg show affiche les peers connectés.
- WireGuard pfSense : Le tunnel est
Up et un handshake est visible dans Status → WireGuard.
- OpenVPN pfSense : Un client peut se connecter et Status → OpenVPN affiche la session active.
- Les clients peuvent
ping l’IP du serveur VPN et accéder aux ressources internes.
📚 Ressources complémentaires
BTS SIO – Lycée NDLP Avranches – Tutoriel VPN v1.0