24 abr 2014

Replicar el servicio ldap del servidor "ldap" en el servidor "servidor"

Como ya comenté en un post anterior, repliqué el servicio ldap del servidor "ldap" en el servidor "servidor" de mi centro, configuré el dhcp en modo failover y monté el servidor dns replicado en el servidor "servidor" para lograr una mayor seguridad y una alta disponibilidad de servicios.

Como la base de todos estos cambios está en crear una réplica del servidor "ldap" (ldap master) en el servidor "servidor" (ldap slave), vamos a ver qué cambios hay que realizar para replicar el servicio mediante syncrepl.

Configuración del ldap master (servidor "ldap"):
Lo primero que tenéis que hacer es aseguraros de que tenéis las siguientes líneas en el fichero de configuración /etc/ldap/slapd.conf del ldap master:

moduleload syncprov
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 200
Estas líneas convierten el servidor ldap en un proveedor.

Por otra parte, aseguraos de que entre las opciones de indexado de la B.D. existe la siguiente:
index           entryCSN,entryUUID eq

Y que entre las reglas de acceso a los atributos restringidos, hay permiso de lectura para el usuario replica, un usuario que usamos única y exclusivamente para esta tarea:
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,ou=People,dc=instituto,dc=extremadura,dc=es" write
by dn="cn=replica,dc=instituto,dc=extremadura,dc=es" read
by anonymous auth
by self =xw
by * none

access to attrs=employeeNumber,jpegPhoto
by dn="cn=replica,dc=instituto,dc=extremadura,dc=es" read
by dn="cn=interno,dc=instituto,dc=extremadura,dc=es" read
by self read

Configuración del ldap slave (servidor "servidor"):
En el servidor ldap, lo primero que habrá que hacer es instalar los paquetes slapd, ldap-utils y phpldapadmin.

Una vez instalados los paquetes, vamos a necesitar tener la misma configuración que en el otro servidor, así que lo mejor que podemos hacer es copiar el archivo slapd.conf y el directorio schema desde el servidor "ldap" al servidor "servidor". Así nos aseguramos de que tenemos la misma configuración y los mismos esquemas.

Bien, pues una vez hecho ésto, editamos el archivo /etc/ldap/slapd.conf y le añadimos las siguientes líneas:

syncrepl rid=1
provider=ldap://ldap
searchbase="dc=instituto,dc=extremadura,dc=es"
type=refreshOnly
interval=00:00:02:00
retry="60 10 300 +"
filter="(objectClass=*)"
scope=sub
attrs="*,+"
sizelimit=unlimited
timelimit=unlimited
schemachecking=off
bindmethod=simple
starttls=yes
tls_reqcert=never
binddn="cn=replica,dc=instituto,dc=extremadura,dc=es"
credentials=clave-del-usuario-replica
updateref ldap://ldap

Con ésto, lograremos que el ldap slave replique la B.D. del ldap master.

No voy a entrar en detalle sobre todos los parámetros. Todos son importantes, pero tan sólo contaremos los principales:

  • syncrepl rid=1 Identificamos la réplica. Por lo que he leído, cada réplica debe llevar un número diferente.
  • provider=ldap://ldap Indicamos quién es el proveedor del que se va a obtener la B.D.
  • searchase="dc=insituto,dc=extremadura,dc=es" Nos permite indicar la raiz desde donde realizar búsqueda para hacer la réplica.
  • type=refreshOnly Con esta opción le decimos al ldap slave que realice la réplica y no vuelva a realizarla hasta que pase un intervalo de tiempo especificadon mediante el parámetro interval
  • interval=00:00:02:00 Esta opción se usa conjuntamente con el tipo de sincronización refreshOnly para que vuelva a realizarse una sincronización tras el intervalo de tiempo especificado en formato dias:horas:minutos:segundos. En este caso, estamos diciendo que vuelva a realizar la sincronización cada 2 minutos.
  • binddn="cn=replica,dc=instituto,dc=extremadura,dc=es" nos permite indicar con qué usuario se debe realizar la operación de sincronización.
  • credentials=clave-del-usuario-replica nos permite indicar la clave del usuario con el que se realiza la operación de sincronización.
Bien, pues ahora que ya hemos configurado el archivo /etc/ldap/slapd.conf, establecemos el propietario y grupo del directorio /var/lib/ldap a openldap:openldap

# chown -R openldap:openldap /var/lib/ldap

Por último, reiniciamos los servicios ldap de ambos servidores y comprobamos que los cambios del master se han replicado en el slave.

Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios:

Publicar un comentario