Aller au contenu

FreeRADIUS sous Ubuntu

De Wiki Pat-Informatik
🏠 Accueil 📚 Index 🐧 Linux 🌐 Réseau 🔒 Cybersécurité 🖥️ Virtualisation ✅ Checklists d'intervention 📚 Tutoriels 🤝 Services
🛠️ Tutoriel : installer FreeRADIUS sous Ubuntu
Sécuriser un réseau Wi-Fi avec WPA2/WPA3-Enterprise et 802.1X

⚠️ 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 :

  1. Créez un nouveau réseau sans fil, par exemple `PAT-INFORMATIK-PRO`.
  2. Sélectionnez WPA2-Enterprise ou WPA3-Enterprise, selon les capacités des équipements.
  3. Activez l'authentification 802.1X.
  4. Indiquez l'adresse IP du serveur RADIUS : `192.168.1.20` dans cet exemple.
  5. Indiquez le port d'authentification RADIUS : `1812` en UDP.
  6. Renseignez le secret partagé configuré dans `clients.conf`.
  7. 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 :

  1. Sélectionnez le réseau Wi-Fi Enterprise.
  2. Choisissez la méthode EAP prévue par l'administrateur.
  3. Configurez l'autorité de certification et le nom attendu du serveur lorsque le système le permet.
  4. Saisissez les identifiants de test si la méthode choisie les utilise, ou installez le certificat client si EAP-TLS est utilisé.
  5. 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

13. 🔗 Pages associées