LINUX

Cómo configurar la replicación multimaestro OpenLDAP en CentOS 7

OpenLDAP es un software de directorio de direcciones de código abierto. Es «liviano» o «más pequeño» en comparación con el X.500 diseñado para ejecutarse en computadoras más pequeñas, como computadoras de escritorio. En OpenLDAP, la información de los datos se organiza como ramas de un árbol, una diferencia notable con otras variedades de bases de datos de uso común. En OpenLDAP, los derechos de acceso al directorio de direcciones se basan en dos categorías de funciones en slapd, lista de control de acceso y funciones de autorización. En Linux / Unix, los derechos de acceso a los sistemas de archivos se basan en los permisos de archivos / directorios. Un cliente LDAP enlaza (inicios de sesión) a un servidor LDAP que envía una consulta para solicitar información o envía información para ser actualizada. Luego, los derechos de acceso son evaluados por el servidor y, cuando se otorgan, el servidor responde con una respuesta o tal vez con una referencia a otro servidor LDAP donde el cliente puede tener la consulta atendida.

En este artículo, configuraremos la replicación multimaestro del servidor OpenLDAP en CentOS 7. Cuando su directorio es muy grande y tiene muchos clientes, lo que genera mucho tráfico en el servidor de directorios, entonces es muy difícil cumplir con el SLA. Entonces tenemos que distribuir la carga de los clientes con múltiples servidores con la ayuda de Replicación. Openldap tiene múltiples configuraciones de replicación, como la replicación maestro-maestro y la replicación maestro-consumidor se utilizan principalmente.

Configuración básica:

En la topología de replicación multimaestro, dos o más de dos servidores pueden actuar como maestros, todos estos servidores maestros tienen autoridad para cualquier cambio en el servidor de directorio.

En este tutorial usaremos dos servidores de prueba para simplificar el proceso usando los siguientes nombres de host y direcciones IP.

LDAP1.TEST.COM Dirección IP 172.25.10.176
LDAP2.TEST.COM Dirección IP 192.25.10.177

Inicie sesión en ambos servidores con las credenciales de usuario raíz, abra el archivo ‘hosts’ para actualizar los nombres de ambos servidores con la dirección IP para que puedan resolver los otros nombres de host de los sistemas.

#vim /etc/hosts
127.0.0.1 localhost.localdomain localhost
172.25.10.176 LDAP1.TEST.COM LDAP1
192.25.10.177 LDAP2.TEST.COM LDAP2

Instalación de OpenLDAP Server:

Para configurar múltiples replicaciones maestras de OpenLDAP, primero instalaremos y configuraremos la configuración básica del servidor LDAP en ambos servidores CentOS 7.

Ejecutemos el siguiente comando para instalar los paquetes del servidor OpenLDAP.

# yum install openldap-servers openldap-clients

instalando openldap

Después de la instalación, copie las configuraciones de base de datos de openldap de muestra en la siguiente ubicación como se muestra.

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

Luego cambie el propietario del archivo e inicie los servicios ‘slapd’.

# chown ldap. /var/lib/ldap/DB_CONFIG
# systemctl start slapd

Iniciar los servicios ldap

Configure la contraseña de administrador de OpenLDAP:

Genere la contraseña cifrada ejecutando el comando slappasswd y proporcione la contraseña, luego copie la cadena cifrada generada y especifique la contraseña generada anteriormente para la sección «olcRootPW».

# slappasswd
New password:
Re-enter new password:
{SSHA}xcsCNH2eMVrNsf4dU7LRJFY5kULU01p4
#vim chrootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW:{SSHA}xcsCNH2eMVrNsf4dU7LRJFY5kULU01p4

Guarde y cierre el archivo y ejecute el siguiente comando para iniciar la autenticación.

# ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif

configuración de administrador de openldap

Ejecute los siguientes comandos para importar esquemas.

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

importar esquemas básicos

Configuración del nombre de dominio en LDAP DB:

Primero generemos la contraseña del administrador del directorio y luego abra el ‘chdomain.ldif’ para poner el texto debajo, pero asegúrese de reemplazar su propio nombre de dominio por la sección «dc = ***, dc = ***» y especifique la contraseña generada para la sección «olcRootPW».

