Yo estaba tratando de cambiar el nombre de mi OpenLDAP‘s baseDN

de:

dc=abc,dc=com

:

dc=xyz,dc=edu

Me hizo modificar algunos archivos de conf:

  • /etc/ldap/slapd.d/cn\=config/olcDatabase={1}hdb.ldif
  • /etc/ldapscripts/ldapscripts.conf

y la configuración de phpLDAPadmin:

  • config.php

a la nueva raíz dn

Pero después he reiniciado el slapd y lighttpd servicios, a pesar de que podía acceder a la interfaz de administración de phpLDAPAdmin (admin binddn), pero yo no era capaz de hacer cualquier cosa.

También traté de ejecutar algunos de ldap líneas de comandos, pero no funcionó.

¿Qué más tengo que hacer? O nada de malo con mi método?

OriginalEl autor Trinh Nguyen | 2013-10-23

2 Comentarios

  1. 15

    OK, he resuelto yo. Aquí es cómo he migrado la actual base de datos LDAP a un nuevo dominio:

    • De exportación de la antigua base de datos LDAP para archivo ldif.
    • Eliminar el antiguo databaes
    • Crear una nueva base de datos LDAP con el nuevo nombre de dominio
    • Modificar la exportado archivo ldif de arriba para que se ajuste al nuevo dominio (la raíz dn)
    • Importar la modificación de archivo ldif en la nueva base de datos

    Suponiendo que tengo un nuevo nombre de dominio, dc=mi,dc=de nuevo,dc=ldap,dc=dominio, y quiero mover todos los existentes de datos de LDAP a la nueva.

    Hice los pasos siguientes

    1. Copia de seguridad de la antigua base de datos LDAP

      # slapcat -v -l old_ldap.ldif
      
    2. Detener el servidor OpenLDAP

      # service slapd stop
      
    3. Borre la base de datos LDAP

      # cd /var/lib/ldap
      # rm -rf *
      
    4. Asegúrese de LDAP no se está ejecutando

      # nano /var/lib/ldap/DB_CONFIG
      

      NOTA: agregar las siguientes líneas y guardar

      #DB_CONFIG
      set_cachesize           0 150000000 1
      set_lg_regionmax        262144
      set_lg_bsize            2097152
      set_flags               DB_LOG_AUTOREMOVE
      
    5. Cambiar las opciones de configuración de LDAP en los siguientes archivos

      • /etc/ldapscripts/ldapscripts.conf

        ...
        SERVER="ldap://localhost"
        BINDDN="cn=admin,dc=my,dc=new,dc=ldap,dc=domain"
        BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
        ...
        
      • /etc/ldap/slapd.d/cn=config/olcDatabase\={1}hdb.ldif

        ...
        olcSuffix: dc=my,dc=new,dc=ldap,dc=domain
        olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=my,dc=new,dc=ldap,dc=domain" write by * none
        olcAccess: {2}to * by self write by dn="cn=admin,dc=my,dc=new,dc=ldap,dc=domain" write by * read
        olcRootDN: cn=admin,dc=my,dc=new,dc=ldap,dc=domain
        olcRootPW: <new administrator password>
        ...
        
    6. Preparar el nuevo Directorio LDAP de la estructura, datos, new_ldap.ldif, (o modificar el old_ldap.ldif con el nuevo dn)

      # Root
      dn:                    dc=my,dc=new,dc=ldap,dc=domain
      description:           New LDAP BaseDN
      dc:                    parent
      o:                     parent.my.new.ldap.domain
      objectClass:           top
      objectClass:           dcObject
      objectClass:           organization
      structuralObjectClass: organization
      
      # administrator
      dn:                    cn=admin,dc=my,dc=new,dc=ldap,dc=domain
      objectClass:           simpleSecurityObject
      objectClass:           organizationalRole
      cn:                    admin
      description:           LDAP administrator
      userPassword:          <new administrator password>
      structuralObjectClass: organizationalRole
      
      # Subtree for Users
      dn:                    ou=Users,dc=my,dc=new,dc=ldap,dc=domain
      ou:                    Users
      description:           Parent Ldap Users
      objectClass:           organizationalUnit
      objectClass:           top
      structuralObjectClass: organizationalUnit
      
      # Subtree for Groups
      dn:                    ou=Groups,dc=my,dc=new,dc=ldap,dc=domain
      ou:                    Groups
      description:           Parent LDAP Groups
      objectClass:           organizationalUnit
      objectClass:           top
      structuralObjectClass: organizationalUnit
      ...
      
    7. Probar el nuevo ldif

      # slapadd -b "dc=my,dc=new,dc=ldap,dc=domain" -v -u -l new_ldap.ldif 
      

      NOTA: el -u significa ejecutar el comando en el modo de prueba

    Si todo es correcto, el resultado será algo parecido a:

        added: "dc=my,dc=new,dc=ldap,dc=domain"
        added: "cn=admin,dc=my,dc=new,dc=ldap,dc=domain"
        added: "ou=Users,dc=my,dc=new,dc=ldap,dc=domain"
        added: "ou=Groups,dc=my,dc=new,dc=ldap,dc=domain"
        _#################### 100.00% eta   none elapsed            none fast! 
    
    1. Agregar los nuevos datos de LDAP en el servidor

      # slapadd -b "dc=my,dc=new,dc=ldap,dc=domain" -v -l new_ldap.ldif
      

    Usted puede buscar actualizaciones en mi blog acerca de este tema: http://iambusychangingtheworld.blogspot.com/2013/10/ldap-create-new-ldap-directory.html

    Tenga en cuenta que el JXplorer herramienta exportar o importar el LDIF con un re-basado BaseDN, pero, por desgracia, no se aplica el cambio a DN-atributos valorados.

    OriginalEl autor Trinh Nguyen

  2. 1

    Guía muy útil! Para referencia en el futuro, me encontré con que:
    Después de la modificación del punto 5 (b), la prueba (como se describe en el punto 7), informe de errores de crc32 valor (la suma de comprobación se encuentra en la línea 2 de ese mismo archivo);

    Editar 06/2/2018:
    Como por sugerencia de PF4Public, Usted puede ser capaz de eliminar esas líneas como un todo.

    En cualquier otro caso:
    Y tendrá que generar una nueva crc32 (estoy usando Debian Jessy, su ruta de acceso puede ser diferente)

    Ruta rápida:

    tail -n +3 /etc/ldap/slapd.d/cn\=config/olcDatabase\=\{1\}mdb.ldif
    

    y pegar el resultado en el interior de una línea de crc32 de la calculadora.
    El valor calculado de crc32 valor reemplaza el valor anterior de encuentra en la línea 2 de la mdb.ldif.

    La lenta y minuciosa de la ruta que se describe a continuación:
    https://gist.github.com/Shaltz/1d65a07a0901a36fb7f1

    Después de la adición de la new_ldap.ldif asegúrese de que el openldap usuario tiene derechos sobre la generada la base de datos.

    chown -R openldap:openldap /var/lib/ldap
    
    Has probado a borrar esas dos líneas? Es suficiente para eliminarlos.
    Que es incluso una mejor sugerencia!!, Pon tu sugerencia de primera!

    OriginalEl autor R.J.

Dejar respuesta

Please enter your comment!
Please enter your name here