← Retour au portail
🎯 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].
# 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 :

  • 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