Sommaire
🔒 Module CYB11 – Les VPN
Objectifs : comprendre les VPN, les types, les protocoles, et savoir mettre en œuvre un VPN sécurisé.
📖 Introduction
Un VPN (Virtual Private Network) permet d'établir une connexion sécurisée entre deux points sur un réseau public (comme Internet). Il garantit la confidentialité, l'intégrité et l'authentification des échanges. Les VPN sont utilisés pour le télétravail, la connexion entre sites et la protection des données en transit.
À l'issue de ce module, vous serez capable de :
- Expliquer les principes d'un VPN.
- Distinguer les types de VPN (site-à-site, client, SSL, IPsec).
- Configurer un VPN avec WireGuard ou OpenVPN.
- Analyser les logs et diagnostiquer les problèmes.
📐 Définition et principes
- VPN : extension sécurisée d'un réseau privé sur un réseau public.
- Tunnel : encapsulation des paquets dans un protocole sécurisé.
- Chiffrement : confidentialité des données (AES, ChaCha20).
- Authentification : vérification de l'identité des extrémités (clés, certificats).
- Intégrité : garantie que les données n'ont pas été modifiées (HMAC).
📋 Types de VPN
| Type | Description | Cas d'usage |
|---|---|---|
| Site-à-site | Connecte deux réseaux distants (ex : siège et agence). | Interconnexion de sites. |
| Client (Remote Access) | Connecte un utilisateur nomade au réseau de l'entreprise. | Télétravail, mobilité. |
| SSL/TLS | Utilise le protocole TLS (ex : OpenVPN, AnyConnect). | Accès web sécurisé, client léger. |
| IPsec | Protocole standard pour les VPN (IKE, ESP, AH). | Site-à-site, client lourd. |
| WireGuard | VPN moderne, simple, performant (kernel Linux). | Alternative à OpenVPN/IPsec. |
🔧 Protocoles VPN
4.1 – IPsec
- IKE : échange de clés (phase 1 et 2).
- ESP : encapsulation et chiffrement des données.
- AH : authentification et intégrité (sans chiffrement).
- Modes : transport (hôte-à-hôte) et tunnel (réseau-à-réseau).
4.2 – OpenVPN
- SSL/TLS pour la sécurité.
- Peut utiliser TCP ou UDP.
- Gestion des certificats (PKI).
- Multi-plateforme.
4.3 – WireGuard
- Plus simple qu'IPsec/OpenVPN.
- Cryptographie moderne (Curve25519, ChaCha20, Poly1305).
- Intégré dans le noyau Linux.
- Performant et faible latence.
🛠️ Mise en pratique
5.1 – Configurer WireGuard
Mettre en place un VPN WireGuard entre deux machines :
# Installer WireGuard
apt install wireguard
# Générer les clés sur le serveur
wg genkey | tee privatekey | wg pubkey > publickey
# Créer le fichier de configuration /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
PrivateKey = {clé_privée}
ListenPort = 51820
[Peer]
PublicKey = {clé_publique_client}
AllowedIPs = 10.0.0.2/32
Address: IP du serveur dans le tunnel.PrivateKey: clé privée du serveur.ListenPort: port UDP.Peer: client (clé publique, IP autorisée).
5.2 – Démarrer le VPN
Démarrer et activer WireGuard :
wg-quick up wg0 systemctl enable wg-quick@wg0
wg-quick up: monte le tunnel.systemctl enable: démarrage automatique.
📝 Exercices d'application
Exercice 1 – Types de VPN
Quel type de VPN permet à un employé de se connecter depuis son domicile ?
Client (Remote Access)
Exercice 2 – Protocole
Quel protocole VPN est intégré dans le noyau Linux et utilise Curve25519 ?
WireGuard
🎯 Quiz d'auto‑évaluation
1. Un VPN site-à-site permet de :
2. WireGuard utilise quel type de cryptographie ?
3. La commande wg-quick up wg0 permet de :
4. IPsec utilise IKE pour :
5. Un VPN garantit la confidentialité grâce au :