Montar un mirror ldap en una Raspberry Pi | Algo de Linux

lunes, 28 de abril de 2014

Montar un mirror ldap en una Raspberry Pi

Ahora que tengo el servicio ldap replicado en los dos servidores principales del centro, tengo mayor de seguridad de que mis servicios van a tener una alta disponibilidad. No obstante, estaba pensando que podría dar una vuelta de tuerca más y montar un mirror ldap en una Raspberry Pi. De este modo, si por alguna razón, ninguno de los servidores ldap funcionara, podría poner en marcha la Raspberry para mantener el servicio mientras solucionara los problemas en el servidor principal.

Como ya dispongo de un mirror ldap en el servidor nfs del centro, la tarea es muy sencilla:

Primero.- Instalamos los paquetes slapd, ldap-utils y phpldapadmin y se instalarán además todas sus  dependencias.
root@raspberrypi:~# apt-get -y install slapd ldap-utils phpldapadmin

Segundo.- Paramos el servicio:
root@raspberrypi:~# service slapd stop

Tercero.- Copiamos el fichero de configuración del servidor de réplica "servidor":
root@raspberrypi:~# scp root@servidor:/etc/ldap/slapd.conf /etc/ldap/

Cuarto.- Copiamos los esquemas:
root@raspberrypi:~# scp -r root@ldap:/etc/ldap/schema /etc/ldap/
Esto lo hago porque utilizamos algunos esquemas que no vienen incluidos por defecto.

Quinto.- Modificamos el identificador de la réplica en el fichero /etc/ldap/slapd.conf para que no coincida:
syncrepl rid=3
   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=password-usuario-replica
updateref       ldap://ldap

Sexto.- Copiamos el fichero /etc/ldap/rootDSE-linex.ldif desde el servidor ldap:
root@raspberrypi:~# scp root@ldap:/etc/ldap/rootDSE-linex.ldif /etc/ldap/

Séptimo.- En el fichero de configuración se hace referencia a los certificados para usar ldap con ssl. Creamos el directorio ssl y copiamos en él los ficheros ldap-server-pubkey.pem, mkslapdcert y  slapd-cert.cnf desde el servidor ldap:
root@raspberrypi:~# mkdir /etc/ldap/ssl
root@raspberrypi:~# scp root@ldap:/etc/ldap/ssl/ldap-server-pubkey.pem /etc/ldap/ssl/
root@raspberrypi:~# scp root@ldap:/etc/ldap/ssl/mkslapdcert /etc/ldap/ssl/
root@raspberrypi:~# scp root@ldap:/etc/ldap/ssl/slapd-cert.cnf /etc/ldap/ssl/

Octavo.- Ejecutamos mkslapdcert para crear un certificado:
root@raspberrypi:~# /etc/ldap/ssl/mkslapdcert

Noveno.- Modificamos el archivo /etc/default/ldap para especificar que el archivo de configuración de ldap es /etc/ldap/slapd.conf al principio del archivo:
# Default location of the slapd.conf file or slapd.d cn=config directory. If
# empty, use the compiled-in default (/etc/ldap/slapd.d with a fallback to
# /etc/ldap/slapd.conf).
SLAPD_CONF=/etc/ldap/slapd.conf

Décimo.- Por último, arrancamos el servicio ldap:
root@raspberrypi:/etc/ldap# service slapd restart

Y, si todo ha ido bien, se replicará la base de datos. Podéis comprobarlo viendo cómo se modifica el contenido del directorio /var/lib/ldap/, por ejemplo:
root@raspberrypi:~# watch ls -l /var/lib/ldap
Publicado por primera vez en http://enavas.blogspot.com.es