[LDAP] Probleme de connexion [Résolu/Fermé]

Signaler
-
 logic_sam -
Bonjour les Amis !
J'ai fait la config de mon serveur OPEN LDAP et tout marchait bien j'usqu'a ces deux jours.

A la commande :
ldapsearch -b « dc=cnce, dc=ci» « dc=cnce »

Il me repond :
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)

Pouvez vous m'aider ??

26 réponses

Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
C'est très bizarre que tu n'obtiennes pas une réponse avec telnet.

Et :

netstat -ltnp | grep :389
netstat -ltnp | grep :636


Celà donne quoi ?

Sinon, tu peux aussi essayer celà :

- commente tout le contenu de ton ldap.conf
- dans /etc/hosts (ton fichier hosts me semble mélanger localhost et l'adresse de ton interface réseau) mets :
127.0.0.1 localhost.localdomain localhost
10.1.50.244 dedev.cnce.ci dedev


Après retente :

telnet localhost 389

et retente un ldapsearch

ldapsearch -x -b 'dc=cnce, dc=ci' '(dc=cnce)'

Si celà ne marche toujours pas, remet ton ldap.conf en place, mais mets une directive URI la place de HOST

URI ldap://adresse.renvoyée.par.netstat-en-port-389

Sinon, là.. je suis un peu à court d'idées :)


Dal
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
Salut,

Essaye en utilisant cette option avec ldapsearch :
-x     Use simple authentication instead of SASL.

Dal
Ah sacré Dal , toujours à aider les autres

ldapsearch -b -x « dc=cnce, dc=ci» « dc=cnce »
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)


Ouf j'ai bien tenté cela aussi, mais cè la meme reponse. Le plus drole cè que ça marchait bien avant
Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
Re :)

Le -b sert à spécifier la "searchbase", du coup ton -x n'est pas pris en compte correctement car le client ldap comprend que c'est ta "searchbase".

Essaye comme çà :

ldapsearch -x -b 'dc=cnce, dc=ci' '(dc=cnce)'

Tes guillemets sont bizarres aussi (mais je ne crois pas que ce soit lié à ton problème, ni que tu utilises vraiment ces guillements là).


Dal
Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
Salut,

Le niveau de verbosité de mode de débogage doit être indiqué à la suite de l'argument -d. Comme indiqué dans la page de manuel, celui-ci est spécifié dans ldap.h.

Si tu as la flemme d'aller voir cet entête, tu peux accéder à la même information en consultant man slapd.conf et la détermination des niveaux "loglevel" qui suit les mêmes principes :
Log levels are additive, and available levels are:
                     1      trace function calls
                     2      debug packet handling
                     4      heavy trace debugging
                     8      connection management
                     16     print out packets sent and received
                     32     search filter processing
                     64     configuration file processing
                     128    access control list processing
                     256    stats log connections/operations/results
                     512    stats log entries sent
                     1024   print communication with shell backends
                     2048   entry parsing

Si tu veux avoir *toutes* les informations de débogage, l'argument à associer à -d est la somme de tous ces nombres, soit 4095.

Là tu devrais avoir une floppée d'informations (trop). Retire ce qui te semble superflu si nécessaire.

Sinon, le message d'erreur est instructif. Il est différent de celui apparaîssant lorsque tu tentes l'authentification par défaut SASL.

Dans ton ldap.conf essaye de spécifier une directive "HOST" désignant l'hôte sur lequel se trouve le serveur LDAP.

Vérifie que ton /etc/hosts.deny n'interdit pas l'accès à cet hôte, ou ajoute l'hôte en question à /etc/hosts.allow, ou mets y les lignes suivantes :

ldapd: ALL
slapd: ALL

Vérifie que les firewalls concernés n'interdisent pas l'accès au port 389 (essayes de faire un telnet sur le port 389).


Dal
Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
Arrives-tu à te connecter au serveur LDAP depuis une autre machine que le serveur lui-même ?


Dal
Non impossible je cherche toujours le pb
[root@dedev ~]# netstat -ltnp | grep :389
[root@dedev ~]#

J'ai modifié les fichiers comme ta demandé.

Netsat ne me donne rien du tout . Sait pas; cè com si impossible d'ouvrir ce port. Je pense que si d'ici demain je trouve rien, je vais tout recomencer à 0

