Salut Alarig, Le mercredi 16 avril 2014 à 19:20 +0200, alarig a écrit :
J’assaie de mettre en place un serveur RADIUS pour les services que nous allons mettre en place. Là où je suis bloqué c’est pour le tester. J’ai créé un user directement sur la base MySQL (je ne sais pas s’il y a plus propre)
mysql> INSERT INTO radcheck (username, attribute, value) VALUES ('altest', 'Password', 'testpasswd'); Query OK, 1 row affected (0.07 sec)
mysql> SELECT * FROM radcheck; +----+----------+-----------+----+------------+ | id | username | attribute | op | value | +----+----------+-----------+----+------------+ | 1 | altest | Password | == | testpasswd | +----+----------+-----------+----+------------+ 1 row in set (0.00 sec)
Alors déjà, ce n'est pas le bon attribut et pas le bon opérande :-) Tu devrais avoir eu des avertissements par freeradius ; d'ailleurs, quand tu fais des essais, fais le tourner avec "-X" pour avoir la sortie de debug (à ajouter à FREERADIUS_OPTIONS dans /etc/default/freeradius). Puisque tu mets un mot de passe en clair, l'attribut c'est "Cleartext-Password", et l'opérande c'est ":=" (cf <http://freeradius.org/radiusd/man/users.html>). Pour comprendre pourquoi c'est ":=", le truc c'est que ça ne fait _pas_ la vérification du password directement, mais ça _ajoute_ un attribut à la requête, qui sera vérifiée plus tard en fonction de la configuration de freeradius (qui verra si on peut faire un check par mot de passe en clair ; par exemple, en CHAP, on ne vérifie pas l'égalité du pass, puisque ça marche par un challenge, mais ce dernier utilisera le mdp en clair pour créer le challenge). Cette fonction dépend de la manière dont tu as configuré la section "authorize", que j'avoue avoir quand même un peu de mal à comprendre totalement, qui doit contenir une des méthodes que tu autorises pour l'authentification (je conseille CHAP pour faire « simple », mais tu peux passer à EAP si tu aimes jouer).
Il existe aussi une commande radtest mais je ne sais pas comment je dois l’interpréter.
$ radtest altest testpasswd localhost 10 secret Sending Access-Request of id 112 to 127.0.0.1 port 1812 User-Name = "altest" User-Password = "testpasswd" NAS-IP-Address = 127.0.1.1 NAS-Port = 10 Message-Authenticator = 0x00000000000000000000000000000000 (et ça tourne en boucle)
Ça veut dire que tu envoies en boucle des requêtes, et que tu n'obtiens pas de réponse. Bien penser que RADIUS est un protocole déconnecté (en UDP), ce qui fait qu'on est un peu moins sûr de l'état du bouzin quand on ne reçoit pas de réponse (est-ce que le serveur ne tourne simplement pas ? est-ce que c'est autre chose qui merde ?). Si ça marche, tu auras une réponse positive Access-Accept (oui, les deux mots se ressemblent beaucoup et ça porte souvent à confusion), et si c'est refusé, un Access-Reject.
J’ai suivi la doc filée par le paquet freeradius et leur wiki. La structure de la base de donnée vient de aussi de chez eux (le .tar.gz pour être précis).
Bizarre, dans <http://freeradius.org/doc/> ils indiquent comme « Initial Tests » les valeurs que je t'ai donné… Après, la doc freeradius c'est un peu la jungle. -- benjamin