FreeRADIUS sous Ubuntu
| 🏠 Accueil | 📚 Index | 🐧 Linux | 🌐 Réseau | 🔒 Cybersécurité | 🖥️ Virtualisation | ✅ Checklists d'intervention | 📚 Tutoriels | 🤝 Services |
|---|
⚠️ Atelier de test : les commandes ci-dessous supposent une installation Ubuntu utilisant les fichiers de configuration FreeRADIUS 3.x. Vérifiez votre version avant toute modification. Les certificats de démonstration ne doivent pas être utilisés en production.
1. 🎯 Objectif de l'atelier
À la fin de ce tutoriel, vous saurez :
- Installer FreeRADIUS sur Ubuntu.
- Vérifier le fonctionnement du serveur.
- Déclarer un point d'accès Wi-Fi comme client RADIUS.
- Créer un compte de test.
- Comprendre le rôle des certificats et de l'authentification EAP.
- Configurer un équipement Wi-Fi compatible 802.1X.
- Diagnostiquer les erreurs d'authentification.
Architecture utilisée dans cet exemple :
| Élément | Valeur d'exemple |
|---|---|
| Serveur Ubuntu / FreeRADIUS | 192.168.1.20 |
| Point d'accès Wi-Fi | 192.168.1.10 |
| Réseau local | 192.168.1.0/24 |
| Nom du Wi-Fi | PAT-INFORMATIK-PRO |
| Compte de test | testwifi |
Ces adresses sont fictives : remplacez-les par celles de votre réseau. Attribuez de préférence une adresse fixe ou une réservation DHCP au serveur RADIUS.
2. 📦 Installer FreeRADIUS
Connectez-vous au serveur Ubuntu en SSH ou depuis un terminal local.
Étape 1 : mettre Ubuntu à jour
sudo apt update sudo apt upgrade
Étape 2 : installer les paquets
sudo apt install freeradius freeradius-utils
Étape 3 : vérifier la version
freeradius -v
Étape 4 : vérifier le service
sudo systemctl status freeradius
Si le service n'est pas actif :
sudo systemctl enable --now freeradius
Étape 5 : vérifier la configuration
sudo freeradius -XC
Une configuration correcte doit être analysée sans erreur. Cette vérification contrôle la syntaxe et le chargement des éléments de configuration, mais ne valide pas à elle seule une connexion Wi-Fi complète.
3. 👤 Créer un compte de test RADIUS
Pour commencer, nous allons utiliser le module de fichiers local de FreeRADIUS. Cela permet de tester le serveur sans installer immédiatement un annuaire LDAP ou Active Directory.
Sur de nombreuses installations Ubuntu avec FreeRADIUS 3.x, le fichier des utilisateurs se trouve ici :
/etc/freeradius/3.0/mods-config/files/authorize
Avant toute modification, sauvegardez le fichier :
sudo cp /etc/freeradius/3.0/mods-config/files/authorize \ /etc/freeradius/3.0/mods-config/files/authorize.bak
Ouvrez-le :
sudo nano /etc/freeradius/3.0/mods-config/files/authorize
Ajoutez une entrée de test :
testwifi Cleartext-Password := "REMPLACER_PAR_UN_MOT_DE_PASSE_DE_TEST"
Remplacez le texte du mot de passe par une valeur temporaire suffisamment robuste pour votre laboratoire. N'utilisez pas ce compte pour des données réelles.
Enregistrez avec `Ctrl + O`, puis quittez avec `Ctrl + X`.
Important : cette entrée permet de tester une authentification compatible avec le module de fichiers. Elle ne suffit pas à rendre un compte utilisable avec toutes les méthodes EAP. En particulier, PEAP avec MSCHAPv2 nécessite une configuration d'authentification interne adaptée.
4. 🧪 Tester le serveur en local
Avant de configurer le point d'accès, testez la communication RADIUS depuis le serveur lui-même.
Exécutez :
radtest testwifi MOT_DE_PASSE_DE_TEST 127.0.0.1 0 testing123
Remplacez `MOT_DE_PASSE_DE_TEST` par le mot de passe que vous avez défini.
Le secret `testing123` correspond à la configuration de l'entrée localhost fournie par défaut dans certaines installations. Vérifiez le fichier `clients.conf` si le test échoue ; ne supposez pas que ce secret existe encore si la configuration a été modifiée.
Une réponse `Access-Accept` indique que le test a été accepté. Une réponse `Access-Reject` indique un refus. Ce test ne valide pas encore le Wi-Fi ni EAP.
5. 📡 Déclarer le point d'accès Wi-Fi
Le point d'accès est un client RADIUS. Il doit être autorisé par le serveur à envoyer des requêtes.
Le fichier se trouve habituellement à :
/etc/freeradius/3.0/clients.conf
Sauvegardez-le avant modification :
sudo cp /etc/freeradius/3.0/clients.conf \ /etc/freeradius/3.0/clients.conf.bak
Ouvrez le fichier :
sudo nano /etc/freeradius/3.0/clients.conf
Ajoutez à la fin :
client point_acces_wifi {
ipaddr = 192.168.1.10
secret = REMPLACER_PAR_UN_SECRET_ALEATOIRE_LONG
}
Adaptez l'adresse IP à celle du point d'accès. Choisissez un secret partagé long et aléatoire, puis saisissez exactement le même secret dans l'interface de l'équipement Wi-Fi.
Ne confondez pas :
- Le secret partagé RADIUS, utilisé entre le point d'accès et le serveur.
- Le mot de passe de l'utilisateur, utilisé par la méthode d'authentification choisie.
Le serveur doit pouvoir recevoir les requêtes du point d'accès. Autorisez les ports nécessaires uniquement depuis les équipements de confiance.
6. 🔐 Configurer les certificats EAP
Les méthodes EAP qui utilisent TLS s'appuient sur des certificats. Le client doit pouvoir vérifier l'identité du serveur d'authentification.
FreeRADIUS fournit souvent des certificats de démonstration dans :
/etc/freeradius/3.0/certs/
Vérifiez les fichiers présents :
sudo ls -l /etc/freeradius/3.0/certs/
Les fichiers peuvent comprendre une autorité de certification de test, un certificat serveur et une clé privée.
Ne réutilisez pas les certificats de démonstration en production. Pour un déploiement réel, créez une autorité de certification maîtrisée ou utilisez une PKI adaptée, puis délivrez un certificat serveur avec le nom attendu par les clients.
Comprendre les deux principales approches
| Méthode | Fonctionnement | À prévoir |
|---|---|---|
| EAP-TLS | Authentification par certificats côté serveur et côté client. | Certificat serveur, autorité de confiance et certificats clients. |
| PEAP avec MSCHAPv2 | Tunnel TLS côté serveur, avec authentification interne par identifiants. | Certificat serveur valide et configuration compatible pour les identifiants. |
EAP-TLS est une excellente option lorsque la gestion des certificats clients est possible. PEAP avec MSCHAPv2 peut être utilisé dans certaines infrastructures existantes, mais exige une configuration appropriée et une validation stricte du certificat serveur.
Localiser la configuration EAP
Sur une installation FreeRADIUS 3.x :
/etc/freeradius/3.0/mods-available/eap
Avant de modifier ce fichier, sauvegardez-le :
sudo cp /etc/freeradius/3.0/mods-available/eap \ /etc/freeradius/3.0/mods-available/eap.bak
Examinez les paramètres de certificats, la méthode EAP par défaut et les sections TLS. Les chemins, noms des paramètres et valeurs exactes dépendent de la version installée.
Ne remplacez pas tout le fichier EAP par un petit extrait générique. Modifiez uniquement les paramètres nécessaires en conservant la structure fournie par votre version. La documentation officielle FreeRADIUS donne les exemples adaptés à chaque méthode.
7. ⚙️ Configurer le point d'accès Wi-Fi
Dans l'interface d'administration du point d'accès ou du contrôleur Wi-Fi :
- Créez un nouveau réseau sans fil, par exemple `PAT-INFORMATIK-PRO`.
- Sélectionnez WPA2-Enterprise ou WPA3-Enterprise, selon les capacités des équipements.
- Activez l'authentification 802.1X.
- Indiquez l'adresse IP du serveur RADIUS : `192.168.1.20` dans cet exemple.
- Indiquez le port d'authentification RADIUS : `1812` en UDP.
- Renseignez le secret partagé configuré dans `clients.conf`.
- Enregistrez les paramètres et appliquez-les.
Le port UDP 1813 est habituellement utilisé pour la comptabilisation des sessions si cette fonction est activée.
Les menus varient selon le fabricant. Certains contrôleurs permettent également d'attribuer des VLAN ou des règles réseau en fonction de la réponse RADIUS.
8. 🔥 Vérifier le pare-feu
RADIUS utilise généralement UDP 1812 pour l'authentification et UDP 1813 pour la comptabilisation.
Si UFW est actif, autorisez l'accès depuis l'adresse du point d'accès uniquement. Exemple :
sudo ufw allow from 192.168.1.10 to 192.168.1.20 port 1812 proto udp sudo ufw allow from 192.168.1.10 to 192.168.1.20 port 1813 proto udp sudo ufw status
Adaptez les adresses et n'ouvrez le port 1813 que si la comptabilisation est utilisée.
N'exposez pas ces ports à Internet. Le serveur RADIUS doit rester accessible uniquement aux équipements réseau autorisés.
9. 🔎 Diagnostiquer une connexion
Pour observer les requêtes en temps réel, le mode diagnostic est très utile.
Arrêtez temporairement le service si nécessaire :
sudo systemctl stop freeradius
Lancez FreeRADIUS en mode diagnostic :
sudo freeradius -X
Essayez ensuite de connecter un appareil au Wi-Fi.
Observez les messages dans le terminal. Vous pouvez voir les requêtes reçues, les étapes EAP et la décision finale.
Pour revenir au fonctionnement normal, arrêtez le diagnostic avec `Ctrl + C`, puis relancez le service :
sudo systemctl start freeradius
Interpréter les erreurs
| Message ou symptôme | Vérifications |
|---|---|
| Aucun paquet reçu | Adresse du serveur, routage, pare-feu et port UDP 1812. |
| Client inconnu | Adresse IP source du point d'accès dans `clients.conf`. |
| Échec de validation du secret | Secret partagé identique sur le serveur et le point d'accès. |
| `Access-Reject` | Identifiants, méthode EAP et configuration d'authentification interne. |
| Erreur de certificat | Date de validité, nom du serveur, autorité de certification et chaîne de confiance. |
| Authentification acceptée, mais pas d'accès réseau | DHCP, VLAN, règles réseau, DNS et routage. |
10. 💻 Configurer le client Wi-Fi
Sur un ordinateur ou un smartphone :
- Sélectionnez le réseau Wi-Fi Enterprise.
- Choisissez la méthode EAP prévue par l'administrateur.
- Configurez l'autorité de certification et le nom attendu du serveur lorsque le système le permet.
- Saisissez les identifiants de test si la méthode choisie les utilise, ou installez le certificat client si EAP-TLS est utilisé.
- Lancez la connexion et vérifiez les journaux FreeRADIUS.
Les intitulés et options dépendent de Windows, Linux, Android, iOS et du pilote Wi-Fi.
Sécurité : ne désactivez pas la validation du certificat serveur pour contourner une erreur. Cela pourrait permettre à un serveur frauduleux de se faire passer pour votre serveur RADIUS.
11. ✅ Checklist de validation
- [ ] FreeRADIUS est installé et son service démarre.
- [ ] La configuration est validée sans erreur.
- [ ] Le serveur possède une adresse IP stable.
- [ ] Le point d'accès est déclaré comme client RADIUS.
- [ ] Le secret partagé correspond sur les deux équipements.
- [ ] Le pare-feu autorise uniquement les équipements nécessaires.
- [ ] Les certificats sont valides et leur chaîne de confiance est vérifiée.
- [ ] Le point d'accès est configuré en WPA2/WPA3-Enterprise avec 802.1X.
- [ ] Le client utilise la bonne méthode EAP.
- [ ] Une authentification réussie est visible dans les journaux.
- [ ] L'appareil obtient une adresse IP et accède uniquement aux ressources autorisées.
12. 📚 Documentation officielle
- Documentation FreeRADIUS
- Tutoriel EAP-TLS
- Documentation Ubuntu de clients.conf
- RFC 2865 — RADIUS
- RFC 3579 — RADIUS et EAP