Funciona como una base de datos relacional de ciertas maneras y puede usarse para almacenar cualquier información. LDAP no se limita a almacenar la información; también se utiliza como una base de datos de back-end para "inicio de sesión único" donde una contraseña para un usuario se comparte entre muchos servicios.
En este tutorial, configuraremos OpenLDAP para un inicio de sesión centralizado donde los usuarios usan la cuenta única para iniciar sesión en varios servidores.
Esta publicación cubre solo la configuración de OpenLDAP sin SSL. Si desea configurar OpenLDAP con SSL, siga el siguiente enlace después de completar esta publicación.
Nombre de host | Dirección IP | SO | Propósito |
servidor.itzgeek.local | 192.168.1.10 | CentOS 7 | Servidor LDAP |
cliente.itzgeek.local | 192.168.1.20 | CentOS 7 | Cliente LDAP |
Requisitos
1. Asegúrese de que ambos servidores LDAP “server.itzgeek.local” (192.168.1.10) y cliente LDAP “client.itzgeek.local” (192.168.1.20) son accesibles.
2. Haga una entrada de host en cada máquina en /etc/hosts
para la resolución de nombres.
192.168.1.10 server.itzgeek.local server
192.168.1.20 client.itzgeek.local client
O
Si planea usar un nombre de host en lugar de una dirección IP, configure el servidor DNS usando el artículo sobre Cómo configurar el servidor DNS en CentOS 7/RHEL 7 .
Aquí usaré la dirección IP para toda la configuración.
Si planea compilar un servidor LDAP con replicación, omita este tutorial y visite Configurar la replicación multimaestro de OpenLDAP en Linux . Instalar paquetes OpenLDAP
Instale los siguientes paquetes RPM LDAP en el servidor LDAP (server.itzgeek.local ).
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel
Inicie el servicio LDAP y actívelo para el inicio automático del servicio al iniciar el sistema.
systemctl start slapd
systemctl enable slapd
Verifique el LDAP.
netstat -antup | grep -i 389
Salida:
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1520/slapd
tcp6 0 0 :::389 :::* LISTEN 1520/slapd
LEER :Comando netstat no encontrado en CentOS 7/RHEL 7 – Solución rápida
Configurar contraseña de administrador LDAP
Ejecute el siguiente comando para crear una contraseña raíz de LDAP. Usaremos esta contraseña de administrador LDAP (raíz) a lo largo de este artículo.
Reemplace ldppassword con su contraseña.
slappasswd -h {SSHA} -s ldppassword
El comando anterior generará un hash encriptado de la contraseña ingresada que debe usar en el archivo de configuración LDAP. Así que tome nota de esto y guárdelo a un lado.
Salida:
{SSHA}d/thexcQUuSfe3rx3gRaEhHpNJ52N8D3
Configurar el servidor OpenLDAP
Los archivos de configuración de los servidores OpenLDAP se encuentran en /etc/openldap/slapd.d/
. Para empezar con la configuración de LDAP, necesitaríamos actualizar las variables “olcSuffix ” y “olcRootDN “.
olcSufijo – Sufijo de la base de datos, es el nombre de dominio para el cual el servidor LDAP proporciona la información. En palabras simples, debe cambiarse a su nombre de dominio
.
olcRootDN – Entrada de nombre distinguido (DN) raíz para el usuario que tiene acceso sin restricciones para realizar todas las actividades de administración en LDAP, como un usuario raíz.
olcRootPW – Contraseña de administrador de LDAP para el RootDN anterior.
Las entradas anteriores deben actualizarse en /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
expediente. No se recomienda la edición manual de la configuración de LDAP, ya que perderá los cambios cada vez que ejecute el comando ldapmodify.
Cree un .ldif archivo.
vi db.ldif
Agregue las siguientes entradas.
Reemplace la contraseña cifrada ( {SSHA}d/thexcQUuSfe3rx3gRaEhHpNJ52N8D3 ) con la contraseña que generaste en el paso anterior.
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=itzgeek,dc=local
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=itzgeek,dc=local
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}d/thexcQUuSfe3rx3gRaEhHpNJ52N8D3
Una vez que haya terminado con el archivo ldif, envíe la configuración al servidor LDAP.
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif
Realice cambios en /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif (no lo edite manualmente) archivo para restringir el acceso del monitor solo a la raíz ldap (ldapadm ) usuario no a otros.
vi monitor.ldif
Utilice la siguiente información.
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=ldapadm,dc=itzgeek,dc=local" read by * none
Una vez que haya actualizado el archivo, envíe la configuración al servidor LDAP.
ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif
Configurar la base de datos LDAP
Copie el archivo de configuración de la base de datos de muestra en /var/lib/ldap
y actualice los permisos del archivo.
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/*
Suma el coseno y nis esquemas LDAP.
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
Generar base.ldif
archivo para su dominio.
vi base.ldif
Utilice la siguiente información. Puede modificarlo según sus requisitos.
dn: dc=itzgeek,dc=local
dc: itzgeek
objectClass: top
objectClass: domain
dn: cn=ldapadm ,dc=itzgeek,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager
dn: ou=People,dc=itzgeek,dc=local
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=itzgeek,dc=local
objectClass: organizationalUnit
ou: Group
Cree la estructura de directorios.
ldapadd -x -W -D "cn=ldapadm,dc=itzgeek,dc=local" -f base.ldif
El comando ldapadd le pedirá la contraseña de ldapadm (usuario raíz de LDAP).
Salida:
Enter LDAP Password:
adding new entry "dc=itzgeek,dc=local"
adding new entry "cn=ldapadm ,dc=itzgeek,dc=local"
adding new entry "ou=People,dc=itzgeek,dc=local"
adding new entry "ou=Group,dc=itzgeek,dc=local"
Páginas:1 2