Manual de configuración de Replicación Multimaster en servidores Ldap Preparación del Servidor de Replica Global o Máster. Configuración de las acl de los hijos. Configuración de la réplica. Configuración de los hijos y acl en Los mismos. Confeccionado por: Grupo Software Libre ARTex S.A
Teniendo en cuenta que la Casa Matriz cuenta con un servidor LDAP global para ir obteniendo la base de datos de todos los usuarios para que pueda ser consultado por los servidores de correo de todo el país por el puerto 389 para la GAL (libreta Global de Direcciones). Ahora bien esto consta con dos configuraciones una en este servidor (Casa Matriz) y otras configuraciones en los servidores de las distintas entidades que se les llaman hijos de ese árbol de LDAP. La replicación multimaster se puede hacer en 1 o más nodos, debemos tener en cuenta que ambos arboles ldap deben estar iguales al momento de comenzar esta configuración (misma base). Como podemos igualar los ldap para poderlos replicar, bien podemos exportar un LDIF (phpldapadmin) de toda la base dn del árbol que queremos y se importara en el árbol ldap master, entonces ya el árbol importado pasaría a ser un objeto hijo del árbol master. Ahora bien iremos al fichero de configuración de ldap del servidor Maestro: /etc/ldap/slapd.conf Lo editamos y veremos que esta toda su configuración, vamos a la sección siguiente: # The userpassword by default can be changed # by the entry owning it if they are authenticated. # Others should not be able to see it, except the # admin entry below # These access lines apply to database. Aquí en esta sección vamos a declarar los usuarios que podrán leer en la base de datos que contiene los diferentes arboles ldap. by dn="cn=admin,dc=artex,dc=sa" write by dn="cn=replicas,dc=artex,dc=sa" write by dn="cn=replicasens,ou=users,dc=ensenarte,dc=artex,dc=sa" read Aquí esta la primera línea que nos dice que admin viene por defecto para modificar toda la base de datos y el usuario replicas que es quien modificara el árbol máster que estará en cada configuración de los hijos para así no tener que dar el password de admin para una mayor seguridad, las otras dos líneas dice que esos usuarios solo van a leer en esa base de datos. Después que configuramos esa sección en el fichero /etc/ldap/slapd.conf del servidor master, pasamos a la sección siguiente: # Ensure read access to the base for things like # supportedsaslmechanisms. Without this you may
# have problems with SASL not knowing what # mechanisms are available and the like. # Note that this is covered by the 'access to *' # ACL below too but if you change that as people # are wont to do you'll still need this if you # want SASL (and possible other things) to work # happily. Aquí vamos a decir los permisos que tendrán cada usuario que declaramos en la sección anterior. access to dn="dc=ensenarte,dc=artex,dc=sa" by dn="cn=replicasens,ou=users,dc=ensenarte,dc=artex,dc=sa"write by dn="cn=replicasens,ou=users,dc=ensenarte,dc=artex,dc=sa" read access to * by dn="cn=admin,dc=artex,dc=sa" write by dn="cn=replicas,dc=artex,dc=sa" write Esto muestra que en el arbol de ldap ("dc=ensenarte,dc=artex,dc=sa") Solo tendrá acceso de lectura y escritura el usuario replicasens, los demás usuarios solo podrán leer de dicho árbol hijo y así iremos declarando todos los arboles hijos de todas las entidades. Por último vamos al final del fichero escribiremos las líneas de replicas ya que tenemos configuradas las acl de acceso de la base de dato del ldap máster. El server ID del servidor master siempre será el # 1 por lo que el syncrepl rid de los hijos siempre seria el # 1, en fin para no complicar las cosas se invierten el Server ID y el syncrepl rid de cada servidor ldap. Servidor máster: serverid 1 -----Único identificador para Servidor Máster syncrepl rid=3 ------- Este es el ServerID del hijo(serverid 3) provider=ldap://172.17.1.1 binddn="cn=replicas,ou=users,dc=scpr,dc=artex,dc=sa" interval=00:00:00:05
starttls=yes Servidor hijo (Pinar del Rio) serverid 3 syncrepl rid=1 ---- ServerID master (serverid 1) provider=ldap://172.16.10.23 binddn="cn=replicas,dc=artex,dc=sa" interval=00:00:00:05 starttls=yes Ahora bien, vamos a configurar un ejemplo de un ldap de una entidad!!! Iremos a la sección de las acl para la declaración de los usuarios by dn="cn=admin,dc=scpr,dc=artex,dc=sa" write by anonymous auth by self write by * none Ahora pasamos a la sección de permisos a los usuarios declarados access to dn="dc=scpr,dc=artex,dc=sa" by dn="cn=replicas,ou=users,dc=scpr,dc=artex,dc=sa" write access to * by dn="cn=admin,dc=scpr,dc=artex,dc=sa" write
Aquí pasaremos a las líneas de replicas que ya vimos un ejemplo anteriormente. serverid 3 syncrepl rid=1 provider=ldap://172.16.10.23 binddn="cn=replicas,dc=artex,dc=sa" interval=00:00:00:05 ---- intervalos de replicas starttls=yes En estas líneas en podemos ver que los intervalos de la réplica puede ser configurable para que los ldap no estén replicando constantemente ya que los ldap no se modificaran de forma diaria. En la replicación multimaster no tiene que haber problema de borrado de datos en los arboles ya que solo podría modificar todos los arboles el usuario admin global del árbol máster, en caso que dejase de replicar el ldap máster por causa de apagado del servidor ldas los demás partes de ese máster seguirán funcionando de manera correcta solo que dando un error en el /var/log/syslog de conexión fallida al servidor de replicas. También nos puede pasar que no declaremos los usuarios en las secciones antes explicadas, eso trae consigo a que corrompemos la base de datos de ldap por ese usuario que no declaramos no tiene acceso a leer esa base de datos ya que solo por defecto deja leer y escribir a admin, por lo que suele suceder también que podamos truncar atributos como el de password y alla problemas de autenticación en el árbol. Debemos tener en cuenta que también podemos implementar nuestros propios mecanismos de salvas como son las salvas de los virtuales que almacenan las bases de datos de ldap, tener siempre una salva de nuestro LDIF de la base de datos de ldap, ect. Llego hasta aquí.. Saludos..