Se connecter / S'enregistrer
Votre question

[resolu]Openldap

Tags :
  • Internet
Dernière réponse : dans Internet
2 Mars 2010 14:04:08

Bonjour,

Je désire couplé openldap et freeradius ensemble.
En suivant plusieurs tutoriaux comme :

http://uid.free.fr/Ldap/ldap.html

http://monblog.system-linux.net/blog/2008/10/28/borne-d...

http://www.debian-administration.org/article/OpenLDAP_i...


il est marqué qu'il fallait ajouter " ojectClass: radiusProfile" or quand je rajoute ceci il me met une erreur et ne rajoute pas mon utilisateur. Cependant j'ai bien renommé openldap.schema en freeradius.schema et fait mon include dans radiusd.conf.

Je ne peux pas aussi rajouter "objectClass: dialupadmin".

Quand je fais mon radtest sur freeradius j'ai une erreur de type acces-reject (...) invalid signature (err=2) (shared secret is incorrect.)

Donc sachant que le freeradius -X ne pose pas de probléme cela vient sans doute d'une mauvaise configuration dans openldap.

Avez vous une solution ?

Merci
Cordialement

Autres pages sur : resolu openldap

3 Mars 2010 09:30:58

Finalement le schema est bien ajouté. J'arrive à ajouter mes utilisateurs avec objectclass: radiusprofile mais toujours pas avec dialupaccess. Je pense que ce n'est pas grave car dans mon fichier radiusd.conf j'ai une ligne qui est basefilter=(radiusprofile).

Mais quand je fais un radtest ... j'ai toujours la même erreur :

type acces-reject (...) invalid signature (err=2) (shared secret is incorrect.)


Une solution ?

Merci
m
0
l
3 Mars 2010 14:19:36

salut je ne conais pas radius, mais aparement en lisant le message d'erreur et un peut le tuto je pensse que "shared secret" est un mot de passe et il disent dans le tuto qu'il doit etre fort ce qui veut dire qu'il doit contenut des chifres, des lettre et aussi des caractere du style "@ ! ; ç" tout ca, et au moin 6 ou 8 caracteres, ceci deja regleras surement un problem.
et pour le "err = 2" essaye de voir sur la doc de radius cela doit etre surement expliquer.


apres avoir lu a peut pres tout le tuto tu ne t'y est peut etre pas pris dans le bon sens, etant donner que ton projet demande un serveur LDAP, un dhcp et un radius, perssonelement j'aurais monter un dhcp classique pour comencer, ensuite un LDAP , et ensuite j'aurais monter un radius et j'aurais modifier les chose a modifier dans le dhcp et le LDAP a ce moment la.
m
0
l
Contenus similaires
3 Mars 2010 14:52:19

L'infrastruture est un peu différente du tuto car :

J'ai une debian lenny qui fait dns, serveur web, freeradius, openldap ayant pour adresse 172.16.1.2. Elle représente le web dans ma maquette.

Cette debian est relié à un commutateur de niveau 3 ASA 5505. La debian fait partie du vlan1. Le port du vlan1 ASA a comme adrese 172.16.1.1.

Ensuite il y a le vlan 2

Sur les autres port du ASA concernant le vlan2 l'adresse sera 192.168.1.1
(Entre les différents réseau il y a du NAT )

Sur une patte du vlan2 il y a un portail captif (pfsense) ayant comme adresse 192.168.1.3 (cette patte est la partie WAN) En suite sur la partie LAN de pfsense adresse 10.0.0.1 nous avons une borne wifi. Le but c'est que nos clients wifi arrive à s'authentifier via le portail captif et puissent consulter notre serveur web sur notre debian. C'est le portail captif qui fait dhcp pour les clients qui se connecteront sur la borne.

Avec le serveur radius de microsoft tout marche bien. Le portail captif contact mon serveur 2003 et tout se fait correctement mis avec freeradius et openldap rien ne fonctionne.



Quand je fais : radtest user password 127.0.0.1 1812 motdepasse

Access-reject

Donc là maintenant je séche.


m
0
l
4 Mars 2010 01:57:40

ok la je t'avourais que ca depasse de loin mes competences et vu l'infrastructure que tu as entre tes main il te faudrais un ingenieur reseaux pour ca, apres si tu me dit que le radius de microsoft fonctionne essaye d'appliquer les meme reglages mais je ne pourais t'aider plus bon courage.
m
0
l
4 Mars 2010 22:54:44

J'ai monté un truc assez similaire (pfsense+freeradius+annuaire ldap) au taf :

