Está en la página 1de 4

Procedimiento Configuración Réplica de LDAPs (Configuraciones y Directorio Usuarios)

1. - En cada servidor LDAP habilitar el módulo de la réplica (module syncprov).

1.1 - Crear un archivo ldif como por ejemplo module.ldif que contenga la siguiente estructura:

** Atención!: Si los comandos siguientes dan error, copiar el directorio /etc/openldap/slapd.d de otro servidor que no haya dado problema o que haya
funcionado en la etapa de prueba, pues puede suceder en los servidores en producción por problemas de concurrencia. También podemos detener el servicio
bloqueando el puerto en el iptables y reiniciar slapd.

# chown -R ldap.ldap /etc/openldap/slapd.d/

# restorecon –R /etc/openldap

# vi module.ldif

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModuleLoad: syncprov.la

1.2 – Después, en cada servidor LDAP ejecutar el siguiente comando para agregar el contenido del archivo recién
creado module.ldif a la configuración del servidor LDAP, en cada uno.

# ldapadd -x -D "cn=admin,cn=config" -f module.ldif -W

2.- Habilitar la réplica de la configuración (syncrepl para cn=config database)

2.1 - Crear un archivo ldif ejemplo config-repl.ldif que contenga la siguiente estructura:
** Nota: Solo se debe sustituir las palabras que están en color rojo, lo que está en negrita y cursiva es lo que se debe ejecutar en la consola ssh y lo que se
encuentra solo en negrita es lo que va dentro de los ficheros y que no se modifica.

# vi config-repl.ldif

dn: cn=config
changetype: modify
add: olcServerID

olcServerID: 101 ldap://ip-server1


olcServerID: 201 ldap://ip-server2

dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
changetype: add
objectclass: olcOverlayConfig
objectclass: olcSyncProvConfig
olcOverlay: syncprov

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001 provider=ldap://ip-server1 binddn="cn=admin,cn=config" bindmethod=simple
credentials=<PASSWORD> searchbase="cn=config" type=refreshAndPersist retry="5 5 300 5" timeout=1
olcSyncRepl: rid=002 provider=ldap://ip-server2 binddn="cn=admin,cn=config" bindmethod=simple
credentials=<PASSWORD> searchbase="cn=config" type=refreshAndPersist retry="5 5 300 5" timeout=1
-
add: olcMirrorMode
olcMirrorMode: TRUE

2.2 - Después agregar el archivo a los servidores LDAP ya sean 2 o más ejecutar el siguiente comando:

# ldapmodify -x -D "cn=admin,cn=config" -f config-repl.ldif -W

3. - En todos los servidores LDAP, editar el archivo /etc/sysconfig/ldap para que el servicio slapd corra con la opción
host habilitada (-h) y especificar la URL de este propio servidor, es decir la IP local del servidor que estamos
configurando <ip-server#>. Esto se repite para cada servidor LDAP de la granja master-master.

# vi /etc/sysconfig/ldap

Las siguientes variables las debemos ponerle con valor “no”. Algunas están en “yes”, pero se le debe poner “no”.

SLAPD_LDAP=no
SLAPD_LDAPI=no
SLAPD_LDAPS=no

** A la variable ip-server# se le sustituye por la ip del propio servidor que estamos configurando como miembro de la réplica. Esto se debe
hacer en todos los servidores ldap que se van a adicionar al esquema master-master.

SLAPD_URLS="ldap://ip-server#:389 ldaps://ip-server# ldapi:///"

3.1 - Ya configurado /etc/sysconfig/ldap, reiniciar el servicio slapd.

# service slapd restart

3.2 - Verificar que el servicio esté corriendo ya con la opción hosts (-h).
# ps aux | grep slapd

Debe aparecer entre otras cosas una línea similar a esta:


/usr/sbin/slapd -h ldap://ip-server#:389 ldaps://ip-server# ldapi:/// -u ldap

Verificar si muestra la opción -h y con la URL especificada anteriormente en el archivo /etc/sysconfig/ldap.

4. - Habilitar en el servidor ldap principal, miembro de la réplica master-master, la configuración necesaria para que
se replique la base de datos (syncrepl para cn=config database).

4.1 - Crear un archivo ldif como por ejemplo bdb-repl.ldif que contenga la siguiente estructura:

Donde:
Ip-server1: sustituirlo por la ip del primer servidor de la réplica master-master
Ip-server2: sustituirlo por la ip del segundo servidor de la réplica master-master, y así sucesivamente.
<PASSWORD>: Sustituir por el pass de administrador del ldap. Quitar los signos <>.

# vi bdb-repl.ldif

dn: olcDatabase={1}bdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=003 provider=ldap://ip-server1 binddn="cn=admin,dc=idcpub,dc=enet,dc=cu"
bindmethod=simple credentials=<PASSWORD> searchbase="dc=idcpub,dc=enet,dc=cu" type=refreshAndPersist
retry="5 5 5 +" timeout=3
olcSyncRepl: rid=004 provider=ldap://ip-server2 binddn="cn=admin,dc=idcpub,dc=enet,dc=cu"
bindmethod=simple credentials=<PASSWORD> searchbase="dc=idcpub,dc=enet,dc=cu" type=refreshAndPersist
retry="5 5 5 +" timeout=3
-
add: olcMirrorMode
olcMirrorMode: TRUE

