Avant toute chose, un peu de théorie.

A quoi sert radius?

http://fr.wikipedia.org/wiki/Remote_Authentication_Dial-In_User_Service

En bref, il sert a authentifier une personne à un service, il permet d’autoriser ou refuser toto a se connecter a un service.
Par exemple: l’utilisateur toto veux se connecter à un serveur FTP, ce serveur est configuré pour tourner avec un serveur radius.
L’utilisateur se connecte au FTP, le FTP va demander au serveur RADIUS si la personne à bien la permission de se connecter au service FTP à l’heure actuelle. Le serveur RADUIS va retrouver l’utilisateur toto dans un annuaire LDAP ou comme ici dans une base de donnée SQL,  RADIUS va ensuite vérifier si l’utilisateur a bien la permission d’accéder ou non suivant les préférences. Et il va contacter le FTP pour lui dire si oui ou non l’utilisateur peux se connecter.

On y va

Installation des paquets nécessaires :

apt-get install mysql-server mysql-client phpmyadmin freeradius freeradius-utils freeradius-mysql

Création de la table et de l’utilisateur

echo "create database radius;" | mysql -u root –p
echo "grant all on radius.* to radius@'localhost' identified by 'password_bdd'; flush privileges;" | mysql -u root –p
mysql –u root -p radius < /etc/freeradius/sql/mysql/schema.sql
mysql –u root -p radius < /etc/freeradius/sql/mysql/nas.sql

Creation d’un utilisateur

echo "INSERT INTO radcheck(UserName,Attribute,Value) VALUES (‘Toto’,’Password’,'Azerty123');" | mysql -u root -p radius

Configuration de freeradius

nano /etc/freeradius/sql.conf

Modifier le contenu:

password=motDePasseSQL
readclient=yes

nano /etc/freeradius/radiusd.conf

Décommenter $INCLUDE sql.conf

nano /etc/freeradius/sites-available/default

Décommenter sql dans “authorize”, “accounting” et “session”

nano /etc/freeradius/clients.conf

secret = superSecret (mot de passe pour le radtest notamment)

On test :

service freeradius stop
freeradius -X

(et regarder si tout est OK, pas de message d’erreur)

radtest Toto Azerty123 127.0.0.1 0 superSecret

-> acces-accept = OK
CTRL+C

service freeradius restart