Merci pour l'aide en tt cas

Si j'avance je te le dirai
Très cher Dal !

Je viens à l'instant même de trouver la faille.

J'ai viré l'ancienne base de données en effaçant carément le rep /var/lib/ldap.

J'ai recréé le rep /var/lib/ldap , proprietaire (ldap mode 777). 755 devrait suffire.

J'ai lu dans les docs sur le net k'1 caractère espace " " peut entrainer des dysfonctinnements graves. C'est ainsi que j'ai parcourru le /etc/openldap/slapd.conf en vérifiant tous les caractères à la recherche d'espace.

j'ai constaté que le paramètre rootpw étè séparé de sa valeur(secret) par un espace au lieu d'une tabulation.

J'ai corrigé en effaçant l'espace et insérant une tabulation, reconstruit la base de données avec les fichiers LDIF que j'avais pris soin de sauvegarder .


Tout marche pour le mieux maintenant. Voici mes logs que j'ai dirigé dans un fichier:

Oct 12 10:52:36 dedev slapd[6149]: conn=45 op=35 SRCH attr=dn
Oct 12 10:52:36 dedev slapd[6149]: conn=45 op=35 SEARCH RESULT tag=101 err=0 nentries

0 text

Oct 12 10:52:36 dedev slapd[6149]: conn=45 op=36 UNBIND Oct 12 10:52:36 dedev slapd[6149]: conn=45 fd=11 closed


En tout cas merci pour l'aide, tu m'a jamais lâché. J'essayerai d'aider d'autres utilisateurs à mon tour.
Ta peut être raison mais lorsque je fais les commandes ldapadd ou ldapsearch sans argument c'est le meme résultat.

Je pense qu'il y a un autre problème quelque part.



[root@dedev ~]#ldapadd
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
[root@dedev ~]# ldapsearch
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
Bonjour,

Ce n'est pas ce que je t'ai demandé de faire.

Si tu pouvais copier-coller et exécuter la ligne proposée en <3> ci-dessus, et poster ici le résultat du message d'erreur éventuel (que ce soit le même ou un message différent), celà ferait avancer les choses.

Là, tu persistes à tenter d'utiliser l'authentification SASL par défaut de ton serveur LDAP, qui visiblement ne fonctionne pas comme tu l'attends.

Ce que je te propose, c'est de tenter une connexion simple, pour tenter de localiser le problème, qui peut être lié à un mauvais paramétrage de ton authentification SASL, à un certificat SSL mal formé, à un problème de firewall,...

Tu peux aussi démarrer slapd dans une console avec les informations de débogage (option -d - vois man slapd), afin d'avoir plus d'informations sur les messages d'erreur, qui devraient s'afficher dans le terminal dès lors que tu tentes d'intéragir avec le serveur LDAP (à partir d'un autre terminal ou d'un client quelconque).


Dal
Salut Dal, merci de suivre le problème !


Voici les resultats du test

[root@dedev ~]# ldapsearch -x -b 'dc=cnce, dc=ci' '(dc=cnce)'
ldap_bind: Can't contact LDAP server (-1)


Je suis en train de tenter pour le mode debug

A tt de suite
J'ai activé le mode debug !!

Mais il est pas si bavard ke ça. Lorsque je lance la commande plus haut, il n'affiche rien de plus. Je creuse toujours
J'ai activé le mode debug .

slapd -d 4095


rien ne se passe kan je tente la recherche. Sans doute parceque les instructions ne sont pas envoyées au serveur LDAP,. En effet je fais

telnet 10.1.50.244 389 et ça échoue:

telnet: connect to address 10.1.50.244: Connection refused
telnet: Unable to connect to remote host: Connection refused

J'ai pas configuré de firewall non plus. En tt cas je pense pas.

Dans mon fichier /etc/openldap/ldap.conf j'ai inscrit l'adresse du serveur, mais rien à faire.

vois toi même :

HOST 10.1.50.244
BASE dc=cnce,dc=ci


Alors je continue de chercher pourquoi le port 389 n'est pas ouvert alors que le serveur est lancé.


Merci pour le suivi en tt cas
Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
Le démon est-il bien lancé ?

ps aux | grep slapd

