Configuración del Directorio secundario
C@mpus - @cademia Linux

Introducción

OpenLDAP permite mantener directorios espejo de sólo lectura en más de un servidor.  Esto facilita la propagación de información y desahoga al servidor principal para atender las peticiones que le llegan.  Sin embargo, todas las escrituras deberán ser efectuadas en el servidor maestro; los cambios serán propagados a los servidores esclavos automáticamente.


Requisitos 

Para realizar la relación de maestro-esclavo entre los servidores LDAP primeramente estos deben estar idénticos en información.  Para esto, los mismos archivos de configuración hubicados en /etc/openldap deben existir en ambos servidores.  El comando scp -r /etc/openldap/* esclavo:/etc/openldap/ copiará recursivamente el directorio.

Posterior a la copia de las configuraciones, realizar un respaldo (dump) del servidor maestro.  El procedimiento de respaldo del directorio LDAP muestra con detalle cómo hacerlo.  El respaldo deberá ser vaciado en el servidor esclavo con los permisos de usuario correspondientes en sus archivos de bases de datos, generalmente ubicados en /var/lib/ldap/ pertenecientes al usuario y grupo ldap:ldap.


Configuración del esclavo

El servidor esclavo deberá tener en su configuración, en la parte final del archivo /etc/openldap/slapd.conf las siguientes líneas:

 

/etc/openldap/slapd.access.conf (Parcial)
updatedn        "uid=dieu,ou=People,dc=linuxchange,dc=com"
updateref       ldap://slave.linuxchange.com/

 

Con esto se le indica a OpenLDAP que el usuario dieu se firmará y será quien realizará las actualizaciones al directorio.  El dn especificado puede variar, sin embargo hay que tener en cuenta que no estará sujeto a cambios de contraseña porque dentro de la configuración esta deberá estar inscrita.  Opcionalmente se puede utilizar una ficha fuera de la rama People.

Adicionalmente, se deben modificar las ACL's del directorio para darle acceso total de escritura al usuario especificado.  Para esto se deberán añadir reglas en el archivo /etc/openldap/slapd.access.conf de la siguiente forma:

/etc/openldap/slapd.access.conf

access to dn.base=""
 by * read

access to dn.base="cn=Subschema"
 by * read

access to dn.subtree="ou=People,dc=linuxchange,dc=com"
 attrs=sambaLMPassword,sambaNTPassword,userPassword,
       krb5KeyVersionNumber,krb5Key
 by self write
 by dn="uid=dieu,ou=People,dc=linuxchange,dc=com" write
 by dn="cn=root,dc=linuxchange,dc=com" write
 by dn="uid=root,ou=People,dc=linuxchange,dc=com" write
 by group="cn=wheel,ou=Group,dc=linuxchange,dc=com" write
 by group="cn=users,ou=Group,dc=linuxchange,dc=com" write
 by anonymous auth
 by * none

access to *
 by dn="uid=dieu,ou=People,dc=linuxchange,dc=com" write
 by dn="cn=root,dc=linuxchange,dc=com" write
 by dn="uid=root,ou=People,dc=linuxchange,dc=com" write
 by dn="uid=root,ou=people,dc=linuxchange,dc=com" write
 by group="cn=wheel,ou=Group,dc=linuxchange,dc=com" write
 by * read

Posteriormente, reiniciar el servidor con el comando service ldap restart.

 


Configuración del Servidor Maestro

De igual forma, al servidor maestro se le debe indicar a quién se le enviará la replicación.  Para realizar esto, se necesitan añadir las siguientes líneas al final del archivo /etc/openldap/slapd.conf:

 

/etc/openldap/slapd.conf  (Parcial)
replica uri=ldap://slave.linuxchange.com:389
        binddn="uid=dieu,ou=People,dc=linuxchange,dc=com"
        bindmethod=simple credentials="secret"

replogfile /var/log/ldap/replica.log

 

Posteriormente, reiniciar el servidor con el comando service ldap restart