Chapitre 714 minAvancé
VPN : IPsec, WireGuard et OpenVPN
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- distinguer VPN nomade et site à site, tunnel complet et partagé ;
- comparer IPsec, OpenVPN et WireGuard pour choisir selon le besoin ;
- configurer un tunnel IPsec ou WireGuard et ses règles de filtrage ;
- sécuriser une passerelle VPN et les accès distants.
4 exercices corrigés1 schéma
Un VPN (Virtual Private Network, réseau privé virtuel) crée un tunnel chiffré à travers Internet entre deux réseaux, ou entre un appareil et le réseau de l'entreprise : les échanges qui y passent sont confidentiels, intègres et authentifiés, comme s'ils circulaient sur un câble privé. Ce chapitre distingue VPN nomade et VPN site à site, compare IPsec, OpenVPN et WireGuard, montre comment configurer un tunnel entre deux sites et un accès nomade, et liste les règles de sécurité d'une passerelle VPN, l'un des équipements les plus attaqués.
Pourquoi un VPN chez Sorbier
Trois besoins justifient un VPN chez Sorbier Logistique :
- les nomades : quatre commerciaux et techniciens se déplacent chaque semaine et doivent accéder à l'application de gestion et aux partages depuis l'hôtel, le client ou la maison ;
- le second site : Sorbier ouvre un entrepôt à Mâcon, avec son propre réseau
192.168.20.0/24, qui doit joindre les serveurs du siège ; - l'administration à distance : le prestataire d'astreinte doit pouvoir intervenir la nuit, sans qu'aucun port d'administration soit ouvert sur Internet.
Dans les trois cas, l'alternative serait d'exposer des services sur Internet (le partage de fichiers, le bureau à distance), ce qui est exactement ce qu'il ne faut jamais faire.
Les notions de base
- Tunnel : les paquets internes sont encapsulés dans d'autres paquets, chiffrés, qui voyagent sur Internet entre les deux extrémités du tunnel. Un observateur ne voit que des paquets chiffrés entre deux adresses publiques.
- VPN nomade (client-to-site, accès distant) : un logiciel client sur l'ordinateur portable établit le tunnel vers la passerelle de l'entreprise. Le portable reçoit une adresse d'un réseau dédié aux nomades.
- VPN site à site (site-to-site) : deux passerelles (deux pare-feu) établissent un tunnel permanent. Les postes des deux sites communiquent sans rien installer : le tunnel est transparent pour eux.
- Tunnel complet (full tunnel) : tout le trafic du nomade passe par le VPN, y compris sa navigation sur Internet, qui est alors filtrée par le pare-feu et le proxy de l'entreprise.
- Tunnel partagé (split tunnel) : seul le trafic destiné aux réseaux de l'entreprise passe par le VPN ; le reste sort directement par la connexion locale. Moins de charge sur le lien du siège, mais la navigation du nomade échappe au filtrage de l'entreprise.
Les protocoles
IPsec est une suite de protocoles normalisée, intégrée à tous les pare-feu et à Windows. Elle comprend :
- IKE (aujourd'hui IKEv2, UDP 500) qui authentifie les deux extrémités (par certificat ou clé partagée) et négocie les clés ;
- ESP (protocole IP n° 50) qui chiffre et authentifie les paquets ; quand un routeur NAT se trouve sur le chemin, ESP est encapsulé dans UDP 4500 (NAT-T) ;
- AH (protocole IP n° 51) qui authentifie sans chiffrer. Il protège aussi les adresses de l'en-tête IP, ce qui le rend incompatible avec le NAT : on ne l'utilise pratiquement plus.
IPsec fonctionne en mode tunnel (tout le paquet d'origine est chiffré et encapsulé, le cas des VPN) ou en mode transport (seule la charge utile est protégée, entre deux machines).
OpenVPN est un logiciel libre qui construit le tunnel au-dessus de TLS, sur un seul port (UDP 1194 par défaut, ou TCP 443 pour traverser les réseaux restrictifs). Il s'appuie sur une PKI : un certificat par utilisateur, signé par l'AC de l'entreprise, souvent complété d'un identifiant de l'annuaire et d'un second facteur.
WireGuard est le plus récent (intégré au noyau Linux depuis 2020). Son code est très court, donc plus facile à auditer, et il n'offre aucun choix d'algorithmes : Curve25519 pour l'échange de clés, ChaCha20-Poly1305 pour le chiffrement. Chaque pair est identifié par sa clé publique, comme une clé SSH, et le trafic passe sur un seul port UDP (51820 par défaut). Il ne gère ni comptes utilisateurs ni MFA par lui-même : on les ajoute avec une solution autour (portail d'inscription, ZTNA).
| IPsec (IKEv2) | OpenVPN | WireGuard | |
|---|---|---|---|
| Transport | UDP 500 et 4500, ESP (protocole 50) | UDP 1194 par défaut, ou TCP | UDP 51820 par défaut |
| Chiffrement | AES-GCM (IKEv2) | AES-GCM, ChaCha20-Poly1305 | ChaCha20-Poly1305 |
| Authentification | Certificats ou clé partagée, EAP pour les utilisateurs | Certificats, plus identifiant et MFA | Clés publiques des pairs |
| Usage typique | Site à site entre pare-feu de marques différentes ; nomades avec le client natif de Windows | Nomades, réseaux restrictifs | Nomades et site à site entre équipements qui le gèrent |
| Configuration | Riche, donc plus de risques d'erreur | Moyenne | Très simple |
Les pare-feu commerciaux proposent aussi des VPN SSL propriétaires, avec un portail web. Pratiques, ils ont été la cible de nombreuses failles critiques ces dernières années (passerelles Fortinet, Ivanti, Citrix, entre autres), régulièrement exploitées pour entrer dans les réseaux : leur mise à jour est une urgence absolue à chaque alerte du CERT-FR.
Configurer un VPN site à site IPsec
Entre le pare-feu du siège (203.0.113.17) et celui de Mâcon (198.51.100.40), on configure les deux phases d'IPsec avec des paramètres identiques des deux côtés (les écrans de pfSense sont détaillés au chapitre VPN IPsec site à site du cours pfSense) :
| Phase | Paramètre | Valeur choisie |
|---|---|---|
| Phase 1 (IKE) | Version | IKEv2 |
| Authentification | Certificats signés par l'AC interne (ou clé partagée longue et aléatoire) | |
| Chiffrement, intégrité | AES-256-GCM, fonction pseudo-aléatoire SHA-256 | |
| Groupe Diffie-Hellman | 19 (courbe P-256) ou 31 (Curve25519) | |
| Durée de vie | 8 heures, puis renégociation | |
| Phase 2 (ESP) | Réseau local, réseau distant | 192.168.10.0/24 ↔ 192.168.20.0/24 |
| Chiffrement | AES-256-GCM | |
| Confidentialité persistante (PFS) | Groupe 19 | |
| Durée de vie | 1 heure |
Sur pfSense : VPN > IPsec > Tunnels, une entrée de phase 1 vers l'adresse distante, puis une entrée de phase 2 par paire de réseaux. Il faut ensuite deux séries de règles :
| Interface | Source | Destination | Port, protocole | Action | Rôle |
|---|---|---|---|---|---|
| WAN | 198.51.100.40 | WAN address | UDP 500, UDP 4500 | Autoriser | Négociation IKE et NAT-T depuis Mâcon seulement |
| WAN | 198.51.100.40 | WAN address | ESP | Autoriser | Paquets chiffrés |
| IPsec | 192.168.20.0/24 | 192.168.10.179 | TCP 443 | Autoriser | L'entrepôt utilise l'application de gestion |
| IPsec | 192.168.20.0/24 | 192.168.10.177 | DNS, Kerberos, LDAP… | Autoriser | Services de domaine |
| IPsec | * | * | * | Bloquer | Rien d'autre ne traverse le tunnel |
Configurer un VPN nomade avec WireGuard
Chaque appareil reçoit une paire de clés. Sur Linux, wg genkey | tee prive.key | wg pubkey > public.key les produit ; les clients Windows, macOS et mobiles les génèrent eux-mêmes. Voici la configuration de la passerelle (sur pfSense, les mêmes champs se remplissent dans l'interface web : voir OpenVPN et WireGuard sur pfSense) :
# Passerelle du siège
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <clé privée de la passerelle>
# Portable de Léa, commerciale
[Peer]
PublicKey = <clé publique du portable de Léa>
AllowedIPs = 10.8.0.11/32
Et celle du portable de Léa :
[Interface]
Address = 10.8.0.11/32
PrivateKey = <clé privée du portable>
DNS = 192.168.10.177
[Peer]
PublicKey = <clé publique de la passerelle>
Endpoint = 203.0.113.17:51820
AllowedIPs = 192.168.10.0/24
PersistentKeepalive = 25
AllowedIPs a deux rôles. Côté passerelle, c'est une liste de contrôle : la passerelle n'accepte de ce pair que des paquets venant de 10.8.0.11. Côté client, c'est la table de routage : seuls les paquets vers 192.168.10.0/24 entrent dans le tunnel, c'est un tunnel partagé. Avec AllowedIPs = 0.0.0.0/0, ::/0, tout le trafic passerait dans le tunnel : tunnel complet. La clé privée ne quitte jamais l'appareil : seule la clé publique est échangée.
Il reste à écrire les règles de l'interface WireGuard du pare-feu : le réseau nomade 10.8.0.0/24 joint l'application de gestion, les partages et le DNS, et rien d'autre ; et sur le WAN, UDP 51820 est autorisé vers le pare-feu.
Sécuriser l'accès distant
Une passerelle VPN est exposée à tout Internet, et elle ouvre la porte du réseau interne : c'est une cible prioritaire.
- Mettre à jour la passerelle sans délai à chaque alerte : beaucoup d'intrusions récentes ont commencé par une faille de VPN non corrigée.
- Authentifier fortement : certificat ou clé propre à chaque appareil, plus un identifiant personnel et un second facteur (application d'authentification, clé de sécurité FIDO2). Un mot de passe seul, volé par hameçonnage, suffirait à entrer.
- Un accès par personne, jamais de compte VPN partagé, et une révocation immédiate au départ d'un salarié ou à la perte d'un portable (révoquer son certificat, supprimer sa clé publique de la passerelle).
- Filtrer le trafic des nomades comme celui de n'importe quelle zone : ils joignent les services dont ils ont besoin, pas tout le réseau.
- Journaliser les connexions (qui, quand, depuis quelle adresse, combien de temps) et surveiller les anomalies : une connexion depuis un pays inhabituel, deux connexions simultanées du même compte depuis deux pays.
- Vérifier l'appareil : poste de l'entreprise, chiffré, à jour, avec un EDR ; un ordinateur personnel ne devrait pas obtenir un accès complet au réseau.
- Choisir le tunnel complet quand la navigation des nomades doit rester filtrée et tracée ; le tunnel partagé quand le débit du siège est limité, en compensant par un filtrage DNS ou un proxy en nuage sur les portables.
Une alternative gagne du terrain : le ZTNA (Zero Trust Network Access). Au lieu d'ouvrir un tunnel vers un réseau entier, il donne accès à une application précise, après vérification de l'identité et de l'état de l'appareil, à chaque connexion (chapitre 3).
Pour aller plus loin. Diffie-Hellman, qui permet aux deux extrémités d'un tunnel de se mettre d'accord sur une clé, est expliqué dans le chapitre Chiffrement asymétrique du cours Cryptographie, et l'ajout d'un second facteur à la connexion VPN dans le chapitre MFA du cours Authentification.
Exercices
Exercice 1 sur 4 Quel type de VPN ? Réussi À revoir
Pour chaque besoin, choisis un VPN nomade ou un VPN site à site, et un protocole adapté. Justifie.
- Relier en permanence le siège (pare-feu pfSense) à une agence équipée d'un pare-feu Stormshield.
- Permettre à une technicienne d'accéder depuis chez elle aux interfaces d'administration, avec le client intégré de Windows 11.
- Équiper rapidement les téléphones et les portables des commerciaux, avec une configuration simple et des performances élevées.
- Se connecter depuis l'hôtel d'un client dont le réseau ne laisse sortir que TCP 443.
Voir la réponseMasquer la réponse de l'exercice 1
- Site à site IPsec (IKEv2) : protocole normalisé, compris par des pare-feu de marques différentes ; tunnel permanent et transparent pour les postes.
- Nomade IPsec IKEv2 : Windows intègre un client IKEv2, sans logiciel à installer ; authentification par certificat machine plus identifiant et MFA. L'accès doit mener au réseau d'administration ou au bastion, pas à tout le réseau.
- Nomade WireGuard : configuration minimale (une paire de clés par appareil), clients sur tous les systèmes, très bonnes performances, notamment sur mobile.
- Nomade OpenVPN en TCP 443 : il peut fonctionner sur un seul port TCP, que le réseau de l'hôtel laisse passer. IPsec (UDP 500 et 4500) et WireGuard (UDP) seraient bloqués.
Tu avais trouvé ?
Exercice 2 sur 4 Ouvrir le pare-feu pour IPsec Réussi À revoir
Le pare-feu du siège doit accepter le tunnel IPsec de l'entrepôt de Mâcon (198.51.100.40), qui passe derrière un routeur NAT de l'opérateur. Écris les règles nécessaires sur l'interface WAN. Explique pourquoi AH ne peut pas être utilisé ici.
Voir la réponseMasquer la réponse de l'exercice 2
| Interface | Source | Port source | Destination | Port destination | Protocole | Action |
|---|---|---|---|---|---|---|
| WAN | 198.51.100.40 | * | 203.0.113.17 | 500 | UDP | Autoriser (IKE) |
| WAN | 198.51.100.40 | * | 203.0.113.17 | 4500 | UDP | Autoriser (NAT-T : ESP encapsulé dans UDP) |
| WAN | 198.51.100.40 | — | 203.0.113.17 | — | ESP (protocole 50) | Autoriser (si pas de NAT sur le chemin) |
La source est limitée à l'adresse de Mâcon : personne d'autre n'a à négocier ce tunnel. AH authentifie aussi les adresses de l'en-tête IP ; le routeur NAT de l'opérateur modifie l'adresse source, donc la vérification d'AH échoue à l'arrivée. ESP, lui, ne protège pas l'en-tête IP extérieur et passe le NAT grâce à NAT-T.
Tu avais trouvé ?
Exercice 3 sur 4 Tunnel complet ou partagé ? Réussi À revoir
Le portable de Léa a cette configuration WireGuard : AllowedIPs = 192.168.10.0/24.
- Sa navigation sur Internet passe-t-elle par le pare-feu du siège ?
- La direction veut que la navigation des nomades soit filtrée comme celle des postes du siège. Que modifies-tu ? Quelle conséquence sur le lien Internet du siège ?
Voir la réponseMasquer la réponse de l'exercice 3
- Non : seuls les paquets vers
192.168.10.0/24entrent dans le tunnel (tunnel partagé). Le reste sort directement par la connexion de l'hôtel, sans filtrage de l'entreprise. - Passer en tunnel complet :
AllowedIPs = 0.0.0.0/0, ::/0côté client, puis, sur le pare-feu, autoriser le réseau nomade10.8.0.0/24vers Internet en HTTP et HTTPS (via le proxy) et vérifier que le NAT sortant couvre ce réseau. Conséquence : toute la navigation des nomades passe deux fois par le lien du siège (entrée dans le tunnel, puis sortie vers Internet), ce qui consomme sa bande passante.
Tu avais trouvé ?
Exercice 4 sur 4 Départ d'un salarié Réussi À revoir
Un technicien quitte Sorbier ce soir. Il avait un accès VPN OpenVPN (certificat personnel plus identifiant de l'annuaire) et un accès WireGuard sur son téléphone. Liste les actions à mener sur l'accès distant et justifie chacune.
Voir la réponseMasquer la réponse de l'exercice 4
- Révoquer son certificat OpenVPN dans l'AC et publier la nouvelle liste de révocation, que la passerelle consulte : le certificat ne permettra plus de se connecter, même s'il en a gardé une copie.
- Désactiver son compte dans l'annuaire : l'identifiant ne fonctionne plus, pour le VPN comme pour le reste.
- Supprimer la clé publique de son téléphone des pairs WireGuard de la passerelle : sans elle, la passerelle ignore ses paquets.
- Vérifier les journaux de ses dernières connexions et fermer ses sessions en cours.
- Si un compte ou un mot de passe partagé existait (ce qui ne devrait pas être le cas), le changer.
Chaque accès étant personnel, on peut couper ceux d'une seule personne sans gêner les autres : c'est l'intérêt de ne jamais partager un accès VPN.
Tu avais trouvé ?