[FRsAG] Apache/Radius - authentification radius sur HTTP

Clément Guivy clement at guivy.fr
Mar 17 Jan 18:37:34 CET 2012


Bonjour,

Dans le but de centraliser un peu l'authentification de nos applicatifs 
web, je cherche à mettre en place l'authentification sur base radius. Le 
serveur sur lequel je fais mes test est un Debian, qui héberge également 
la base radius. J'ai donc Apache 2 et Freeradius d'installés, et j'ai 
installé le package libapache2-mod-auth-radius pour faire le lien entre 
les deux. Dans ma conf Apache j'ai défini un répertoire comme suit :

<Directory /usr/share/mondossier>
        AuthType Basic
         AuthName "Authentification requise (RADIUS)."
         AuthBasicProvider radius
         AuthRadiusActive On
         require user cguivy
</Directory>

Jusqu'ici ça marche (quand je tente d'accéder au repertoire en HTTP, 
j'ai la popup qui me demande mon login/mot de passe et m'accepte/me 
jette en fonction de ce que je lui réponds). Ce que je voudrais 
maintenant c'est autoriser uniquement les utilisateurs d'un groupe 
radius défini, par exemple le groupe "Network". Mon user "cguivy" est 
dans le groupe Network dans la base radius (c'est une base mysql), en 
tout cas dans la table radusergroup j'ai bien un enregistrement qui 
relie le username "cguivy" au groupname "Network".

Dans la conf de mon répertoire apache j'ai donc changé "require user 
cguivy" par "require group Network", mais une fois ceci fait, impossible 
de s'authentifier, et dans le log d'erreur d'Apache j'ai :

[Tue Jan 17 17:50:00 2012] [error] [client 1.2.3.4] access to 
/mondossier/ failed, reason: require directives present and no 
Authoritative handler.

(et cela si je tape le bon mot de passe, si j'en mets un mauvais j'ai un 
message d'erreur "password mismatch")

Je ne suis pas sûr d'arriver à interpréter ce message d'erreur, surtout 
la fin qui parle d'"Authoritative handler".

Par ailleurs je remarque autre chose, quand je teste mon user avec 
l'utilitaire radtest, si je mets le bon mot de passe j'obtiens :

root at serveur:/etc/apache2# radtest cguivy motdepasse 127.0.0.1 1812 secret
Sending Access-Request of id 137 to 127.0.0.1 port 1812
         User-Name = "cguivy"
         User-Password = "motdepasse"
         NAS-IP-Address = 1.2.3.4
         NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=137, 
length=51
         Cisco-AVPair = "shell:priv-lvl=15"
         Service-Type = Administrative-User

A aucun moment il n'est fait mention du groupe Network, je me demande si 
freeradius a bien "compris" que je voulais que mon user soit dans ce 
groupe. Egalement, quand je regarde dans les logs de freeradius, je vois 
que la requête faite par Apache a un "Service-Type" à 
"Authenticate-Only" ce qui me fait croire qu'il ne tente pas de vérifier 
le groupe par ce biais, juste le mot de passe. Mais là j'avoue que ma 
connaissance de radius n'est pas suffisante pour que je sois certain de 
mon analyse.

Des idées pour me débloquer ?

S'il faut remplacer libapache2-mod-auth-radius par autre chose c'est 
possible, s'il faut passer par autre chose qu'un groupe (par exemple un 
av-pair) pour que ça marche c'est possible aussi.
Merci.


Cordialement,

Clément Guivy


More information about the FRsAG mailing list