📡 WPA2‑Enterprise, RADIUS et WPA3

B2 3h30 C2.1.4 — Séance 2 SISR
FormationBTS SIO option SISR — IRIS Mediaschool
Bloc / ModuleB2 — M2.1 Infrastructure réseau
CompétencesB2.1 / B2.2
Durée3h30
PrérequisAvoir 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.

🎯 À l'issue de cette séance, vous serez capable de :
  • 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éthodeCertificat serveurCertificat clientAuth. mutuelleComplexité déploiement
EAP‑PEAP/MSCHAPv2✅ Requis❌ Non requis❌ PartielleFaible
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
✅ Résultat attendu

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.

StandardNouveauté cléUtilisation recommandée
WPA3-PersonalSAE (dragonfly), Forward SecrecySOHO, PME — résistant aux attaques dictionnaire
WPA3-EnterpriseSuite 192‑bit, EAP‑TLS recommandéEntreprise critique
Enhanced Open (OWE)Chiffrement sans mot de passeRéseau invité / hotspot public
⚠️ Migration pratique

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 :

  1. Créer un réseau RADIUS si nécessaire (Network → Add) ou vérifier que le switch trunk accepte le VLAN attribué.
  2. 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).
  3. Dans Advanced options, définir le VLAN ID si vous utilisez l'attribution dynamique, ou configurer FreeRADIUS pour renvoyer Tunnel‑Private‑Group‑ID.
  4. Activer Block LAN to WLAN ou Client Isolation pour empêcher la communication inter‑clients selon la politique de sécurité.
  5. 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.
💡 Bonne pratique

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-srv01 et configurer clients.conf, users et mods-available/eap.
  • Configurer UniFi SSID InnovatTech-Secure pour 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_supplicant et OpenSSL installés
  • Compte test alice dé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, Secret testing123
  • 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

  1. Ouvrir Paramètres → Réseau et Internet → Wi‑Fi → Gérer les réseaux connus → Ajouter un réseau.
  2. SSID : InnovatTech-Secure ; Sécurité : WPA2‑Enterprise ; Type d'EAP : PEAP ; Méthode : EAP‑MSCHAPv2.
  3. Fournir identité alice et 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-Accept pour alice.
  • Fichier wpa_supplicant utilisé et capture d'écran de la connexion réussie sur Windows.

Critères de réussite

  • radtest renvoie Access‑Accept pour alice.
  • ☐ 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.

❓ Question de vérification

En une phrase, expliquez pourquoi la validation du certificat serveur est essentielle avec EAP‑PEAP.


🎮 Quiz — Testez vos connaissances

  1. Dans l'architecture 802.1X, quel composant relaie les messages EAP du client (supplicant) vers le serveur RADIUS ?
  2. Quelle méthode EAP nécessite des certificats X.509 côté client ET côté serveur, assurant ainsi l'authentification mutuelle ?
  3. Quel attribut RADIUS permet d'assigner dynamiquement un VLAN au client lors d'une authentification 802.1X réussie ?
  4. Quel protocole WPA3-Personal introduit-il pour résister aux attaques par dictionnaire hors ligne ?
  5. Dans FreeRADIUS, quelle commande permet de simuler une requête d'authentification RADIUS depuis le terminal ?
📝 Corrections
  1. 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.
  2. 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.
  3. 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é.
  4. 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.
  5. 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.