[LDAP] Probleme de connexion

Résolu
Willy -  
 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 ??
Configuration: LINUX CENTOS

26 réponses

  • 1
  • 2
  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
  2. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut,

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

    Dal
    1
    1. Willy
       
      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
      0
  3. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
    1
  4. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Arrives-tu à te connecter au serveur LDAP depuis une autre machine que le serveur lui-même ?

    Dal
    1
  7. Willy
     
    Non impossible je cherche toujours le pb
    1
  8. Willy
     
    [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
    1
  9. Willy
     
    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 </pre>

    En tout cas merci pour l'aide, tu m'a jamais lâché. J'essayerai d'aider d'autres utilisateurs à mon tour.
    1
  10. Willy
     
    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)
    0
  11. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
    0
    1. Willy
       
      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
      0
    2. Willy
       
      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
      0
  12. Willy
     
    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
    0
  13. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
    0
  14. Willy
     
    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.
    0
  15. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
    0
  16. Willy
     
    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....
    0
  17. Willy
     
    Le réinstallation me donne le meme problème. Sais pas d'ou l'erreur peut venir. Je cherche toujours.

    A bientôt
    0
  18. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
    0
  19. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
    0
    1. willy
       
      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
      0
    2. Willy
       
      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
      0
      1. cd > Willy
         
        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
        !!!
        0
  20. gat
     
    j'ai rencontré ce probléme hier le syntaxe est
    ldapsearch -x -b « dc=cnce, dc=ci» « dc=cnce »
    0
  21. isetso Messages postés 4 Statut Membre
     
    lol pour moi fonctionne la commande search mais toujour a la meme reponse
    0
  • 1
  • 2