dn: olcOverlay=syncprov,olcDatabase={1}bdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

4.2 - Ahora ejecutamos el siguiente comando para que se active la réplica de las base de datos en todos los
servidores miembros de la granja master-master.

** Es importante que cuando se ejecute este comando ya se haya realizado la configuración de réplica de las configuraciones en todos los
servidores ldap que van a ser miembros de la réplica master-master.

# ldapmodify -x -D "cn=admin,cn=config" -f bdb-repl.ldif -W

5. - Procedemos a probar la réplica del directorio LDAP.

Ahora estamos listo para agregar un usuario a uno de los directorios ldap y revisar en los demás para comprobar que
esta replicada la información.

6. Ahora vamos a configurar en cada servidor que use la autentificación LDAP el programa cliente LDAP.

6.1. - Editar archivo /etc/pam_ldap.conf y agregar o descomentariar y modificar las siguientes líneas, donde en la
segunda ponemos separados por espacio todos los servidores miembros:

** recordar que se debe sustituir lo que esta resaltado en rojo por el valor que corresponde para cada uno de los servidores LDAP miembros de
la réplica.
base dc=idcpub,dc=enet,dc=cu
uri ldap://ip-server1/ ldap://ip-server2/
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5

6.2. - Editar archivo /etc/openldap/ldap.conf agregar o descomentariar y modificar las siguientes líneas :
** recordar que se debe sustituir lo que esta resaltado en rojo por el valor que corresponde para cada uno de los servidores LDAP miembros de
la réplica.
TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://ip-server1/ ldap://ip-server2/
BASE dc=idcpub,dc=enet,dc=cu

6.3. - Editar archivo /etc/nslcd.conf y agregar o descomentariar y modificar las siguientes líneas:

uri ldap://ip-server1/ ldap://ip-server2/


base dc=idcpub,dc=enet,dc=cu
ssl no
tls_cacertdir /etc/openldap/cacerts
idle_timelimit 240

6.4- Reiniciar el servicio nslcd para que se active la autentificación hacia cualquiera de los servidores LDAP.

# service nsldc restart

Y con esto podemos considerar el entorno listo para loguearse desde cualquiera de los servidores LDAP.

7. Realizar pruebas de autentificación desde diferentes servidores y aplicaciones para comprobar el correcto
funcionamiento de la alta disponibilidad del servicio.

7.1 apagar servidor principal de la granja master –master y probar entra a alguno de los servidores que usan estos
directorios LDAP por ssh o por web o ftp para comprobar si se mantiene activo el directorio LDAP.

7.2 Apagar otros servidores indistintamente y repetir las pruebas.

8. Ejemplos de configuración para virtualhost de apache de un sitio Web para usar la granja de LDAPs réplica master-
master y la alta disponibilidad del servicio de autentificación.

** Es muy importante que si ponemos los nombres DNS FQDN (Full Qualify Domain Name) de los servidores LDAP en la cadena de conexión existan
dichos registros en el DNS o en el fichero /etc/hosts de todos los servidores miembros y clientes de servicio de autentificación LDAP.

<VirtualHost *:80>
ServerName www.misitio.cu
Redirect / https://www.misitio.cu/horde
ErrorLog logs/www.misitio.cu-error_log
CustomLog logs/www.misitio.cu-access_log common
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /srv/www/www.misitio.cu/htdocs/
ServerName www.misitio.cu

# PHP security stuff


<Location />
AuthType Basic
AuthName "Just log in"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://3l-ldap1.idcpub.enet.cu:389 3l-ldap2.idcpub.enet.cu:389/dc=idcpub,dc=enet,dc=cu?uid?sub?"
Require valid-user
php_admin_value open_basedir "/srv/www/www.misitio.cu/htdocs:/usr/share/pear:/tmp: "
php_admin_value include_path ".:/usr/share/pear:/srv/www/www.misitio.cu/htdocs/include:/srv/www/www.misitio.cu/htdocs/scripts"
php_admin_flag file_uploads off
php_admin_flag magic_quotes_gpc off
php_admin_flag register_globals off
php_admin_value sendmail_from "mibuzon@enet.cu"
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f mibuzon@enet.cu"
</Location>
DirectoryIndex index_isp.php
<IfModule mod_disk_cache.c>
CacheEnable disk /
CacheRoot "/srv/www/www.misitio.cu/htdocs/cache"
CacheSize 1024
CacheDirLevels 5
CacheDirLength 3
</IfModule>

# SSL Config
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<Files ~ "\.(cgi|shtml|phtml|php3|php?)$">
SSLOptions +StdEnvVars
</Files>
SSLCertificateFile /etc/pki/tls/certs/www.misitio.cu.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.misitio.cu.key
ErrorLog logs/www.misitio.cu-ssl-error_log
CustomLog logs/www.misitio.cu-ssl-access_log common
</VirtualHost>

FIN.

También podría gustarte