📡 WPA2‑Enterprise, RADIUS et WPA3
| Formation | BTS SIO option SISR — IRIS Mediaschool |
|---|---|
| Bloc / Module | B2 — M2.1 Infrastructure réseau |
| Compétences | B2.1 / B2.2 |
| Durée | 3h30 |
| Prérequis | Avoir complété la Séance 1 (WiFi normes et WPA2-PSK) |
Introduction (10 min)
Un scénario fréquent en entreprise : un attaquant installe un AP malveillant (evil twin) dans le parking de la société, reprend le SSID d'un réseau invité ou d'un SSID faible en PSK, et capte des connexions utilisateurs — ces données permettent souvent des attaques par dictionnaire hors ligne ou de l'hameçonnage captive portal.
Dans ce contexte, un SSID correctement configuré en WPA2‑Enterprise (802.1X) réduit fortement ces risques car l'authentification repose sur un échange avec un serveur RADIUS et non sur une clé partagée ; toutefois, la sécurité dépend de la validation correcte des certificats et d'une infrastructure RADIUS bien gérée.
- Expliquer le flux 802.1X / EAP (Supplicant → Authenticator → RADIUS) et comparer EAP‑PEAP/MSCHAPv2 et EAP‑TLS.
- Installer et configurer FreeRADIUS pour authentifier des utilisateurs en WPA2‑Enterprise.
- Déployer un SSID Ubiquiti en WPA2‑Enterprise et tester l'authentification depuis Linux (
wpa_supplicant) et Windows.
1. 802.1X et EAP (40 min)
802.1X est un cadre d'authentification réseau qui sépare le rôle de supplicant (poste client), authenticator (AP, switch) et authentication server (RADIUS). L'AP encapsule les messages EAP reçus du client et les relaie via RADIUS (UDP/1812) au serveur d'authentification. L'architecture garantit que le secret d'authentification (mot de passe ou certificat) n'est jamais envoyé directement à l'AP.
Flux simplifié 802.1X
Supplicant (poste) --(EAPOL)--> Authenticator (AP) --(RADIUS Access-Request)--> RADIUS Server (FreeRADIUS)
Le serveur RADIUS renvoie Access‑Accept ou Access‑Reject et, en cas
d'acceptation, peut fournir l'attribut Tunnel‑Private‑Group‑ID permettant d'assigner
dynamiquement le VLAN du client.
EAP‑PEAP / MSCHAPv2
EAP‑PEAP (avec MSCHAPv2) crée un tunnel TLS côté serveur (inner), puis exécute MSCHAPv2 pour vérifier l'identité de l'utilisateur via mot de passe. C'est simple à déployer mais dépend fortement de la validation du certificat serveur par le client : si l'utilisateur n'a pas vérifié le certificat, un evil twin proposant un faux certificat peut recueillir des identifiants.
EAP‑TLS
EAP‑TLS repose sur des certificats X.509 côté client et serveur : après mise en place d'une PKI, c'est la méthode la plus robuste car elle assure l'authentification mutuelle et évite les mots de passe. En PME, EAP‑PEAP est souvent préféré pour sa simplicité, EAP‑TLS pour la sécurité accrue quand la gestion de certificats est possible.
| Méthode | Certificat serveur | Certificat client | Auth. mutuelle | Complexité déploiement |
|---|---|---|---|---|
| EAP‑PEAP/MSCHAPv2 | ✅ Requis | ❌ Non requis | ❌ Partielle | Faible |
| EAP‑TLS | ✅ Requis | ✅ Requis | ✅ Mutuelle | Élevée (PKI) |
2. FreeRADIUS : installation et configuration de base (50 min)
Installation (Debian 12)
sudo apt update && sudo apt install -y freeradius freeradius-utils
Fichiers importants
/etc/freeradius/3.0/clients.conf — Déclarer les APs / clients RADIUS
client unifi-ap {
ipaddr = 192.168.10.50
secret = testing123
shortname = unifi
}
/etc/freeradius/3.0/users — Comptes utilisateur (tests PEAP/MSCHAPv2)
# format : "username" Cleartext-Password := "motdepasse"
alice Cleartext-Password := "Passw0rd"
# Vous pouvez ajouter des Reply-Items pour contrôler VLAN, etc.
/etc/freeradius/3.0/mods-available/eap — Chemins des certificats
eap {
default_eap_type = peap
tls {
private_key_file = "/etc/freeradius/3.0/certs/server.key"
certificate_file = "/etc/freeradius/3.0/certs/server.pem"
ca_file = "/etc/freeradius/3.0/certs/ca.pem"
}
}
Génération d'une CA et d'un certificat serveur
sudo mkdir -p /etc/freeradius/3.0/certs
cd /etc/freeradius/3.0/certs
# Clé et certificat de l'autorité de certification
sudo openssl genrsa -out ca.key 4096
sudo openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 \
-out ca.pem -subj "/CN=InnovatTech RADIUS CA"
# Clé et CSR serveur
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr \
-subj "/CN=freeradius.innovattech.local"
# Signer le certificat serveur avec la CA
sudo openssl x509 -req -in server.csr -CA ca.pem -CAkey ca.key \
-CAcreateserial -out server.pem -days 3650 -sha256
Tester FreeRADIUS en mode debug
# Terminal 1 — Démarrer FreeRADIUS en debug
sudo freeradius -X
# Terminal 2 — Simuler une requête RADIUS (radtest)
radtest alice Passw0rd 127.0.0.1 0 testing123
FreeRADIUS affiche en debug les échanges EAP ; la commande radtest renvoie
Access‑Accept si l'utilisateur est correctement configuré dans users.
3. WPA3, SAE et Enhanced Open (30 min)
WPA3‑Personal et SAE
WPA3‑Personal introduit SAE (Simultaneous Authentication of Equals), un protocole de clé PFS (Perfect Forward Secrecy) résistant aux attaques off‑line par dictionnaire car l'authentification nécessite des échanges interactifs qui empêchent l'enregistrement de preuves exploitables hors session.
WPA3‑Enterprise
WPA3‑Enterprise renforce les suites cryptographiques (mode 192‑bit optionnel) et recommande EAP‑TLS pour l'authentification.
Enhanced Open (OWE)
Enhanced Open (OWE) fournit un chiffrement opportuniste sans authentification (utile pour réseaux ouverts) : il chiffre la session client→AP sans exiger de mot de passe, mais ne remplace pas une authentification forte pour les ressources sensibles.
| Standard | Nouveauté clé | Utilisation recommandée |
|---|---|---|
| WPA3-Personal | SAE (dragonfly), Forward Secrecy | SOHO, PME — résistant aux attaques dictionnaire |
| WPA3-Enterprise | Suite 192‑bit, EAP‑TLS recommandé | Entreprise critique |
| Enhanced Open (OWE) | Chiffrement sans mot de passe | Réseau invité / hotspot public |
UniFi propose des modes WPA2/WPA3 mixed pour assurer la compatibilité avec les anciens clients. Pour déployer WPA3 en PME, vérifiez que l'AP et tous les clients supportent WPA3 ; sinon, optez pour WPA2‑Enterprise avec EAP‑TLS.
4. Configuration Ubiquiti UniFi — SSID, VLAN, isolation et captive portal (20 min)
Sur le contrôleur UniFi :
- Créer un réseau RADIUS si nécessaire (Network → Add) ou vérifier que le switch trunk accepte le VLAN attribué.
-
Dans Settings → Wi‑Fi, créer un SSID
InnovatTech-Secure: choisir Security → WPA2‑Enterprise (ou WPA2/WPA3 mixed si pris en charge), renseigner l'adresse IP du serveur RADIUS (ex :192.168.10.20) et le secret partagé (testing123). -
Dans Advanced options, définir le VLAN ID si vous utilisez l'attribution
dynamique, ou configurer FreeRADIUS pour renvoyer
Tunnel‑Private‑Group‑ID. - Activer Block LAN to WLAN ou Client Isolation pour empêcher la communication inter‑clients selon la politique de sécurité.
- Pour un captive portal : Settings → Guest Control → enable Guest Portal, choisir présentation locale ou portail externe ; définir le mode (Hotspot manager, vouchers) et le chemin de redirection.
Le captive portal est réservé aux invités ; pour les employés, privilégiez toujours WPA2/WPA3 Enterprise avec RADIUS.
🔬 Travaux Pratiques (TP S2) (90 min)
Contexte
En tant que technicien InnovatTech, vous devez remplacer le SSID employé en PSK par un SSID
InnovatTech‑Secure utilisant WPA2‑Enterprise avec FreeRADIUS sur Debian, et valider
l'authentification depuis un poste Linux et un poste Windows.
Objectif
- Installer FreeRADIUS sur
debian-srv01et configurerclients.conf,usersetmods-available/eap. - Configurer UniFi SSID
InnovatTech-Securepour pointer vers FreeRADIUS. - Tester l'accès avec EAP‑PEAP (Linux et Windows).
Prérequis techniques
- VM/serveur Debian 12 (
debian-srv01) avec accès root - Contrôleur UniFi et AP adoptés
- Poste Linux avec
wpa_supplicantet OpenSSL installés - Compte test
alicedéfini dans/etc/freeradius/3.0/users
Étape 1 — Installer FreeRADIUS
sudo apt update
sudo apt install -y freeradius freeradius-utils
Étape 2 — Déclarer le point d'accès comme client RADIUS
Éditer /etc/freeradius/3.0/clients.conf et ajouter :
client unifi-ap {
ipaddr = 192.168.10.50
secret = testing123
shortname = unifi
}
Étape 3 — Créer un utilisateur de test
Éditer /etc/freeradius/3.0/users :
alice Cleartext-Password := "Passw0rd"
Étape 4 — Certificats et EAP
Générer CA et certificat serveur (voir Section 2) et configurer
mods-available/eap pour pointer vers
/etc/freeradius/3.0/certs/server.pem et server.key.
Étape 5 — Tester RADIUS en local
sudo systemctl restart freeradius
sudo freeradius -X # mode debug
# Dans un autre terminal
radtest alice Passw0rd 127.0.0.1 0 testing123
Attendu : radtest retourne Access‑Accept et
FreeRADIUS affiche la séquence d'authentification EAP et Access‑Accept.
Étape 6 — Configurer UniFi SSID
- Créer SSID
InnovatTech-Secure→ Security : WPA2‑Enterprise - RADIUS server :
192.168.10.20(debian-srv01), Port 1812, Secrettesting123 - VLAN : laisser dynamique (si RADIUS fournit VLAN) ou fixer si vous préférez.
Étape 7 — Tester depuis Linux (wpa_supplicant)
Créer /etc/wpa_supplicant/innovattech-secure.conf :
network={
ssid="InnovatTech-Secure"
key_mgmt=WPA-EAP
eap=PEAP
identity="alice"
password="Passw0rd"
phase2="auth=MSCHAPV2"
ca_cert="/etc/freeradius/3.0/certs/ca.pem"
}
sudo wpa_supplicant -i wlan0 -Dnl80211 \
-c /etc/wpa_supplicant/innovattech-secure.conf -B
sudo dhclient wlan0
Vérifier les logs FreeRADIUS (journalctl -u freeradius -f) ; vous devez voir une
requête Access‑Request et un Access‑Accept.
Étape 8 — Tester depuis Windows
- Ouvrir Paramètres → Réseau et Internet → Wi‑Fi → Gérer les réseaux connus → Ajouter un réseau.
- SSID :
InnovatTech-Secure; Sécurité : WPA2‑Enterprise ; Type d'EAP : PEAP ; Méthode : EAP‑MSCHAPv2. - Fournir identité
aliceet mot de passe. Cocher la validation du certificat serveur si la CA est installée sur la machine cliente (recommandé).
Livrable attendu
- Fichiers de configuration FreeRADIUS (
clients.conf,users,mods-available/eap) - Capture d'écran du log FreeRADIUS montrant
Access-Acceptpouralice. - Fichier
wpa_supplicantutilisé et capture d'écran de la connexion réussie sur Windows.
Critères de réussite
- ☐
radtestrenvoieAccess‑Acceptpouralice. - ☐ FreeRADIUS log montre l'authentification EAP‑PEAP réussie.
- ☐ Le client Linux obtient une adresse IP via DHCP après l'authentification.
Synthèse (10 min)
La transition PSK → Enterprise change radicalement le modèle d'authentification : on passe d'une clé partagée à une authentification centralisée basée sur RADIUS et EAP, avec la possibilité d'une attribution dynamique de VLAN et d'une meilleure traçabilité. WPA3 apporte des améliorations cryptographiques (SAE, forward secrecy) mais demande compatibilité matérielle et logicielle.
Pour une PME comme InnovatTech, la meilleure approche pratique est souvent : WPA2‑Enterprise avec PEAP pour la simplicité, évoluer vers EAP‑TLS et WPA3 lorsque la gestion de certificats et le parc client le permettent.
En une phrase, expliquez pourquoi la validation du certificat serveur est essentielle avec EAP‑PEAP.
🎮 Quiz — Testez vos connaissances
- Dans l'architecture 802.1X, quel composant relaie les messages EAP du client (supplicant) vers le serveur RADIUS ?
- Quelle méthode EAP nécessite des certificats X.509 côté client ET côté serveur, assurant ainsi l'authentification mutuelle ?
- Quel attribut RADIUS permet d'assigner dynamiquement un VLAN au client lors d'une authentification 802.1X réussie ?
- Quel protocole WPA3-Personal introduit-il pour résister aux attaques par dictionnaire hors ligne ?
- Dans FreeRADIUS, quelle commande permet de simuler une requête d'authentification RADIUS depuis le terminal ?
📝 Corrections
- L'authenticator (point d'accès / AP) — l'AP encapsule les messages EAPOL reçus du supplicant et les transmet via RADIUS (UDP/1812) au serveur d'authentification ; le secret d'authentification ne transite jamais par l'AP.
- EAP-TLS — EAP-TLS repose sur des certificats X.509 côté client et serveur, contrairement à PEAP/MSCHAPv2 qui ne certifie que le serveur ; c'est la méthode la plus robuste et la seule assurant une authentification mutuelle complète.
- Tunnel-Private-Group-ID — le serveur RADIUS inclut l'attribut Tunnel-Private-Group-ID dans l'Access-Accept pour indiquer le VLAN à assigner dynamiquement au client authentifié.
- SAE (Simultaneous Authentication of Equals) — SAE impose des échanges interactifs qui empêchent d'enregistrer des preuves exploitables hors session, rendant les attaques par dictionnaire hors ligne inefficaces, contrairement au 4-way handshake PSK de WPA2.
- radtest — la commande radtest (ex :
radtest alice Passw0rd 127.0.0.1 0 testing123) simule une requête Access-Request et affiche Access-Accept ou Access-Reject selon la configuration de FreeRADIUS.
