🔒 VPN — IPsec, OpenVPN & WireGuard

Bloc 2 Module 2.3 BTS SIO SISR
FormationBTS SIO option SISR — IRIS Mediaschool
BlocB2 — Administration Systèmes & Réseaux
ModuleM2.3 — Infrastructure Réseau Avancée
PrérequisConnaissances TCP/IP, notions de chiffrement, routage de base

🎯 Objectifs

  • Comprendre les principes et cas d'usage d'un VPN
  • Différencier les architectures site-to-site et client-to-site
  • Maîtriser les mécanismes d'IPsec : IKE, ESP, AH
  • Configurer un tunnel OpenVPN avec certificats TLS
  • Découvrir WireGuard et son approche moderne
  • Comparer les trois technologies et choisir la plus adaptée

📖 Qu'est-ce qu'un VPN ?

Définition

Un VPN (Virtual Private Network) est un tunnel chiffré établi au-dessus d'un réseau public (Internet) qui permet de relier de manière sécurisée deux réseaux distants ou un utilisateur nomade à son réseau d'entreprise. Le trafic qui transite dans le tunnel est chiffré et authentifié, garantissant confidentialité et intégrité des données.

Objectifs d'un VPN

  • Confidentialité : les données sont chiffrées, rendant impossible leur lecture par un tiers
  • Intégrité : toute modification des paquets en transit est détectée
  • Authentification : seuls les pairs autorisés peuvent établir le tunnel
  • Extension du réseau : un site distant ou un utilisateur nomade accède au LAN comme s'il était sur place

📖 VPN site-to-site vs client-to-site

VPN site-to-site

Relie deux réseaux d'entreprise de manière permanente. Le tunnel est établi entre deux passerelles VPN (routeurs ou firewalls). Les utilisateurs n'ont aucune configuration à faire : le trafic entre les deux sites est automatiquement encapsulé et chiffré.

VPN client-to-site (roadwarrior)

Permet à un utilisateur individuel (télétravail, déplacement) de se connecter au réseau de l'entreprise. Un logiciel client VPN est installé sur le poste de l'utilisateur. La connexion est établie à la demande.

CritèreSite-to-siteClient-to-site
ExtrémitésPasserelle ↔ PasserelleClient ↔ Passerelle
ConnexionPermanenteÀ la demande
Configuration utilisateurAucuneClient VPN requis
Cas d'usageInterconnexion de sitesTélétravail, mobilité

📖 IPsec

Architecture IPsec

IPsec est une suite de protocoles standardisée (RFC 4301) qui opère au niveau de la couche réseau (couche 3). Elle se compose de plusieurs mécanismes :

  • IKE (Internet Key Exchange) : négocie les paramètres de sécurité et échange les clés
  • ESP (Encapsulating Security Payload) : assure le chiffrement et l'intégrité des données
  • AH (Authentication Header) : assure uniquement l'authentification et l'intégrité (pas de chiffrement)

Négociation IKE

L'établissement d'un tunnel IPsec se déroule en deux phases :

  • Phase 1 (IKE SA) : les deux pairs s'authentifient mutuellement et négocient un canal sécurisé (ISAKMP SA). Paramètres négociés : algorithme de chiffrement (AES-256), algorithme de hachage (SHA-256), méthode d'authentification (PSK ou certificats), groupe Diffie-Hellman
  • Phase 2 (IPsec SA) : les pairs négocient les paramètres du tunnel de données (transform set). Une paire de SA (Security Association) unidirectionnelles est créée, identifiées par un SPI (Security Parameter Index)

Modes tunnel et transport

ModeEncapsulationUsage
TunnelL'intégralité du paquet IP original est encapsulé dans un nouveau paquet IPVPN site-to-site (le plus courant)
TransportSeule la charge utile (payload) est chiffrée, l'en-tête IP reste intactCommunication hôte-à-hôte, L2TP/IPsec
💡 Concepts clés IPsec

SA (Security Association) : contrat unidirectionnel définissant les algorithmes et clés utilisés. SPI (Security Parameter Index) : identifiant unique d'une SA dans un paquet ESP/AH. Chaque tunnel IPsec utilise une paire de SA (une par direction).

📖 OpenVPN

Architecture

OpenVPN est une solution VPN open source qui fonctionne en espace utilisateur (userspace). Il utilise la bibliothèque OpenSSL/TLS pour le chiffrement et crée une interface réseau virtuelle (tun pour le mode routé, tap pour le mode pont).

Protocole et ports

OpenVPN encapsule le trafic VPN dans des paquets UDP (port 1194 par défaut) ou TCP. Le mode UDP est recommandé pour les performances. Le mode TCP est utile pour traverser les firewalls restrictifs.

Authentification par certificats TLS

OpenVPN utilise une PKI (Public Key Infrastructure) avec :

  • Un certificat CA (autorité de certification) racine
  • Un certificat serveur + clé privée
  • Un certificat client + clé privée par utilisateur
  • Un paramètre DH (Diffie-Hellman) pour l'échange de clés

Configuration serveur OpenVPN

# /etc/openvpn/server.conf
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
push "dhcp-option DNS 192.168.1.1"
keepalive 10 120
cipher AES-256-GCM
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3

Configuration client OpenVPN