Si c'est le cas, que tu es sur la même machine que le serveur et que tu as inclus les lignes indiquées à /etc/hosts.allow, et que ton firewall ne te joue pas des tours, peut-être est-il lancé sur un autre port que le port par défaut ?

Quelles sont les options de lancement de slapd (je ne suis pas sûr que celà soit géré par slapd.conf, car il y a des arguments de ligne de commande pour affecter le port d'écoute - vois donc aussi le script de lancement).

Sinon, ton message n'est pas clair sur ce que restitue exactement l'usage de l'option de débogage.

Chez moi, un démarrage de slapd avec cette option affiche plusieurs pages d'informations de débogage avant même que le serveur n'indique être démarré et qu'il soit à l'écoute des connexions.

Si tu n'as *aucune* information de débogage *du tout* qui s'affiche, il se peut que tu aies un problème avec l'exécutable slapd lui-même, ou une librairie qu'il utilise. Mais c'est étonnant que tu n'aies pas de message d'erreur.

Pour commencer, tu pourrais faire :

whereis sladp
ls -al /le/resultat/de/la/commande/whereis
ldd /le/resultat/de/la/commande/whereis



Dal
Mon ps :
ldap     21549  0.0  0.6  8776 3192 ?        Ss   13:33   0:00 /usr/sbin/slapd -u ldap -h ldap:///


Je vois bien le PID (21549)

J'ai remarqué quelque chose, D'après le fichier slapd.conf, les fichiers/var/run/slapd.pid et /var/run/slapd.args devraient exister au lancement. Ce n'est pas le cas en pratique.

Le mode debug me donne plein d'infos, mais pas de message d'erreur en particulier. Je pense qu'il m'indique qu'il a ouvert la base:
bdb_db_open: dc=cnce,dc=ci
bdb_db_open: dbenv_open(/var/lib/ldap)





Mon fichier /etc/openldap/slapd.conf :


include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/samba.schema




allow bind_v2



pidfile         /var/run/slapd.pid
argsfile        /var/run/slapd.args

        by anonymous auth
        by dn="cn=admin,dc=cnce,dc=ci" write
        by * none

access to *
        by dn="cn=admin,dc=cnce,dc=ci" write
        by * read



#######################################################################
# ldbm and/or bdb database definitions
#######################################################################

database        bdb
suffix          "dc=cnce,dc=ci"
rootdn "cn=admin,dc=cnce,dc=ci"

#rootpw JqNpwdSaoVPQnOSBuvfa1rAHTMyVd3b9
rootpw secret
#rootpw {SSHA}+pdZNlNjb3NxgXfe8Ov0d0fQWrUJh/GA

directory       /var/lib/ldap


index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub


Mon fichier /etc/hosts.allow :
127.0.0.1
10.1.50.244
ldapd: ALL
slapd: ALL



Mon fichier /etc/hosts
10.1.50.244     dedev.cnce.ci   dedev   localhost.localdomain   localhost


Franchement j'aurais désinstallé et réinstallé ce truc, mais sais pas si ça va aider. Je creuse un peu encore.
Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
hmm :)

Si on se résume, le démon semble bien lancé, il ouvre apparemment la base que tu as paramétrée, et il attend des connexions qui semblent ne jamais lui parvenir.

Les connexions vers l'hôte sont permises (en fait elles paraissent locales selon le contexte de ton /etc/hosts) et tu penses que tu n'as pas de firewall (vérifie quand même).

Tu n'as pas indiqué si tu avais vérifié le port sur lequel slapd démarre.

Vois celà dans les scripts de démarrage de ta machine (dans /etc/init.d/slapd je suppose sur CentOS).

Peut-être démarres-tu sur le port SSL/TLS de LDAP (qui serait 636) ou un autre port, alors que ldapsearch s'obstine à essayer d'utiliser le port par défaut 389.


Dal
Merci pour le suivi

Vérifié le pare feu, il est désactivé.

