đĄïž VPN â Tunnels SĂ©curisĂ©s (IPsec, SSL, OpenVPN)
Guide complet IDEO-Lab sur la création de réseaux privés virtuels (VPN).
Définition (VPN)
Virtual Private Network. Tunnel crypté sur réseau public.
VPN Tunnel ChiffrementObjectifs (Triade CIA)
Confidentialité (Cryptage), Intégrité (Hachage).
Confidentialité IntégritéCas d'Usage
Site-to-Site (S2S) vs. Client-to-Site (Remote Access).
Site-to-Site Client-to-SiteCrypto : Symétrique
1 clé secrÚte (AES, 3DES). Rapide (données).
AES SymétriqueCrypto : Asymétrique
2 clés (Publique/Privée - RSA, DH). Lent (gestion).
RSA AsymétriqueCrypto : Hachage (Intégrité)
Sens unique (SHA, MD5). HMAC (Authenticité).
Hash SHA-256 HMACProtocole : IPsec
Framework de protocoles (Couche 3). Standard S2S.
IPsec Couche 3IPsec : AH vs. ESP
Authentication Header vs. Encapsulating Security Payload.
AH ESPIPsec : Modes
Mode Tunnel (S2S) vs. Mode Transport (Client).
Mode Tunnel Mode TransportIPsec : IKE Phase 1
Le tunnel de "gestion" (ISAKMP). Authentification.
IKEv1/v2 Phase 1 ISAKMPIPsec : IKE Phase 2
Le tunnel de "données" (Quick Mode).
IKEv1/v2 Phase 2IPsec : NAT-Traversal
Encapsulation UDP (Port 4500) pour passer le NAT.
NAT-T UDP 4500Protocole : SSL/TLS VPN
Utilise TLS (Port 443). Passe les firewalls.
SSL VPN TLS Port 443SSL VPN : Client Lourd
Remote Access (Client-to-Site). Client (AnyConnect).
Client-to-Site AnyConnectSSL VPN : Clientless
Portail Web (Reverse Proxy). AccĂšs aux webapps only.
Clientless PortailProtocole : OpenVPN
Open source, basé sur SSL/TLS, trÚs flexible.
OpenVPN Open SourceOpenVPN : PKI
Utilise certificats (CA, Serveur, Client). Easy-RSA.
PKI CertificatsOpenVPN : TUN vs TAP
Interface L3 (Routage) vs. Interface L2 (Pont).
TUN (L3) TAP (L2)Protocole : L2TP/IPsec
L2TP (Tunnel) + IPsec (Cryptage). (Legacy).
L2TP LegacyProtocole : WireGuard
Moderne, rapide, simple, noyau Linux.
WireGuard ModerneCheat-sheet
Comparatif des protocoles VPN (IPsec, SSL, WG).
Comparatif ChecklistVirtual Private Network
Un VPN (Réseau Privé Virtuel) est une technologie qui crée une connexion sécurisée et cryptée ("tunnel") par-dessus un réseau public non-fiable (comme Internet).
Il permet Ă des appareils distants (ou des rĂ©seaux entiers) de communiquer comme s'ils Ă©taient connectĂ©s au mĂȘme rĂ©seau local (LAN) privĂ©, en garantissant la confidentialitĂ© et l'intĂ©gritĂ© des donnĂ©es.
Schéma de Tunneling
[ LAN A (Privé) ] [ LAN B (Privé) ]
192.168.1.50 10.0.0.100
â â
[ Routeur A ] [ Routeur B ]
â (IP Publique 80.1.2.3) â (IP Publique 90.4.5.6)
â â
âââââââââââââââââââââââââââââââââââââââââââââââââââĄ
â [ TUNNEL VPN CRYPTĂ (IPsec/SSL) ] â
â (Paquets 192.168.1.50 -> 10.0.0.100 encapsulĂ©s) â
âââââââââââââââââââââââââââââââââââââââââââââââââââĄ
â â
( Paquets 80.1.2.3 -> 90.4.5.6 voyagent sur Internet )
â â
<ââââââââââââââââââââââ [ INTERNET (Public / Non-fiable) ] ââââââââââââââââââââââ>
Un VPN applique les principes de la Triade CIA (Confidentialité, Intégrité, Disponibilité) au trafic réseau.
| Principe | Objectif | Technique VPN |
|---|---|---|
| ConfidentialitĂ© | EmpĂȘcher l'espionnage (sniffing) du trafic sur Internet. | Chiffrement (Encryption) (ex: AES, 3DES). Les donnĂ©es sont illisibles pour un attaquant (MITM). |
| Intégrité | Garantir que les données n'ont pas été altérées pendant le transport. | Hachage (Hashing) (ex: SHA, MD5). Le récepteur vérifie que le paquet est intact. |
| Authentification | S'assurer que l'on parle au bon interlocuteur (pas un imposteur). | Authentification (ex: Clé pré-partagée (PSK), Certificats RSA). |
| AccÚs | Permettre l'accÚs aux ressources internes depuis l'extérieur. | Tunneling. |
VPN Site-to-Site (S2S)
Objectif : Connecter deux réseaux (LANs) de maniÚre permanente.
Exemple : Relier le SiĂšge (Paris) et la Filiale (Lyon) pour qu'ils partagent des ressources (serveurs, imprimantes) comme s'ils Ă©taient sur le mĂȘme rĂ©seau.
Implémentation : Le tunnel est géré par les Routeurs/Firewalls des deux sites. C'est transparent pour les utilisateurs. (Technologie typique : IPsec).
[LAN Paris] <-> [Firewall A] <== (Tunnel) ==> [Firewall B] <-> [LAN Lyon]
VPN Client-to-Site (Remote Access)
Objectif : Connecter un utilisateur unique (ex: télétravailleur, nomade) au réseau de l'entreprise.
Exemple : Un commercial sur son laptop à l'hÎtel se connecte au VPN pour accéder au CRM interne.
Implémentation : L'utilisateur lance un logiciel client (ex: OpenVPN, AnyConnect) sur son PC, qui établit le tunnel vers le Firewall de l'entreprise. (Technologie typique : SSL/TLS ou OpenVPN).
[Télétravailleur] <== (Tunnel) ==> [Firewall Entreprise] <-> [LAN Entreprise]
La Clé Unique (Rapide)
Le chiffrement symĂ©trique utilise une seule et mĂȘme clĂ© (un secret partagĂ©) pour chiffrer ET dĂ©chiffrer les donnĂ©es.
Data + Clé_SecrÚte -> (Chiffrement) -> Données_Chiffrées Données_Chiffrées + Clé_SecrÚte -> (Déchiffrement) -> Data
- Avantage : ExtrĂȘmement rapide. IdĂ©al pour chiffrer de grands volumes de donnĂ©es (le "vrai" trafic du tunnel).
- InconvĂ©nient : Le "problĂšme de l'Ćuf et de la poule" : comment les deux parties s'Ă©changent-elles la ClĂ©_SecrĂšte de maniĂšre sĂ©curisĂ©e ? (RĂ©ponse : via la crypto AsymĂ©trique).
- Algorithmes : AES (128, 192, 256 bits - Standard moderne), 3DES (ObsolĂšte), ChaCha20.
La Paire de Clés (Lente)
Le chiffrement asymétrique (ou à clé publique) utilise une paire de clés mathématiquement liées :
- ClĂ© Publique : Peut ĂȘtre partagĂ©e avec tout le monde. Sert Ă chiffrer.
- Clé Privée : Doit rester secrÚte. Sert à déchiffrer.
Data + Clé_Publique_Bob -> (Chiffrement) -> Données_Chiffrées Données_Chiffrées + Clé_Privée_Bob -> (Déchiffrement) -> Data
- Avantage : Permet un échange sécurisé sans secret partagé au préalable.
- InconvĂ©nient : ExtrĂȘmement lent (x1000+).
- Usage VPN : Pas pour le trafic, mais pour l'échange de clés (protocole Diffie-Hellman - DH) ou l'authentification (Certificats RSA) lors de l'établissement du tunnel (IKE).
L'Empreinte Numérique
Une fonction de hachage (ex: SHA-256) prend des données (de n'importe quelle taille) et produit une empreinte de taille fixe (ex: 256 bits). C'est une fonction à sens unique (non réversible).
Objectif : Vérifier l'Intégrité (que les données n'ont pas changé).
A) Ămetteur: Calcule HASH(Data) -> "ABCDE"
(Envoie [Data] + [HASH("ABCDE")])
B) Récepteur: Reçoit [Data] + [HASH("ABCDE")]
Il recalcule HASH(Data_Reçue) -> "ABCDE"
Compare les deux hashs. S'ils sont identiques,
les données sont intÚgres.HMAC (Authenticité)
Un HMAC (Hash-based Message Authentication Code) combine un hash avec une clé secrÚte partagée. Cela garantit à la fois l'Intégrité ET l'Authenticité (prouve que l'émetteur possédait la clé secrÚte).
IPsec n'est pas un seul protocole, mais un framework (cadre) de protocoles standards (IETF) conçu pour sécuriser les communications à la Couche 3 (Réseau).
Il peut chiffrer tout le trafic IP (TCP, UDP, ICMP...), ce qui le rend trĂšs puissant et transparent pour les applications.
C'est le standard historique pour les VPN Site-to-Site (S2S).
Composants Clés
- AH / ESP : Les protocoles qui transportent les données (voir 3.2).
- IKE (Internet Key Exchange) : Le protocole (sur UDP 500) qui négocie et établit le tunnel (voir 4.1/4.2).
- Authentification : PSK (Pre-Shared Key) ou Certificats RSA.
- Chiffrement : AES, 3DES.
- Intégrité : SHA, MD5.
IPsec utilise deux protocoles principaux pour "transporter" les données sécurisées. ESP est utilisé dans 99% des cas.
ESP (Encapsulating Security Payload)
Protocole IP : 50
C'est le protocole "tout-en-un". Il fournit :
- Confidentialité (Chiffrement des données/payload).
- Intégrité (Hachage des données).
- Authentification (via HMAC).
C'est le standard utilisé pour tous les VPN IPsec modernes.
AH (Authentication Header)
Protocole IP : 51
(Largement obsolĂšte).
AH fournit :
- Intégrité (Hachage).
- Authentification (via HMAC).
ProblĂšme : AH ne fournit AUCUNE confidentialitĂ© (pas de chiffrement). Les donnĂ©es voyagent en clair. Il est Ă©galement incompatible avec le NAT (car il hache l'en-tĂȘte IP source, que le NAT modifie).
IPsec encapsule les paquets IP originaux de deux maniÚres différentes.
Mode Tunnel (Défaut)
Usage : VPN Site-to-Site (S2S) (Gateway-to-Gateway).
Fonctionnement : L'en-tĂȘte IP original (ex: 192.168.1.50 -> 10.0.0.100) est chiffrĂ© avec le reste du paquet. Un NOUVEL en-tĂȘte IP (public) est ajoutĂ© Ă l'extĂ©rieur (ex: 80.1.2.3 -> 90.4.5.6).
[ Nouvel En-tĂȘte IP | En-tĂȘte ESP | (En-tĂȘte IP Original | Data) ]
Mode Transport
Usage : VPN Client-to-Site (ou communication interne L2L).
Fonctionnement : L'en-tĂȘte IP original est conservĂ© (non chiffrĂ©). Seul le payload (L4+Data) est chiffrĂ©.
C'est plus efficace (moins d'overhead) si le routage n'a pas besoin d'ĂȘtre masquĂ©.
[ En-tĂȘte IP Original | En-tĂȘte ESP | (Data) ]
IKE (Internet Key Exchange) est le protocole de négociation (sur UDP 500) qui établit le VPN. Il se déroule en deux phases.
IKE Phase 1 (ISAKMP)
Objectif : Créer un canal de gestion sécurisé (appelé ISAKMP Tunnel ou IKE SA) entre les deux routeurs. C'est le tunnel qui servira à négocier le "vrai" tunnel (Phase 2).
Processus de Négociation (HAGLE)
Les deux routeurs doivent ĂȘtre d'accord sur exactement les mĂȘmes paramĂštres (HAGLE) :
- Hash : (Intégrité) - ex: SHA-256.
- Authentication : (Qui es-tu ?) - ex: Pre-Shared Key (PSK) ou Certificats RSA.
- Group : (Groupe Diffie-Hellman) - (Robustesse de l'échange de clé, ex: DH Group 14).
- Lifetime : (Durée de vie) - (Combien de temps ce tunnel P1 est valide, ex: 86400 sec).
- Encryption : (Chiffrement) - (ex: AES-256).
Une fois la Phase 1 (Tunnel de gestion) établie et sécurisée, la Phase 2 commence (à l'intérieur de la Phase 1).
IKE Phase 2 (Quick Mode)
Objectif : Négocier les paramÚtres du "vrai" tunnel de données (le "IPsec SA") qui transportera le trafic des utilisateurs.
ParamÚtres Négociés (Transform Set)
- Protocole : (ex: ESP).
- Chiffrement : (ex: AES-256).
- Intégrité : (ex: SHA-256).
- Lifetime : (Durée de vie, ex: 3600 sec).
- Traffic Selectors (Proxy ID) : La partie la plus importante. Définit quel trafic est autorisé à passer dans le tunnel (ex:
Source: 192.168.1.0/24 -> Dest: 10.0.0.0/24).
Le ProblĂšme : Le protocole ESP (Protocole IP 50) n'est ni TCP (6) ni UDP (17). La plupart des routeurs domestiques (Box Internet) qui font du NAT (PAT) ne savent pas comment "translater" le trafic ESP et jettent (drop) les paquets. Le VPN IPsec ne fonctionne pas si un client est derriĂšre un NAT.
La Solution : NAT-Traversal
NAT-T est une fonction (négociée lors de IKE P1) qui encapsule les paquets ESP (normalement L3) à l'intérieur de paquets UDP (Couche 4).
Paquet Original (BloquĂ© par NAT) : [ En-tĂȘte IP Public ] [ ESP ] [ Data CryptĂ©e ] Paquet avec NAT-T (OK) : [ En-tĂȘte IP Public ] [ UDP (Port 4500) ] [ ESP ] [ Data CryptĂ©e ]
Le routeur NAT voit un simple paquet UDP (Port 4500) et le laisse passer.
Le VPN SSL (un abus de langage, car il utilise TLS, le successeur de SSL) est le type de VPN dominant pour l'accĂšs distant (Client-to-Site).
Le "VPN du Port 443"
Son avantage majeur est qu'il utilise le protocole TLS (Couche 7), le mĂȘme que HTTPS. Il fonctionne donc (presque toujours) sur le port TCP 443.
Avantages sur IPsec
- Contourne les Firewalls : (Contrairement à IPsec qui utilise UDP 500/4500, souvent bloqués), le port 443 (HTTPS) est toujours ouvert (hÎtels, aéroports, entreprises).
- Simplicité : Pas de négociation IKE P1/P2 complexe.
C'est le cas d'usage le plus fréquent pour le télétravail.
Fonctionnement
- L'utilisateur installe un logiciel client (ex: Cisco AnyConnect, FortiClient, OpenVPN).
- L'utilisateur s'authentifie (Login/Mdp + MFA) auprĂšs du Firewall/Concentrateur VPN.
- Le logiciel client crée une Interface Réseau Virtuelle (TUN) sur le PC.
- Le client établit un tunnel TLS (sur 443) vers le firewall.
- Le firewall assigne une IP (ex: 192.168.100.5) Ă l'interface virtuelle.
Résultat : Le PC du télétravailleur a (virtuellement) une IP du réseau interne et peut accéder aux serveurs comme s'il était au bureau.
Le mode "Clientless" (Sans Client) ne nécessite aucun logiciel sur le poste client, juste un navigateur web.
Fonctionnement (Reverse Proxy)
- L'utilisateur se connecte (en HTTPS) à un portail web exposé par le firewall (ex:
vpn.entreprise.com). - Il s'authentifie (Login/Mdp).
- Le firewall lui présente une page "portail" avec des liens (bookmarks) vers les applications internes (ex: "Intranet SharePoint", "Outil RH").
- L'utilisateur clique sur "Intranet".
- Le firewall agit comme un Reverse Proxy : il récupÚre la page de l'intranet (en interne) et la retransmet à l'utilisateur (dans le tunnel HTTPS).
Inconvénient : Ne fonctionne que pour les applications Web (HTTP/HTTPS). Ne permet pas d'accéder à un partage de fichier (SMB) ou SSH.
OpenVPN est une solution VPN open-source extrĂȘmement populaire et flexible. C'est devenu le standard *de facto* pour de nombreux services VPN (commerciaux et d'entreprise).
Caractéristiques
- Basé sur SSL/TLS : Utilise la bibliothÚque OpenSSL pour le chiffrement et l'authentification (similaire aux VPN SSL).
- Flexible (Port) : Peut tourner sur n'importe quel port TCP ou UDP (le défaut est UDP 1194). (On peut le mettre sur TCP 443 pour contourner les firewalls).
- Flexible (Transport) : Peut utiliser TCP (fiable, mais lent -> "TCP-over-TCP") ou UDP (rapide, recommandé).
- Cross-Platform : Clients disponibles pour tous les OS.
- Authentification : TrÚs robuste, basée sur Certificats (PKI) ou PSK.
L'implémentation standard d'OpenVPN repose sur une PKI (Public Key Infrastructure) pour l'authentification mutuelle (M-TLS).
Composants (Générés avec Easy-RSA)
- CA (Certificate Authority) : Le "Dieu" de la confiance. C'est un certificat (
ca.crt) que vous générez et gardez secret. Il est utilisé pour signer (approuver) les certificats du serveur et des clients. - Certificat Serveur : (
server.crt+server.key) Prouve l'identité du serveur au client. - Certificats Clients : (ex:
bob.crt+bob.key) Un certificat unique est généré pour chaque client (utilisateur).
Processus d'Authentification
- Client "Bob" se connecte au serveur OpenVPN.
- Serveur : "Voici mon certificat (server.crt), signé par la CA."
- Client (vérifie) : "OK, je fais confiance à cette CA."
- Client : "Voici mon certificat (bob.crt), signĂ© par la mĂȘme CA."
- Serveur (vérifie) : "OK, Bob est autorisé." (Le tunnel s'établit).
OpenVPN (et d'autres VPN Linux) crée une "interface virtuelle". Il en existe deux types :
TUN (dev tun) - Mode Routé (Défaut)
Couche 3 (Réseau).
Crée une interface "tunnel" point-à -point. Le VPN agit comme un routeur.
Usage : Standard. Le client (ex: 10.8.0.5) est sur un sous-réseau différent du LAN (ex: 192.168.1.0/24). Le serveur OpenVPN route le trafic.
- Avantage : Simple, propre, efficace.
- Inconvénient : Ne transmet que le trafic IP (L3).
TAP (dev tap) - Mode Ponté (Bridged)
Couche 2 (Liaison).
Crée une "carte Ethernet virtuelle". Le VPN agit comme un switch.
Usage : AvancĂ©. Le client (ex: 192.168.1.50) reçoit une IP du mĂȘme sous-rĂ©seau que le LAN. C'est comme s'il Ă©tait physiquement branchĂ© au switch du bureau.
- Avantage : Permet de transporter du trafic non-IP (L2), ex: NetBIOS, jeux en LAN.
- Inconvénient : Complexe, "bruyant" (propage les broadcasts L2 sur le VPN).
L2TP (Layer 2 Tunneling Protocol) est un protocole de tunneling (Couche 2) qui, par lui-mĂȘme, n'offre aucun chiffrement.
Pour ĂȘtre sĂ©curisĂ©, il est toujours implĂ©mentĂ© par-dessus IPsec. Le rĂ©sultat est "L2TP/IPsec".
Historique : C'était le "concurrent" de PPTP, et il était trÚs populaire car intégré nativement dans Windows et d'autres OS (avant l'Úre OpenVPN/SSL).
Usage (L2TP sur IPsec)
- L2TP crée le tunnel (similaire au mode TAP, il gÚre la connexion L2).
- IPsec (Mode Transport) est utilisé pour chiffrer les paquets L2TP.
Statut : Considéré comme "legacy" (ancien). Plus lent et plus complexe à configurer qu'OpenVPN ou WireGuard.
WireGuard est un protocole VPN moderne, open-source, qui révolutionne le domaine par sa simplicité et sa vitesse.
Caractéristiques Clés
- Simple : La base de code est minuscule (~4000 lignes) comparée à IPsec/OpenVPN (des centaines de milliers). Moins de surface d'attaque.
- Rapide : OpÚre (sur Linux) directement dans le Noyau (Kernel), le rendant beaucoup plus rapide (débit, latence) qu'OpenVPN (qui tourne en User-space).
- Crypto Moderne : N'utilise que des algorithmes modernes (ex: ChaCha20, Curve25519). (Non négociable).
- Configuration : TrÚs simple, basée sur un échange de clés publiques (similaire à SSH).
(Exemple de config) [Interface] PrivateKey = [Clé privée A] Address = 10.0.0.1/24 [Peer] PublicKey = [Clé publique B] Endpoint = 90.4.5.6:51820 AllowedIPs = 10.0.0.2/32
| Protocole | Couche | Usage Principal | Avantages | Inconvénients |
|---|---|---|---|---|
| IPsec | L3 | Site-to-Site | Standard industriel, robuste, L3 (tout trafic IP). | Complexe (IKE P1/P2), bloqué par NAT/Firewalls (sans NAT-T). |
| SSL/TLS | L7 | Client-to-Site (Remote) | Utilise Port 443 (passe partout), simple pour l'utilisateur. | Clientless (limité au web), Client-lourd (overhead). |
| OpenVPN | L7 (via L3/L4) | Client-to-Site (Standard) | Open source, trĂšs flexible (TUN/TAP, TCP/UDP), PKI robuste. | Plus lent (User-space), configuration PKI manuelle. |
| WireGuard | L3 (Noyau) | Site-to-Site & Client-to-Site | ExtrĂȘmement rapide, simple, crypto moderne, roaming facile. | Plus rĂ©cent, gestion des IPs (pas de pool dynamique natif). |
| L2TP/IPsec | L2 (sur L3) | Client-to-Site (Legacy) | Intégré nativement dans Windows/Mac. | Lent, double encapsulation, obsolÚte. |