# client.ovpn
client
dev tun
proto udp
remote vpn.entreprise.fr 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
cipher AES-256-GCM
verb 3

📖 WireGuard

Architecture moderne

WireGuard est un VPN moderne intégré au noyau Linux (depuis la version 5.6). Il se distingue par sa simplicité (environ 4 000 lignes de code contre 600 000 pour OpenVPN) et ses performances exceptionnelles. Il utilise des primitives cryptographiques modernes et fixes :

  • Curve25519 pour l'échange de clés (ECDH)
  • ChaCha20 pour le chiffrement symétrique
  • Poly1305 pour l'authentification
  • BLAKE2s pour le hachage

Clés publiques / privées

WireGuard utilise une paire de clés asymétriques (publique/privée) par pair. Chaque pair connaît la clé publique de ses correspondants. Pas besoin de PKI complète ni de certificats.

# Générer une paire de clés
wg genkey | tee privatekey | wg pubkey > publickey

Configuration WireGuard

# /etc/wireguard/wg0.conf — Serveur
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <clé_privée_serveur>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <clé_publique_client>
AllowedIPs = 10.0.0.2/32
# /etc/wireguard/wg0.conf — Client
[Interface]
Address = 10.0.0.2/24
PrivateKey = <clé_privée_client>
DNS = 192.168.1.1

[Peer]
PublicKey = <clé_publique_serveur>
Endpoint = vpn.entreprise.fr:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

📖 Comparaison IPsec vs OpenVPN vs WireGuard

CritèreIPsecOpenVPNWireGuard
Couche OSICouche 3Couche 3-4 (userspace)Couche 3 (kernel)
ProtocoleESP/AH sur IPTLS sur UDP/TCPUDP
Port par défautUDP 500, 4500UDP 1194UDP 51820
ChiffrementAES, 3DES (configurable)AES, ChaCha20 (configurable)ChaCha20 (fixe)
AuthentificationPSK, certificatsCertificats TLS, LDAPClés publiques
PerformancesBonnesMoyennesExcellentes
ComplexitéÉlevéeMoyenneFaible
Code sourceImplémentations variées~600 000 lignes~4 000 lignes
CompatibilitéRouteurs, firewalls, OSMultiplateformeLinux, Windows, macOS, mobile

📖 Split tunneling vs full tunneling

Full tunneling

Tout le trafic du client passe par le tunnel VPN, y compris le trafic Internet. Cela offre une sécurité maximale (tout le trafic est inspecté) mais augmente la charge sur le concentrateur VPN et la latence pour l'accès Internet.

Split tunneling

Seul le trafic destiné au réseau de l'entreprise passe par le tunnel. Le trafic Internet sort directement par la connexion locale du client. Cela réduit la charge sur le VPN mais présente un risque si le poste client est compromis.

⚠️ Attention sécurité

En split tunneling, le poste client a simultanément accès à Internet et au réseau interne. Un malware sur le poste pourrait servir de passerelle pour attaquer le réseau d'entreprise. Appliquez des règles de sécurité strictes sur les postes nomades (EDR, pare-feu local, MFA).

📖 Bonnes pratiques sécurité VPN

  • Utiliser des algorithmes de chiffrement forts : AES-256, ChaCha20
  • Privilégier l'authentification par certificats plutôt que par clé partagée (PSK)
  • Activer l'authentification multi-facteurs (MFA) pour les VPN client-to-site
  • Renouveler régulièrement les clés et certificats
  • Restreindre les accès réseau via le tunnel (ACL, segmentation)
  • Surveiller les logs de connexion et détecter les anomalies
  • Maintenir les logiciels VPN à jour (correctifs de sécurité)
  • Désactiver les protocoles obsolètes : DES, 3DES, MD5, DH group 1/2

📝 QCM — Testez vos connaissances

  1. Que signifie VPN ?
  2. Quel protocole VPN est le plus utilisé en entreprise ?
  3. Quelle est la différence entre un VPN site-à-site et un VPN client ?
  4. Quel logiciel open source est populaire pour les VPN ?
  5. Sur quelle couche OSI opère IPsec ?
  6. Qu'est-ce que WireGuard ?
📝 Afficher les corrections
  1. Virtual Private Network — Un VPN crée un tunnel chiffré entre deux points à travers un réseau non sécurisé (Internet).
  2. IPsec — IPsec (Internet Protocol Security) est le standard pour les VPN site-à-site en entreprise.
  3. Site-à-site relie deux réseaux, client relie un utilisateur à un réseau — Le VPN site-à-site interconnecte deux réseaux d'entreprise, le VPN client permet l'accès distant d'un utilisateur.
  4. OpenVPN — OpenVPN est une solution VPN SSL/TLS open source, flexible et multi-plateforme.
  5. Couche 3 (Réseau) — IPsec chiffre et authentifie au niveau IP (couche 3), transparent pour les applications.
  6. Un protocole VPN moderne et léger — WireGuard est un VPN récent avec un code minimal, des performances élevées et une configuration simple.
💡 À retenir

IPsec est le standard pour les VPN site-to-site sur équipements réseau. OpenVPN offre une grande flexibilité avec les certificats TLS. WireGuard est la solution moderne la plus performante et la plus simple à déployer. Le choix dépend du contexte : équipements existants, compétences, exigences de performance.

← Cours précédent Cours suivant →