Avant toute chose, un peu de théorie.
À quoi sert radius ?
http://fr.wikipedia.org/wiki/Remote_Authentication_Dial-In_User_Service
En bref, il sert à authentifier une personne à un service, il permet d’autoriser ou refuser toto à se connecter à un service.
Par exemple : l’utilisateur toto veut 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 a bien la permission de se connecter au service FTP à l’heure actuelle. Le serveur RADIUS va retrouver l’utilisateur toto dans un annuaire LDAP ou comme ici dans une base de données 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 peut 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
Création 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 teste :
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
-> access-accept = OK
CTRL+C
service freeradius restart