Je ne te montre ici que les paramètres que tu dois adapter (le reste c'est soit par défaut, soit inutile dans ton cas, soit qui relève du bon sens)

clients.conf
  1. [...]
  2. client 1.2.3.4 {
  3. secret = unloginpourpfsense
  4. shortname = unmotdepasspouralleravec
  5. }
  6. [...]

users
  1. [...]
  2. DEFAULT Auth-Type = System
  3. Fall-Through = 1
  4. DEFAULT Auth-Type := LDAP
  5. Fall-Through = 1
  6. [...]

ldap.attrmap
  1. [...]
  2. checkItem User-Password userPassword
  3. [...]

radiusd.conf
  1. [...]
  2. modules {
  3. [...]
  4. ldap PRIMAIRE {
  5. server = "ldap.example.org"
  6. basedn = "ou=users,dc=example,dc=org"
  7. filter = "(&(cn=%{Stripped-User-Name:-%{User-Name}}))"
  8. base_filter = "(UN FILTRE)"
  9. start_tls = no
  10. dictionary_mapping = ${raddbdir}/ldap.attrmap
  11. ldap_connections_number = 5
  12. timeout = 4
  13. timelimit = 3
  14. net_timeout = 1
  15. }
  16. [...]
  17. }
  18. [...]
  19. authenticate {
  20. Auth-Type LDAP {
  21. group {
  22. PRIMAIRE
  23. [...]
  24. }
  25. }
  26. [...]
  27. }
  28. [...]


m
0
l
5 Mars 2010 09:52:44

Bonjour,

Merci pour cette réponse et je suis aussi sous pfsense. Je vais tester avec tes fichiers de configuration mais je me permet de te mettre les miens et je ne vois pas spécialement ou j'ai fais une erreur. Par contre comment as tu créer tes utilisateurs dans openldap ?

Clients.conf

  1. client 192.168.1.3 {
  2. secret = monmotdepasse
  3. shortname = wifi
  4. nastype = other
  5. }


Radiusd.conf

  1. stripped_names = yes
  2. auth = yes
  3. auth_badpass = yes
  4. auth_goodpass = yes
  5.  
  6. server = srvdebian.cisco.local
  7. identity = "cn=admin,dc=cisco,dc=local"
  8. password = monmotdepasseadmin
  9. basedn = "dc=cisco,dc=local"
  10. #filter = "(&(uid=%{Stripped-User-Name:-%{User-Name}})
  11. base_filter = "(objectclass=radiusprofile)" ( J'ai bien objectClass radiusProfile pour mes utilisateurs )
  12. password_attribute = userPassword



site-enabled/default et sites-enabled/inner-tunnel

  1. ldap
  2. checkval
  3. Auth-Type LDAP {
  4. ldap
  5. }




Ensuite pour openldap

Le fichier slapd.conf
J'ai bien rajouté le schéma.
rootdn = cn=admin,dc=cisco,dc=local
rootpw = monmotdepasseadmin

Maintenant pour ajouter mes utilisateurs et mes groupes j'ai utilisé phpldapadmin.

J'ai crée une OU utilisateurs
Puis aprés un groupe avec ojectclass=posixgroup qui est partenaires

Ensuite pour créer mes utilisateurs j'ai crée dans mon groupe un " userAccount"
Par défaut il a objectClass inetOrgPersonn, posixAccount, Top et je lui rajoute par la suite radiusProfile.

Voilà normalement c'est tout car je ne souhaite pas faire de tls ou eap ni rien.

Mais quand je fais mon radtest :

radtest test test 192.168.1.3 1812 motdepasseadmin
no response from server for id 137 socket 3

radtest test test 127.0.0.1 1812 testing123 (mot de passe localhost par defaut)
Access-Reject packet from host 127.0.0.1 port 1812 id=120 length=20


Avec une capture de trame on voit bien la requéte radius et le refus.
Les logs :

Auth: rlm_unix: [test]: invalid shell [/bin/false]
Auth: invalid_user: [test/test](from client localhost port 1812)

L'installation sur ma debian lenny :

apt-get install openldap freeradius freeradius-ldap phpldapadmin

Merci pour votre aide.
Cordialement.
m
0
l
5 Mars 2010 21:14:02

et est ce que tu as des requête ldap en parallèle au refus radius ?

pour le radtest, il faut que le compte de test existe mais également que tu utilise une séquence autorisée dans le clients.conf

dans site-enabled/default, tu demande au radius d'utiliser le module nommé "ldap", hors je ne vois pas dans ta conf la déclaration de ce module (compare avec mon radiusd.conf, ligne 4 et 22)

pour la création des utilisateurs, ça ne s'applique pas chez toi, je n'utilise pas un openldap
En passant, tu n'as pas besoin d'un schéma en particulier, ceux par défaut suffise dans ce cas précis, il te faut juste un login (cn ou uid ou ce que tu veux) et un password (userpassword ou password ou ce que tu veux), le radius se contente de faire un BIND ldap (tenter une authentification avec les infos saisies), ce qui par défaut est autorisé sans être authentifié (donc pas besoin non plus des lignes 7 et 8 de ton Radiusd.conf)

par contre il faut bien penser à utiliser les bons champs (d'où le fichier ldap.attrmap qui permet de dire quoi=quoi et la manière dont du map tes users dans la déclaration du module ldap du radius)



pour simplifier les choses, autorise le bind anonyme dans l'openldap (si ce n'est déjà fait) :
  1. [...]
  2. access to attrs=userPassword
  3. by anonymous auth
  4. [...]


créé un user tout simple à la racine de ton arbre (login+pass), par exemple monloginldap/monpasswordldap

du coté freeradius créé 2 clients basic
clients.conf
  1. [...]
  2. client 127.0.0.0/8 {
  3. secret = passwordradius
  4. shortname = localhost
  5. }
  6. client 192.168.0.0/16 {
  7. secret = passwordradius
  8. shortname = lan
  9. }
  10. [...]


dans le radiusd.conf, déclare correctement le module ldap
  1. [...]
  2. modules {
  3. [...]
  4. ldap MONANNUAIRE{
  5. server = "adresse ip du serveur ldap"
  6. basedn = "dc=cisco,dc=local"
  7. #remplace "cn" par le champ correspondant au login dans ton annuaire
  8. filter = "(&(cn=%{Stripped-User-Name:-%{User-Name}}))"
  9. start_tls = no
  10. #si le champ du password n'est pas User-Password, utilise le fichier suivant
  11. dictionary_mapping = ${raddbdir}/ldap.attrmap
  12. ldap_connections_number = 5
  13. timeout = 4
  14. timelimit = 3
  15. net_timeout = 1
  16. }
  17. [...]
  18. }
  19. [...]
  20. authenticate {
  21. Auth-Type LDAP {
  22. group {
  23. #ici c'est le nom que tu as donné plus haut ligne 4
  24. MONANNUAIRE
  25. [...]
  26. }
  27. }
  28. [...]
  29. }
  30. [...]


et test en surveillant les logs radius et ldap
radtest monloginldap monpasswordldap adresse.du.serveur.radius 10 passwordradius

tu dois avoir ceci en retour :
  1. Sending Access-Request of id 183 to 127.0.0.1 port 1812
  2. User-Name = "monloginldap"
  3. User-Password = "monpasswordldap"
  4. NAS-IP-Address = 255.255.255.255
  5. NAS-Port = 10
  6. rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=183, length=20
m
0
l
6 Mars 2010 22:16:41

Ok merci de ta réponse j'essaye ça dés demain matin et je te tiens au courant. Dans mon radiusd.conf posté à la ligne 6 c'est le commencement de mon module ldap. Seulement je n'est pas mis le nom de mon annuaire.

Merci
m
0
l
8 Mars 2010 12:03:34

Malgrés toutes tes infos impossible de faire fonctionner correctement freeradius avec openldap.

clients.conf

  1. clients 127.0.0.0/8 {
  2. secret = motdepasseduclient
  3. shortname = localhost
  4. }
  5.  
  6. client 192.168.1.3 {
  7. secret = motdepasseduclient
  8. shortname = wifi
  9. }



radiusd.conf

  1. Modules {
  2. ....
  3.  
  4. ldap ldap {
  5. #
  6. # Note that this needs to match the name in the LDAP
  7. # server certificate, if you're using ldaps.
  8. server = "127.0.0.1"
  9. #identity = "cn=admin,o=My Org,c=UA"
  10. #password = mypass
  11. basedn = "dc=cisco,dc=local"
  12. filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
  13. #base_filter = "(objectclass=radiusprofile)"


ldap.attrmap

  1. .........
  2. checkItem $GENERIC$ radiusCheckItem
  3. replyItem $GENERIC$ radiusReplyItem
  4.  
  5. checkItem Auth-Type radiusAuthType
  6. checkItem Simultaneous-Use radiusSimultaneousUse
  7. checkItem Called-Station-Id radiusCalledStationId
  8. checkItem Calling-Station-Id radiusCallingStationId
  9. checkItem LM-Password lmPassword
  10. checkItem NT-Password ntPassword
  11. checkItem LM-Password sambaLmPassword
  12. checkItem NT-Password sambaNtPassword
  13. checkItem SMB-Account-CTRL-TEXT acctFlags
  14. checkItem Expiration radiusExpiration
  15. checkItem NAS-IP-Address radiusNASIpAddress
  16. checkItem User-Password userPassword
  17. ........


Dans ldap il y a bien:

  1. access to attrs=userPassword,shadowLastChange
  2. by dn="cn=admin,dc=cisco,dc=local" write
  3. by anonymous auth
  4. by self write
  5. by * none


sites-enabled/default
  1. authenticate
  2. .....
  3. Auth-Type LDAP {
  4. ldap
  5. }

Donc voilà je ne sais toujours pas ou j'ai fais une erreur.

Dans les logs de freeradius il n'y a rien de spéciale.

Quand je fais un radtest test test 192.168.1.3 1812 motdepasseduclient


Sending Access-Request of id 205 to 127.0.0.1 port 1812
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 127.0.1.1
NAS-PORT = 0
radclient: no response from server for ID 205 socket 3
m
0
l
9 Mars 2010 09:57:10

Tous mes fichiers sont par défaut sauf le peu de choses que j'ai modifié. Aprés mes clients sont déclaré correctement. J'ai lu la doc et je ne vois pas l'utilité des virtual host.
m
0
l
11 Mars 2010 16:13:54

Je t'ai envoyé mes fichiers de configuration par mail, compare avec les tiens.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS