Authentification centralisée - FreeRadius

I) Pré-requis :
I.1 InstallationPour que le tls fonctionne il est nécessaire de télécharger et installer la version CVS. En effet la licence du logiciel OpenSSL n'étant pas compatible avec la licence GPL de FreeRADIUS, les modules EAP/TLS (rlm_eap_tls.so) et EAP/TTLS (rlm_eap_ttls.so) ne sont pas compilés par défaut dans le package FreeRADIUS sur Debian.
Pour les télécharger aller sur Le site FreeRadius
Dans /usr/local/src/ :
tar zxvf freeradius-snapshot-xxxxxxxx.tar.gz
cd freeradius-snapshot-xxxxxxxx/
./configure --prefix=/
make
make install
I.2 Configuration
Pour tester les possibilités d'authentification nous avons monté une maquette.
Vous trouverez ci-dessous un schéma et les fichiers de configurations de FreeRadius que nous avons utilisés.

Fichier | Description |
clients.conf | Clients autorisé à communiquer avec FreeRadius (Switch, Borne, ...) |
users | Utilisateur autorisé selon différent critère. Méthode et paramètre de connexion |
huntgroups | Défini les huntgroups (Pour nommer un groupe de client) |
radiusd.conf | Fichiers principal de configuration |
eap.conf | Regroupe tous les modules d’authentification EAP |
proxy.conf | Pour définir « ce domaine c'est ce radius qui s'en occupe » |
ldap.attrmap | Permet de faire correspondre les attributs LDAP et Radius |
En premier exemple voici une connexion locale d'un interne en Wifi.
Nous allons suivre en détail la connection d'un utilisateur. En couleur, les lignes concernant cette exemple.
-- 1 -- L'utilisateur sélectionne le Réseau où il souhaite rentrer.
-- 2 -- Une info-bulle apparaît en bas à droite. En cliquant dessus, il est invité à entrer son Login/Mot de passe.
Une requête de ce type est envoyé a FreeRadius depuis la borne.
-- 3 -- FreeRadius va d'abord commencer par la partie Authentification (Qui me parle ?)
cf. Fichier Clients.conf
La requête viens de 192.168.0.4 (La borne Wifi), ce clients est connu et authorisé à communiquer avec FreeRadius si le secret partagé est le même.
cf. Fichier Proxy.conf
Il récupère le login/mot de passe, et remarque que le realm est NULL (Pas de @truc après le login), ce qui signifie que c'est à lui (en LOCAL) de s'occuper de cette requête
cf. Fichier Huntgroup
Définition des Huntgroups, qui vont servir une fois lecture du fichier users.
Ainsi la borne Wifi fait partie des « client802.1x »
cf. Fichier users
FreeRadius parcours ce fichier de haut en bas, si une ligne (check items) correspond alors il applique les attributs (reply items) au client. Dans notre exemple FreeRadius Match sur cette ligne car la requête viens bien d'un client 802.1x locale (la borne Wifi).
Ensuite il lit dans la base LDAP que cette utilisateur fait partie du groupe INTERNE.
-- 4 -- Partie Autorisation (Quelles autorisations je lui accorde ?)
cf. Fichier users
Lecture des Reply Items. Dans notre cas, on permet à cette utilisateur de rentrer dans le VLAN 23
-- 5 -- Partie Accounting (Que fait-il ?)
En connaissant cela, on en arrive à l'organigrame suivant lors de la demande d'authentification d'un utilisateur :
I.3 Diagramme du fichier USERS