Le fichier de lancement en fait /etc/init.d/ldap (sur la CENTOS 4 ke j'utilise) lance le serveur avec la commande :

${slapd} -u ldap -h '"ldap:/// ldaps:///"'


D'apres le man (voir man slapd) , l'option -h '"ldap:/// ldaps:///"' doit lancer le serveur sur les ports par defaut que sont 389 et 636 .

Bien sure, la variable slapd est définie auparavant avec slapd=/usr/sbin/slapd

Le fichier de configuration qui va rechercher est le bon, j'ai vérifié.

Le plus triste dans tout cela, le serveur marchait avant. Je sais pas ce qui a bien pu se passer.

J'ai vu sur une page Web http://www.bo.infn.it/alice/introgrd/edg1-4/node8.html

Certains éléments que j'utilise actu pour mes recherches. Bon je continue de chercher. Si t'a quelque chose n'hesites pas car la, suis ds la m....
Le réinstallation me donne le meme problème. Sais pas d'ou l'erreur peut venir. Je cherche toujours.

A bientôt
Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
Essaye de démarrer en slapd -d 9 et poste le résultat ici.

Celà devrait réduire le volume d'informations de débogage à des informations plus pertinentes. Il y a peut être une erreur signalée quelque part que tu n'as pas vue.

Sinon, au cas où, en dehors de ton ldap.conf, tu n'as pas de .ldaprc dans ton répertoire home ?


Dal
Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
Bravo :)

Le coup de l'espace m'était arrivé également il y a longtemps, mais je ne rappelais pas que celà donnait ce type de message d'erreur (et il me semblait que le problème survenait quand l'espace se situe avant la directive).

Par curiosité, j'aurai bien voulu savoir si le démarrage manuel slapd -d donnait un message d'erreur plus explicite.

Sinon, tu devrais sans doutes changer le mot de passe (qui est le mot de passe par défaut) et le crypter avec slappasswd, comme celà :

slappasswd -s monnouveaumotdepassetresdur

... et tu copies le résultat dans ton slapd.conf.

Bonne continuation !


Dal
Non, en lançant le mode debug, il n'y a pas de message d'erreur qui s'affiche. Le serveur montre les initialisations, ... et dit que la BD est démarrée et initialisée.

C'est vrai qu'on aurrait pu s'attendre à un truc genre "invalid credential..." pour le mot de passe......mais boff.. Peut être aussi que la BD a été corrompue.

Pour le pwd, je le changerai, t'inkiète cè plus simple pke je teste l'annuaire. Il me sera utile pour mes developpements (système SSO) en interrogeant l'annuaire.

Merci pour tout DAL
Salut Dal, Si t'es encore la, j'ai eu le même problème par deux fois encore. J'ai juste regénéré l'annuaire à l'aide de copies du fichier LDIF.

ldapadd -D "cn=admin,dc=cnce,dc=ci" -x -W -f /home/wamoikon/Ldif_complet.txt

En fait cela se passe chaque fois que la machine est arrêtée brutalement. La base de données est immédiatement corrompue.

Voila, encore merci pr l'autre fois
Bonsoir Willy,

Tu devrais peut-être changer de disque ;-) simple joke... désolé

Maintenant, sans blaque (d'autant qu'elle était mauvaise):
- Quel SF as-tu sur /var , journalisé ou pas?
- Y a-t-il de la place sur la partie associée à /var
j'ai eu le sale tour de bourrer le disque ou était /var à cause d'un log aérophagique, du coup lorsque j'ai ajouté des comptes, la base de donnée ldap était un peu moisie (carrément niquée quoi...). Remède, poser soigneusement l'annuaire dans un coin peinard avec plein d'espace et pas de risque, et faire quand même qqs "df" régulièrement ou encore mieux ajouter un outils de contrôle de charge des disques.

Christian

PS.
Côté espace, le caractère ' ' cette fois, c'est aussi dans le LDIF qu'ils sont rigolos, en fin de ligne, ils impliquent de continuer l'affectation du champ avec le contenu de la ligne suivante, un truc de bleu of course, mais après de un peu de temps de speed, ça tue!!!
Pour ma part j'en veux à plus finir aux développeurs qui ont spécifiés LDIF ... là encore je blague ;-)), mais quand même, quèque chose qui s'voit, c'est ben mieux qu'un :
grep " $" toto.ldif
!!!
j'ai rencontré ce probléme hier le syntaxe est
ldapsearch -x -b « dc=cnce, dc=ci» « dc=cnce »
Messages postés
4
Date d'inscription
dimanche 18 novembre 2007
Statut
Membre
Dernière intervention
30 novembre 2007

lol pour moi fonctionne la commande search mais toujour a la meme reponse