Re: freeradius
Tahar BEN ACHOUR a écrit :
> Bonsoir à tous,
>
> Je suis en train de configurer un serveur radius qui devrait servir à attribuer des IP à des clients lors de leur connexion, j'ai mis en place un radius avec SQL comme base de donnée.
>
> En faisant des tests j'arrive à accéder à la base mais je n'arrive pas du tout à m'authentifier pourtant j'ai renseigner Cleartext-Password dans mes attributs au niveau de la base. Par contre j'arrive à me connecter avec mon compte Linux. Je ne comprends pas pourquoi il ne prend pas en compte le mot de passe stocké dans mysql.
>
> Sinon y a-t-il un moyen de me connecter sans mot de passe, je voudrais juste m'authentifier avec un ID unique tel qu'un numéro de Téléphone c'est possible ?
>
> Merci
>
>
> Voici la sortie que donne radius lorsque j'essai de m'authentifier avec mes comptes stockés sur ma base MySQL
>
> rad_recv: Access-Request packet from host 127.0.0.1 port 35640, id=252, length=57
> User-Name = "tahar"
> User-Password = "123"
> NAS-IP-Address = 192.168.1.100
> NAS-Port = 1812
> +- entering group authorize {...}
> ++[preprocess] returns ok
> ++[chap] returns noop
> ++[mschap] returns noop
> [suffix] No '@' in User-Name = "tahar", looking up realm NULL
> [suffix] No such realm "NULL"
> ++[suffix] returns noop
> [eap] No EAP-Message, not doing EAP
> ++[eap] returns noop
> ++[unix] returns updated
> ++[files] returns noop
> expand: %{User-Name} -> tahar
> [sql] sql_set_user escaped user --> 'tahar'
> rlm_sql (sql): Reserving sql socket id: 3
> expand: SELECT id, username, attribute, value, op FROM radcheck WHERE username = '%{SQL-User-Name}' ORDER BY id -> SELECT id, username, attribute, value, op FROM radcheck WHERE username = 'tahar' ORDER BY id
> [sql] User found in radcheck table
> expand: SELECT id, username, attribute, value, op FROM radreply WHERE username = '%{SQL-User-Name}' ORDER BY id -> SELECT id, username, attribute, value, op FROM radreply WHERE username = 'tahar' ORDER BY id
> expand: SELECT groupname FROM radusergroup WHERE username = '%{SQL-User-Name}' ORDER BY priority -> SELECT groupname FROM radusergroup WHERE username = 'tahar' ORDER BY priority
> expand: SELECT id, groupname, attribute, Value, op FROM radgroupcheck WHERE groupname = '%{Sql-Group}' ORDER BY id -> SELECT id, groupname, attribute, Value, op FROM radgroupcheck WHERE groupname = 'test' ORDER BY id
> [sql] User found in group test
> expand: SELECT id, groupname, attribute, value, op FROM radgroupreply WHERE groupname = '%{Sql-Group}' ORDER BY id -> SELECT id, groupname, attribute, value, op FROM radgroupreply WHERE groupname = 'test' ORDER BY id
> rlm_sql (sql): Released sql socket id: 3
> ++[sql] returns ok
> ++[expiration] returns noop
> ++[logintime] returns noop
> ++[pap] returns updated
> Found Auth-Type = PAP
> +- entering group PAP {...}
> [pap] login attempt with password "123"
> [pap] Using CRYPT encryption.
> [pap] Passwords don't match
> ++[pap] returns reject
> Failed to authenticate the user.
> Using Post-Auth-Type Reject
> +- entering group REJECT {...}
> expand: %{User-Name} -> tahar
> attr_filter: Matched entry DEFAULT at line 11
> ++[attr_filter.access_reject] returns updated
> Delaying reject of request 1 for 1 seconds
> Going to the next request
> Waking up in 0.9 seconds.
> Sending delayed reject for request 1
> Sending Access-Reject of id 252 to 127.0.0.1 port 35640
> Waking up in 4.9 seconds.
> Cleaning up request 1 ID 252 with timestamp +147
> Ready to process requests.
>
>
>
>
Bonsoir,
Tu as activé le module "unix" qui dit à FreeRADIUS de regarder les
logins/MdP sur le système et non dans la base de données.
C'est dans le fichier /etc/freeradius/site-enabled/default (ou un
autre fichier si tu as créé un autre site). Tu cherches la section
authenticate{ ... }
Tu commentes "unix".
Il faudra peut-être faire de même (et décommenter "sql") dans la section
authorize{ ... }.
Je vois dans tes logs que tu utilises pap. Je te conseille d'utiliser
chap, voir ms-chap, car avec pap le mot de passe circule en clair sur le
réseau (donc sécurité presque nulle).
Si ca ne marche pas, va dans MySQL, et tapes les commandes suivantes (et
envoyer sur la liste les résultats) :
SELECT id, username, attribute, value, op FROM radcheck
WHERE username = 'tahar' ORDER BY id ;
> [sql] User found in radcheck table
SELECT id, username, attribute, value, op FROM radreply
WHERE username = 'tahar' ORDER BY id ;
SELECT groupname FROM radusergroup WHERE username =
'tahar' ORDER BY priority ;
SELECT id, groupname, attribute, Value, op FROM
radgroupcheck WHERE groupname = 'test' ORDER BY id ;
SELECT id, groupname, attribute, value, op FROM
radgroupreply WHERE groupname = 'test' ORDER BY id ;
Bonne soirée,
GL
Reply to:
- References:
- freeradius
- From: Tahar BEN ACHOUR <tahar_ba@yahoo.fr>