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
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
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
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
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
#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
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.