# slappasswd
New password:
Re-enter new password:
{SSHA}xIE0NEjoshYdxkvdBaudyuo8NA2IlisgsN7MvXT
# vim chdomain.ldif
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
read by dn.base="cn=Manager,dc=srv,dc=world" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=test,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=test,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}IcE0NEjoshYdxkvdBaudyuo8NA2IlisgsN7MvXT

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=Manager,dc=test,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=test,dc=com" write by * read

Guarde el archivo y ejecute el siguiente comando para iniciar la autenticación.

# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif

configuración de dominio

#vim basedomain.ldif
dn: dc=test,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: Test Domain
dc: Test

dn: cn=Manager,dc=test,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=test,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=test,dc=com
objectClass: organizationalUnit
ou: Group
# ldapadd -x -D cn=Manager,dc=test,dc=com -W -f basedomain.ldif
Enter LDAP Password:
adding new entry "dc=test,dc=com objectClass: top objectClass: dcObject objectclass: organization o: Test Domain dc: Test"
adding new entry "cn=Manager,dc=test,dc=com"
adding new entry "ou=People,dc=test,dc=com"
adding new entry "ou=Group,dc=test,dc=com"

Repita los pasos en el otro nodo y avancemos hacia la replicación multimaestro.

Replicación multimaestro OpenLDAP:

Una vez que haya completado la configuración básica de LDAP, siga los siguientes pasos para configurar y configurar su replicación multimaestro. Para hacerlo, primero agregaremos el módulo ‘syncprov’ abriendo el archivo a continuación y colocando las siguientes configuraciones en él.

#vim mod_syncprov.ldif
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la

Guarde y cierre el archivo y ejecute el siguiente comando para iniciar la autenticación.

# ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif

Luego abra el archivo que se proporciona a continuación y coloque las configuraciones mencionadas en él.

# vim syncprov.ldif
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100

Ahora vuelva a ejecutar el comando debajo después de agregar sus configuraciones.

# ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif

Agregar módulo syncprov

Ahora configuraremos la replicación incluyendo las configuraciones más importantes colocando las siguientes configuraciones en el archivo de cada uno de sus nodos maestros.

Pero no olvide cambiar la información «olcServerID» y «provider = xxx» de acuerdo con la configuración de su servidor en un valor diferente en cada servidor.

# vim ldap01.ldif
# create new
dn: cn=config
changetype: modify
replace: olcServerID
# specify unique ID number on each server
olcServerID: 0

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001
# specify your LDAP server's URI
provider=ldap://ldap1.test.com:389/
bindmethod=simple

# your own domain name
binddn="cn=Manager,dc=test,dc=com"
# directory manager's password
credentials=xxxxxx
searchbase="dc=test,dc=com"
# includes subtree
scope=sub
schemachecking=on
type=refreshAndPersist
# [retry interval] [retry times] [interval of re-retry] [re-retry times]
retry="30 5 300 3"
# replication interval
interval=00:00:05:00
-
add: olcMirrorMode
olcMirrorMode: TRUE

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

Después de guardar, cierre el archivo y ejecute el siguiente comando para iniciar la autenticación final.

# ldapmodify -Y EXTERNAL -H ldapi:/// -f ldap01.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

adding new entry "olcOverlay=syncprov,olcDatabase={2}hdb,cn=config"

Eso es. La configuración de la replicación maestra de OpenLDAP está completa, ahora puede configurar su cliente LDAP para vincular su servidor maestro LDAP usando el siguiente comando en su servidor cliente.

# authconfig --ldapserver=ldap1.test.com,ldap2.test.com --update

Conclusión:

En este artículo, ha aprendido sobre los conceptos básicos de OpenLDAP y su instalación y la replicación multimaestro en CentOS 7. OpenLDAP admite una amplia variedad de topologías de replicación, estos términos han quedado obsoletos en favor del proveedor y el consumidor: Un proveedor replica las actualizaciones de directorio a los consumidores; los consumidores reciben actualizaciones de replicación de los proveedores. La replicación multimaestro es una técnica de replicación que utiliza Syncrepl para replicar datos en servidores de directorio de múltiples proveedores («Maestros»), que es la mejor para la conmutación por error automática / alta disponibilidad. En la replicación multimaestro, si algún proveedor falla, otros proveedores continuarán aceptando actualizaciones, evitando un solo punto de falla, y los proveedores pueden estar ubicados en varios sitios físicos, es decir, distribuidos por la red o el mundo. Gracias por leer, comparta sus valiosos comentarios y sugerencias.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar