Forum Linux.debian/ubuntu Remise à zéro d'une installation de LDAP (2.4.31-1+nmu2) sur une Debian Wheezy

Posté par (page perso) . Licence CC by-sa
Tags :
1
26
juil.
2013

Bonjour,

Je fais fasse à un problème actuellement, après de nombreux essais infructueux de mise en place d'un serveur LDAP (dans le but de faire une authentification unique sur des multi VM xen) via TLS, j'ai décidé de me passer de TLS, pour déjà mettre en place LDAP SANS protection (oui,je sais, c'est mal).

Grand mal m'en à pris de désinstaller (peut-être un peu barbarement) slapd (openldap-server) en faisant :

aptitude remove --purge slapd ldap-utils
rm -rf /var/lib/ldap
rm -rf /usr/lib/ldap
rm -rf /etc/ldap

J'ai bien sur, gardé un backup de tous ces dossiers (sauf /usr/lib/ldap -_-), et mon problème est le suivant :

malgré un aptitude install --reinstall slapd, j'ai peur qu'il me manque des fichiers, car il m'est depuis impossible d'ajouter/modifier quoi que ce soit dans ma configuration.

Exemple :

root@DATA:/etc/ldap# ldapmodify -Y EXTERNAL -H ldapi:/// -f olcDbIndex.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}hdb,cn=config"
**ldap_modify: Undefined attribute type (17)
additional info: olcDbIndex: attribute type undefined**

le contenu de olcDbIndex.ldif : (qui provient de http://wiki.debian.org/LDAP/OpenLDAPSetup)

dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: cn pres,sub,eq
-
add: olcDbIndex
olcDbIndex: sn pres,sub,eq
-
add: olcDbIndex
olcDbIndex: uid pres,sub,eq
-
add: olcDbIndex
olcDbIndex: displayName pres,sub,eq
-
add: olcDbIndex
olcDbIndex: default sub
-
add: olcDbIndex
olcDbIndex: uidNumber eq
-
add: olcDbIndex
olcDbIndex: gidNumber eq
-
add: olcDbIndex
olcDbIndex: mail,givenName eq,subinitial
-
add: olcDbIndex
olcDbIndex: dc eq

Avez-vous une idée de la provenance de cette erreur ? (mes nombreuses, vraiment nombreuses recherches sont restées sans résultat).
Est-il possible de supprimer complètement LDAP/SASL pour repartir from scratch ? (la dernière fois que j'ai essayé de le faire, je n'avais plus de dossier /etc/ldap, ou des erreurs de droit d'accès à ce même dossier)

Merci d'avance !

  • # il ne connait pas olcDbIndex

    Posté par . Évalué à 3.

    additional info: olcDbIndex : attribute type undefined

    il te manquerait un shema ?

    • [^] # Re: il ne connait pas olcDbIndex

      Posté par (page perso) . Évalué à 0.

      Alors, aucune de trace de "olcDbIndex" dans aucun des schemas que j'ai restauré de ma 1ere install de ldap. (dans /etc/ldap/schema)
      Voici la liste de ce que j'ai :

      total 236K
      -rw-r--r-- 1 root root 2,0K juil. 26 00:45 collective.ldif
      -rw-r--r-- 1 root root 2,2K juil. 26 00:45 collective.schema
      -rw-r--r-- 1 root root 1,9K juil. 26 00:45 corba.ldif
      -rw-r--r-- 1 root root 2,1K juil. 26 00:45 corba.schema
      -rw-r--r-- 1 root root 21K juil. 26 00:45 core.ldif
      -rw-r--r-- 1 root root 20K juil. 26 00:45 core.schema
      -rw-r--r-- 1 root root 12K juil. 26 00:45 cosine.ldif
      -rw-r--r-- 1 root root 14K juil. 26 00:45 cosine.schema
      -rw-r--r-- 1 root root 4,8K juil. 26 00:45 duaconf.ldif
      -rw-r--r-- 1 root root 11K juil. 26 00:45 duaconf.schema
      -rw-r--r-- 1 root root 3,3K juil. 26 00:45 dyngroup.ldif
      -rw-r--r-- 1 root root 3,3K juil. 26 00:45 dyngroup.schema
      -rw-r--r-- 1 root root 3,4K juil. 26 00:45 inetorgperson.ldif
      -rw-r--r-- 1 root root 6,2K juil. 26 00:45 inetorgperson.schema
      -rw-r--r-- 1 root root 3,0K juil. 26 00:45 java.ldif
      -rw-r--r-- 1 root root 3,3K juil. 26 00:45 java.schema
      -rw-r--r-- 1 root root 2,1K juil. 26 00:45 misc.ldif
      -rw-r--r-- 1 root root 2,4K juil. 26 00:45 misc.schema
      -rw-r--r-- 1 root root 6,7K juil. 26 00:45 nis.ldif
      -rw-r--r-- 1 root root 7,5K juil. 26 00:45 nis.schema
      -rw-r--r-- 1 root root 3,3K juil. 26 00:45 openldap.ldif
      -rw-r--r-- 1 root root 1,5K juil. 26 00:45 openldap.schema
      -rw-r--r-- 1 root root 6,8K juil. 26 00:45 pmi.ldif
      -rw-r--r-- 1 root root 20K juil. 26 00:45 pmi.schema
      -rw-r--r-- 1 root root 4,0K juil. 26 00:45 ppolicy.ldif
      -rw-r--r-- 1 root root 4,6K juil. 26 00:45 ppolicy.schema
      -rw-r--r-- 1 root root 3,5K juil. 26 00:45 README
      -rw-r--r-- 1 root root 22K juil. 25 23:19 samba.schema

      • [^] # Re: il ne connait pas olcDbIndex

        Posté par . Évalué à 2. Dernière modification le 26/07/13 à 15:02.

        ici, dans un ldap fraichement installé, sans rien de plus que la config de base (dc=domain,dc=com)
        il trouve

        slapd.d/cn=config/olcDatabase={1}hdb.ldif:olcDbIndex: objectClass eq

        tu dois pouvoir refaire la configuration de base en demandant

        dpkg-reconfigure slapd
        • [^] # Re: il ne connait pas olcDbIndex

          Posté par (page perso) . Évalué à 0.

          Le problème étant que j'ai déjà dû faire 30 fois le dpkg-reconfigure slapd (avec toutes les combinaisons possible) !

          Pourrais-tu me faire un "tree" de ton /etc/ldap si tu es sous wheezy ? Peut-être qu'il me manque des fichiers ?!

          • [^] # Re: il ne connait pas olcDbIndex

            Posté par . Évalué à 2.

            bon je suis sous ubuntu 12.04.2, mais ca ne doit pas changer grand chose

            dpkg -l | grep slapd
            ii  slapd                                2.4.28-1.1ubuntu4.2          OpenLDAP server (slapd)
            

            le resultat du tree

            ldap/
            ├── ldap.conf
            ├── sasl2
            ├── schema
            │   ├── collective.ldif
            │   ├── collective.schema
            │   ├── corba.ldif
            │   ├── corba.schema
            │   ├── core.ldif
            │   ├── core.schema
            │   ├── cosine.ldif
            │   ├── cosine.schema
            │   ├── duaconf.ldif
            │   ├── duaconf.schema
            │   ├── dyngroup.ldif
            │   ├── dyngroup.schema
            │   ├── inetorgperson.ldif
            │   ├── inetorgperson.schema
            │   ├── java.ldif
            │   ├── java.schema
            │   ├── ldapns.schema
            │   ├── misc.ldif
            │   ├── misc.schema
            │   ├── nis.ldif
            │   ├── nis.schema
            │   ├── openldap.ldif
            │   ├── openldap.schema
            │   ├── pmi.ldif
            │   ├── pmi.schema
            │   ├── ppolicy.ldif
            │   ├── ppolicy.schema
            │   └── README
            └── slapd.d
                ├── cn=config
                │   ├── cn=module{0}.ldif
                │   ├── cn=schema
                │   │   ├── cn={0}core.ldif
                │   │   ├── cn={1}cosine.ldif
                │   │   ├── cn={2}nis.ldif
                │   │   └── cn={3}inetorgperson.ldif
                │   ├── cn=schema.ldif
                │   ├── olcBackend={0}hdb.ldif
                │   ├── olcDatabase={0}config.ldif
                │   ├── olcDatabase={-1}frontend.ldif
                │   └── olcDatabase={1}hdb.ldif
                └── cn=config.ldif

            sinon quand je veux purger ldap

            aptitude purge slapd
            rm -r `locate slapd`
            aptitude install slapd
            dpkg-reconfigure slapd

            c'est bourrin mais ca marche plutot bien

            • [^] # Re: il ne connait pas olcDbIndex

              Posté par (page perso) . Évalué à 0.

              Je vais essayer (en dernier recours, vu le nombre de fois ou je l'ai fait sans résultat) ta méthode de purge :)

              En tout cas, merci, car j'ai découvert qu'il me manquait 2 paquets (il me manquait 2 fichiers dans schema) : libnss-ldap libnss-ldapd

              par contre, je n'ai que 3 fichiers et aucun dossier dans /etc/ldap/slapd.d/cn=config :

              -rw------- 1 openldap openldap 396 juil. 25 23:04 cn=schema.ldif
              -rw------- 1 openldap openldap 543 juil. 25 23:04 olcDatabase={0}config.ldif
              -rw------- 1 openldap openldap 657 juil. 25 23:04 olcDatabase={-1}frontend.ldif

              Je n'ai AUCUNE idée de pourquoi ?!

              Le reste semble plus ou moins identique. Une idée peut-être ?!

            • [^] # Re: il ne connait pas olcDbIndex

              Posté par . Évalué à 2.

              rm -r locate slapd

              C'est pas un peu barbare ? Je veux dire, ne risques-tu pas de supprimer un truc qui n'aurait rien à voir avec slapd ?

              • [^] # Re: il ne connait pas olcDbIndex

                Posté par . Évalué à 2.

                evidemment avant de vraiment faire le rm -r, j'ai juste fais un locate slapd et j'ai regardé ce que ca sortait.

  • # Faut arrêter les bêtises

    Posté par . Évalué à 2.

    Pour réinitialiser la configuration d'un serveur OpenLDAP, un "aptitude purge slapd" éventuellement suvi de "rm -rf /etc/ldap /var/lib/ldap" doit suffir. Ce n'est pas normal d'avoir à effacer /usr/lib/ldap. Quant à effacer slapd à la main, c'est du n'importe quoi. Si tu as cochoné ton système à ce point, il vaut mieux le réinstaller complètement.

    j'ai décidé de me passer de TLS, pour déjà mettre en place LDAP SANS protection (oui,je sais, c'est mal)

    Tu es conscient que, non seulement tes clients ne vont pas authentifier le serveur, mais qu'en plus les mots de passe utilisateurs vont circuler en clair sur le réseau ? La question de la configuration de TLS avec OpenLDAP a été posée récemment sur ces forums et j'y avais répondu en expliquant la marche à suivre.

    il me manquait 2 paquets (il me manquait 2 fichiers dans schema) : libnss-ldap libnss-ldapd

    Ces deux paquets sont incompatibles. Ils font le même travail et on ne peut normalement pas les installer en même temps sous Debian.

    • [^] # Re: Faut arrêter les bêtises

      Posté par (page perso) . Évalué à 0. Dernière modification le 28/07/13 à 12:54.

      Ok, j'ai purgé comme tu l'a indiqué, et j'ai reconfiguré mon LDAP en utilisant le TLS, j'en arrive au même point qui m'avait fait abandonner le TLS :

       # /etc/init.d/slapd start
      Starting OpenLDAP: slapd failed!
      
       Jul 28 10:47:11 localhost slapd[10192]: @(#) $OpenLDAP: slapd  (Apr 23 2013 12:16:04) $root@lupin:/tmp/buildd/openldap-2.4.31/debian/build/servers/slapd
      Jul 28 10:47:11 localhost slapd[10192]: main: TLS init def ctx failed: -1
      Jul 28 10:47:11 localhost slapd[10192]: slapd stopped.
      Jul 28 10:47:11 localhost slapd[10192]: connections_destroy: nothing to destroy.
      • [^] # Re: Faut arrêter les bêtises

        Posté par (page perso) . Évalué à 0.

        Au temps pour moi, il me manquait cacert.pem et les bon droit pour le faire fonctionner.

        Cependant, une chose étrange, j'ai dû installer le paquet ssl-cert, afin d'avoir le groupe éponyme, et rajouter mon utilisateur openldap dedans.

        J'ai maintenant un Serveur LDAP fonctionnant (normalement ?!) avec TLS.

        Y a t il un moyen de vérifier que le serveur tourne correctement ? (coté client + coté serveur) ?

        • [^] # Re: Faut arrêter les bêtises

          Posté par . Évalué à 1.

          Y a t il un moyen de vérifier que le serveur tourne correctement ? (coté client + coté serveur) ?

          ldapsearch -ZZ …

          Et selon la façon dont tu as généré ton certificat, tu pourrais avoir à mettre "TLS_REQCERT try" dans ton ldap.conf (ou .ldaprc).

  • # Résolu ...

    Posté par (page perso) . Évalué à 0.

    Le fin mot de l'histoire …
    Lors d'un reconfigure (ou d'un reinstall) de slapd, je n'avais pas gaffe au fait qu'il prenait certain fichier (dont une partie des fichiers de cn=config/ dans /var/cache/ !!!

    Du coup, un petit delete de ce qu'il se trouve dans /var/cache, et par miracle, tout refonctionnais correctement.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.