LDAP significa Protocolo ligero de acceso a directorios.
LDAP es una solución para acceder a información almacenada centralmente a través de la red. Esta información almacenada centralmente se organiza en un directorio que sigue el estándar X.500.
La información se almacena y organiza de manera jerárquica y la ventaja de este enfoque es que la información se puede agrupar en contenedores y los clientes pueden acceder a estos contenedores cuando sea necesario.
La jerarquía de OpenLDAP es casi similar a la jerarquía de DNS.
Los siguientes son los dos objetos más utilizados en OpenLDAP:
- cn (nombre común):se refiere a las entradas de hoja, que son objetos finales (por ejemplo, usuarios y grupos)
- dc (componente de dominio):hace referencia a una de las entradas de contenedor en la jerarquía LDAP. Si en una configuración, la jerarquía LDAP se asigna a una jerarquía DNS, normalmente todos los dominios DNS se denominan objetos DC.
Por ejemplo, si hay un usuario en la jerarquía sam.thegeekstuff.com, el nombre completo de este usuario se denomina cn=sam, dc=thegeekstuff, dc=com. Si notó que en el FDN (nombre completamente distinguido), se usa una coma como separador y no un punto, lo cual es común en DNS.
Al usar los diferentes tipos de entrada LDAP, puede configurar una estructura de directorio jerárquica. Esta es la razón por la cual openLDAP es tan ampliamente utilizado. Puede crear fácilmente una jerarquía openLDAP en la que se pueda hacer referencia fácilmente a los objetos en otras ubicaciones sin almacenarlos en servidores locales. Esto hace que OpenLDAP sea un directorio liviano, especialmente cuando se compara con otros servidores de directorio como Active Directory de Microsoft.
Ahora veamos cómo configurar una sola instancia de un servidor LDAP que pueden usar varios clientes en su red para la autenticación.
Instalar paquetes OpenLDAP
En CentOS y RedHat, use yum install como se muestra a continuación para instalar los paquetes relacionados con openldap.
yum install -y openldap openldap-clients openldap-servers
Debe instalar los siguientes tres paquetes:
- servidores openldap:este es el servidor LDAP principal
- openldap-clients:contiene todas las utilidades de cliente LDAP requeridas
- openldap:este paquete contiene las bibliotecas de soporte de LDAP
Archivos de configuración LDAP
- config.ldif:la configuración predeterminada de LDAP se almacena en un archivo en /etc/openldap/slapd.d/cn=config.ldif que se crea en formato LDIF. Este es el formato de entrada LDAP (LDIF), un formato específico que le permite ingresar información en el directorio LDAP.
- olcDatabase{2}bdb.ldif:también puede modificar la configuración, como la cantidad de conexiones que admite el servidor, los tiempos de espera y otras configuraciones de la base de datos en el archivo /etc/openldap/slapd.d/cn=config/olcDatabase{2 }bdb.ldif. Este es el archivo que también contiene parámetros como el usuario raíz de LDAP y el DN base.
Crear cuenta olcRootDN como administrador
Siempre se recomienda crear primero una cuenta de usuario dedicada con todos los permisos para cambiar la información en la base de datos LDAP.
Modifique el archivo olcDatabase={2}bdb.ldif y cambie la entrada olcRootDN. La siguiente es la entrada predeterminada.
# grep olcRootDN /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif olcRootDN: cn=Manager,dc=my-domain,dc=com
Cambie la línea anterior a un usuario administrador. En este ejemplo, el usuario "ramesh" será el olcRootDN.
olcRootDN: cn=ramesh,dc=thegeekstuff,dc=com
Crear contraseña raíz olcRootPW
Ahora use el comando slappasswd para crear un hash para la contraseña de root que desea usar. Una vez que se genera la contraseña, abra el archivo cn=config.ldif, incluya el parámetro olcRootPW y copie la contraseña codificada como se muestra a continuación.
Ejecute el siguiente comando y especifique una contraseña. Esto generará el hash para la contraseña dada.
# slappasswd New password: SecretLDAPRootPass2015 Re-enter new password: SecretLDAPRootPass2015 {SSHA}1pgok6qWn24lpBkVreTDboTr81rg4QC6
Tome la salida hash del comando anterior y agréguela al parámetro oclRootPW en el archivo config.ldif como se muestra a continuación.
# vi /etc/openldap/slapd.d/cn=config.ldif olcRootPW: {SSHA}1pgok6qWn24lpBkVreTDboTr81rg4QC6
Crear nombre de dominio olcSuffix
Ahora configure el olcSuffix y configure el dominio que desea. Simplemente modifique la línea que comienza con olcSuffix en el archivo olcDatabase={2}bdb.ldif como se muestra a continuación.
# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif olcSuffix: dc=thegeekstuff,dc=com
Verificar los archivos de configuración
Use el comando slaptest para verificar el archivo de configuración como se muestra a continuación. Esto debería mostrar el mensaje "prueba exitosa" como se muestra a continuación.
# slaptest -u config file testing succeeded
Es posible que reciba los siguientes mensajes durante el comando anterior, que puede ignorar por ahora.
54a39508 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif" 54a39508 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif"
Iniciar el servidor LDAP
Inicie el servidor ldap como se muestra a continuación.
# service slapd start Checking configuration files for slapd: [WARNING] config file testing succeeded Starting slapd: [ OK ]
Verificar la búsqueda LDAP
Para verificar que el servidor ldap esté configurado correctamente, puede usar el siguiente comando y verificar que la entrada del dominio esté presente.
# ldapsearch -x -b "dc=thegeekstuff,dc=com" # extended LDIF # # LDAPv3 # base <dc=thegeekstuff,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1
Estructura base de LDAP en base.ldif
El uso de objetos OU (unidad organizativa) puede ayudarlo a proporcionar una estructura adicional a la base de datos LDAP. Si planea agregar diferentes tipos de entradas, como usuarios, grupos, computadoras, impresoras y más al directorio LDAP, es más fácil colocar cada tipo de entrada en su propio contenedor.
Para crear estas unidades organizativas, puede crear un archivo LDIF inicial como se muestra en el siguiente ejemplo. En este ejemplo, este archivo le permite crear el contenedor base que es dc=thegeekstuff,dc=com y crea dos unidades organizativas con los nombres de usuarios y grupos en ese contenedor.
# cat base.ldif dn: dc=thegeekstuff,dc=com objectClass: dcObject objectClass: organization o: thegeekstuff.com dc: thegeekstuff dn: ou=users,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: users dn: ou=groups,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: groups
Importar estructura base usando ldapadd
Ahora podemos importar la estructura base al directorio LDAP usando el comando ldapadd como se muestra a continuación.
# ldapadd -x -W -D "cn=ramesh,dc=thegeekstuff,dc=com" -f base.ldif Enter LDAP Password: adding new entry "dc=thegeekstuff,dc=com" adding new entry "ou=users,dc=thegeekstuff,dc=com" adding new entry "ou=groups,dc=thegeekstuff,dc=com"
Verificar la Estructura Base utilizando ldapsearch
Para verificar que las unidades organizativas se crearon correctamente, use el siguiente comando ldapsearch.
# ldapsearch -x -W -D "cn=ramesh,dc=thegeekstuff,dc=com" -b "dc=thegeekstuff,dc=com" "(objectclass=*)" Enter LDAP Password:
El resultado del comando anterior mostrará todos los objetos en la estructura del directorio LDAP.
# extended LDIF # # LDAPv3 # base <dc=thegeekstuff,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # thegeekstuff.com dn: dc=thegeekstuff,dc=com objectClass: dcObject objectClass: organization o: thegeekstuff.com dc: thegeekstuff # users, thegeekstuff.com dn: ou=users,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: users # groups, thegeekstuff.com dn: ou=groups,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: groups # search result search: 2 result: 0 Success # numResponses: 4 # numEntries: 3
En el próximo artículo de OpenLDAP, explicaremos cómo agregar nuevos usuarios y grupos al directorio LDAP.