marzo 28, 2024

BitCuco

¡Hola Mundo!

Como vimos en otro momento, openLDAP es una implementación de código abierto del protocolo LDAP. Para efectos de éste tutorial, mostramos los comandos iniciales para usar openLDAP.

Su uso nos permite tener una estructura de accesos de directorios para diferentes tipos de usuarios, cuya información y permisos están jerarquizados y por lo tanto contienen perfiles de cada usuario y éstos a su vez tienen accesos a ciertos directorios, lo cual es muy útil para cualquier empresa grande u organización.

Instrucciones

Previamente al uso de comandos en OpenLDAP, le mostraremos como instalar OpenLDAP en su servidor. Debido a que el proceso de instalación y configuración es un poco complicado, sobretodo para los nuevos usuarios, mostraremos una forma simple para configurarlo en su equipo y así aprovechar todas las ventajas que el protocolo nos ofrece.

Es importante conocer la licencia al utilizar el software o al compartir contenido relacionado con OpenLDAP (como lo es éste tutorial). Ésta licencia la puedes encontrar aquí.

1. Descargar el software

Puede obtener una copia del software siguiendo las instrucciones en la página de descarga del software OpenLDAP (http://www.openldap.org/software/download/). Se recomienda que los nuevos usuarios descarguen la última versión.

2. Descomprimir la versión

Elija un directorio para descomprimir al directorio, vaya a el directorio deseado y desempaquete la distribución con los siguientes comandos:

gunzip -c openldap-VERSION.tgz | tar xvfB -
# Ir al directorio de distribución
cd openldap-VERSION

Tendrá que reemplazar VERSIÓN con el nombre de la versión descargada.

3. Revisar la documentación

Ahora debe revisar los documentos COPYRIGHT, LICENCE, README e INSTALL provistos con la distribución. COPYRIGHT y LICENCE proporcionan información sobre el uso aceptable, la copia y la limitación de la garantía del software OpenLDAP.

4. Compilar y construir openLDAP

Para compilar los contenidos del paquete, tenemos un script de configuración proporcionado por OpenLDAP para configurar la distribución por construir en su sistema. El script de configuración acepta muchas opciones de línea de comandos que habilitan o deshabilitan características opcionales de software. Por lo general, los valores predeterminados están bien, pero es posible que desee cambiarlos. Para obtener una lista completa de las opciones que configura acepta, use la opción —help:

./configure --help

Sin embargo, generalmente es suficiente en la mayoría de los casos realizar una configuración por defecto de openLDAP, lo cuál se hace al ejecutar el siguiente comando:

./configure

Posteriormente hay que construir el software. Este paso tiene dos partes, primero construimos dependencias y luego compilar, verificando que no existan errores durante la construcción

make depend
make

Si desea verificar que se ha efectuado una compilación correcta, debe ejecutar el conjunto de pruebas (solo lleva unos minutos):

make test

Se ejecutarán las pruebas que se apliquen a su configuración y deberían pasar todas. Sin embargo, algunas pruebas, como la prueba de replicación, pueden omitirse.

5. Instalar el software

Ahora estamos listos para instalar el software; esto requiere privilegios de superusuario, los cuáles puede hacer así si no está en modo root:

su root -c 'make install'

El contenido por defecto se instala en el directorio /usr/local, sin embargo en configure se puede cambiar el prefijo para almacenar el contenido del software.

6. Editar el archivo de configuración

Aquí comienza lo emocionante. Use su editor favorito para editar el ejemplo por defecto slapd.ldif (generalmente ubicado en /usr/local/etc/openldap/slapd.ldif) para contener una definición de base de datos MDB de acuerdo al siguiente formulario:

 dn: olcDatabase=mdb,cn=config
 objectClass: olcDatabaseConfig
 objectClass: olcMdbConfig
 olcDatabase: mdb
 OlcDbMaxSize: 1073741824
 olcSuffix: dc=[MI-DOMINIO],dc=[COM]
 olcRootDN: cn=Manager,dc=[MI-DOMINIO],dc=[COM]
 olcRootPW: secret
 olcDbDirectory: /usr/local/var/openldap-data
 olcDbIndex: objectClass eq

Asegúrese de reemplazar [MI-DOMINIO] y [COM] con los componentes de dominio apropiados para su nombre de dominio. Por ejemplo, si su dominio es example.com, use la siguiente configuración:

 
dn: olcDatabase=mdb,cn=config
 objectClass: olcDatabaseConfig
 objectClass: olcMdbConfig
 olcDatabase: mdb
 OlcDbMaxSize: 1073741824
 olcSuffix: dc=example,dc=com
 olcRootDN: cn=Manager,dc=example,dc=com
 olcRootPW: secret
 olcDbDirectory: /usr/local/var/openldap-data
 olcDbIndex: objectClass eq 

Si su dominio contiene subdominios, por ejemplo: eng.uni.edu.eu, hay que aplicar la configuración:

 dn: olcDatabase=mdb,cn=config
 objectClass: olcDatabaseConfig
 objectClass: olcMdbConfig 
 olcDatabase: mdb
 OlcDbMaxSize: 1073741824
 olcSuffix: dc=eng,dc=uni,dc=edu,dc=eu
 olcRootDN: cn=Manager,dc=eng,dc=uni,dc=edu,dc=eu
 olcRootPW: secret
 olcDbDirectory: /usr/local/var/openldap-data
 olcDbIndex: objectClass eq

Los detalles sobre la configuración de slapd se pueden encontrar en slapd-config. Es muy importante que el directorio olcDbDirectory debe existir antes de iniciar slapd.

7. Importar la base de datos de configuración

En éste momento, se debe importar la base de datos de configuración para ser utilizada por slapd. Para ello ejecutamos:

su root -c /usr/local/sbin/slapadd -F /usr/local/etc/cn=config -l /usr/local/etc/openldap/slapd.ldif 

8. Iniciar SLAPD

Ahora está listo para iniciar el daemon de LDAP (slapd), el cuál va a ejecutarse como un servicio en segundo plano capaz de atrapar las peticiones del usuario, para ello ejecutamos el comando:

su root -c /usr/local/libexec/slapd -F /usr/local/etc/cn=config

Para verificar que el servidor está funcionando y que se encuentre configurado en forma correcta, es suficiente ejecutar una búsqueda en él con el comando ldapsearch. Por defecto, ldapsearch se ejecuta así:

/usr/local/bin/ldapsearch:
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

Tenga en cuenta el uso de comillas simples alrededor de los parámetros del comando para evitar que los caracteres especiales se interaccionen. El resultado debería mostrarse como sigue:

 dn:
 namingContexts: dc=example,dc=com

9. Agregar entradas iniciales a su directorio

Puede usar ldapadd para agregar entradas a su directorio LDAP. ldapadd espera una entrada en formato ldif. Para ello debemos crear un archivo ldif y ejecutar ldapadd sobre ese archivo. La estructura básica de un archivo ldif podría ser la siguiente:

dn: dc=[MI-DOMINIO],dc=[COM]    
objectclass: dcObject    
objectclass: organization    
o: [MI ORGANIZACIÓN] 
dc: [MI-DOMINIO]

dn: cn=Manager,dc=[MI-DOMINIO],dc=[COM]
objectclass: organizationalRole
cn: Manager

En donde hay que reemplazar [MI-DOMINIO] y [COM] con los componentes de su dominio. [MI ORGANIZACIÓN] debe reemplazarse con el nombre de su organización. Cuando corte y pegue, asegúrese de recortar los espacios en blanco iniciales y finales. Por ejemplo:

dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: Example Company
dc: example

dn: cn=Manager,dc=example,dc=com
objectclass: organizationalRole
cn: Manager

Una vez en existencia el archivo ldif de acuerdo a este formato, usted puede agregar las entradas al directorio usando ldapadd con la siguiente sintaxis:

ldapadd -x -D "cn=Manager,dc=[MY-DOMAIN],dc=[COM]" -W -f
example.ldif

Asegúrese de reemplazar [MY-DOMAIN] y [COM] con los componentes de su dominio. Se le solicitará el “secreto” especificado en el archivo inslapd.conf. Por ejemplo, para el dominio example.com sería:

ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f example.ldif 

En donde example.ldif es el archivo que se creó anteriormente.

10. Validar el funcionamiento

Por último, para verificar que las entradas agregadas se encuentren en su directorio, se puede usar cualquier cliente LDAP. Como ejemplo usamos la herramienta ldapsearch. Para el ejemplo del dominio example.com, utilizamos la siguiente consulta:

ldapsearch -x -b 'dc=example,dc=com' '(objectclass=*)'

Este comando buscará y recuperará cada entrada en la base de datos existente.

Ahora que está listo para agregar más entradas usando ldapadd u otro cliente LDAP, experimente con varias opciones de configuración, arreglos de backend, etc. Tenga en cuenta que, de manera predeterminada, la base de datos slapd otorga acceso de lectura a todos los registros, excepto al superusuario (como se especifica en la directiva de configuración rootdn). Se recomienda que establezca permisos para restringir el acceso a los usuarios autorizados, lo cuál veremos en otro tutorial.