FreeRadius

De NCad Wiki
Aller à la navigation Aller à la recherche

Présentation

FreeRadius (Remote Authentication Dial-In User Service) est un serveur Radius libre sous license BSD soutenu par la société Network Radius SARL. Le protocol RADIUS permet de centraliser les informations d'authentification des utilisateurs. Ces informations sont stockées dans une base de données. Elles sont sollicitées lorsque le client (l'utilisateur) tente d'établir une session. La requête est alors transmise à un serveur (client) qui soumet la requête d'authentification au serveur radius central. Cet exemple peut être illustré avec les réseaux wifi de grande envergure. Les utilisateurs sont stockés dans la base de données du serveur radius. L'opérateur dispose de plusieurs points d'accès pour proposer son service sans fil. Lorsqu'un client se connecte avec ses identifiants, ces derniers sont soumis à la borne wifi. Cette dernière transmet la requête d'authentification au serveur RADIUS central qui répond favorablement ou non à la requête initiale.

Installation

Serveur FreeRadius

  • Le logiciel serveur FreeRadius est disponible dans les dépôts Ubuntu. Pour l'installer il suffit de lancer la commande suivante :

sudo apt-get install freeradius freeradius-utils freeradius-mysql

Module MySQL

Ce module permettra de renseigner directement dans la base de données les clients et utilisateurs RADIUS au lieu d'éditer les fichier clients.conf et users.

  • Le package contenant les tables sont disponibles dans le dossier /etc/freeradius/sql/mysql/. Il suffira d'exécuter les fichiers de commandes schema et nas depuis l'utilitaire phpMyAdmin par exemple.
Créez une base de données spécialement pour le serveur RADIUS. Dans notre cas nous l’appellerons freeradius. Elle contiendra les tables et enregistrements pour le serveur.
  • Pour que FreeRadius interroge la base de données MySQL, il faut adapter le fichier de configuration sql.conf qui regroupe les informations de connexion au serveur ()
sql {
       database = "mysql"        
       driver = "rlm_sql_${database}"
       server = "<ip_server>"
       login = "<login>"
       password = "<mot_de_passe>"
       radius_db = "<nom_de_la_base_mysql>"
[...]
}