Sommaire
🎯 TUTORIEL PAS À PAS
🔐 Mise en œuvre de VPN : WireGuard & OpenVPN
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
$ 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_SERVEURpar votre clé privée.ens192par le nom de votre interface réseau principale (ip apour 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
$ 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 showaffiche les peers connectés. - WireGuard pfSense : Le tunnel est
Upet un handshake est visible dans Status → WireGuard. - OpenVPN pfSense : Un client peut se connecter et Status → OpenVPN affiche la session active.
- Les clients peuvent
pingl’IP du serveur VPN et accéder aux ressources internes.
📚 Ressources complémentaires
- Documentation officielle WireGuard
- WireGuard sur pfSense – Guide Netgate
- OpenVPN sur pfSense – Guide Netgate
Suis ta progressionConnecte-toi pour marquer les ressources comme terminées et retrouver ton avancement.
Se connecter