Instalar OpenLDAP en Debian Jessie y crear un directorio LDAP básico
LDAP son las siglas correspondientes a Lightweight Directory Access Protocol, que en español se traduce como Protocolo Ligero/Simplificado de Acceso a Directorios. Como bien indica su nombre, se trata de un protocolo usado para acceder a través de la red a información guardada en directorios en un equipo servidor. Y sí, se recalca su rapidez conforme a otro tipo de sistemas para almacenar información como pueden ser las bases de datos relacionales.
Este sistema se organiza de forma jerárquica haciendo uso de directorios. Estos pueden almacenar variedad de información tanto de personas como de objetos. Su uso más habitual es como agenda de contactos o como método de autenticación de usuarios, los cuales se pueden conectar en red. Ambos casos pueden incluir información de personas como número de teléfono, dirección, dirección de correo electrónico, contraseña o descripción.
Instalando el servidor LDAP en Debian Jessie
Para instalar y configurar el servidor OpenLDAP en Debian Jessie ejecutamos el comando apt-get install slapd
donde seguidamente nos requerirá establecer la contraseña de administrador de LDAP.
Esta instalación creará por defecto un directorio LDAP con dos entradas que podemos consultar con el comando slapcat
Cada entrada se identifica de manera única con un Distinguished Name (dn). También podemos hacer uso del comando ldapsearch -x -h localhost
Las configuraciones del directorio LDAP instalado no están bien establecidas, por lo que reconfiguramos el paquete mediante la instrucción dpkg-reconfigure -plow slapd
y configuramos los parámetros requeridos.
Para ello debemos marcar la opción no en la primera pregunta para omitir la configuración del servidor OpenLDAP. Tras esto pasaremos a la pantalla Configuring slapd que pedirá el nombre de dominio DNS. En nuestro caso será egarcia.gonzalonazareno.org que creará el directorio con dc=egarcia, dc=gonzalonazareno, dc=org.
Las configuraciones a establecer en las pantallas son las siguientes:
- Nombre de dominio DNS: egarcia.gonzalonazareno.org
- Nombre de la organización: IES Gonzalo Nazareno
- Contraseña del administrador de OpenLDAP.
- Motor de base de datos: MDB (opción por defecto).
- Marcamos que no se elimine el directorio cuando slapd se elimine (opción por defecto).
- Seleccionamos que se mueva el antiguo directorio (opción por defecto).
- Indicamos que no se utilice el protocolo LDAPv2 para utilizar la versión LDAPv3 (opción por defecto).
Ahora, la salida del comando slapcat
mostrará el directorio LDAP con la configuración correcta realizada en el proceso anterior.
También instalamos el paquete ldap-utils que contiene herramientas y utilidades para realizar gestiones en el servidor LDAP. Por lo tanto que ejecutamos apt-get install ldap-utils
Crear y configurar unidades organizativas, grupos y usuarios
El formato LDIF (LDAP Data Interchange Format) es un estándar para archivos con configuraciones de LDAP. Se escribe texto plano y en él se puede agregar, modificar eliminar y cambiar el nombre de registros que luego son cargados mediante un comando. Es el formato en el que se muestran las salidas de slapcat
y cada elemento se separa con una línea en blanco.
Los usuarios, grupos y unidades organizativas pueden realizarse a través de un único fichero con extensión .ldif o separando la información en varios ficheros, según creamos conveniente.
Para mantener los ficheros .ldif en un mismo lugar, creamos un directorio llamado LDAP en nuestro directorio personal. En él crearemos fichero unidadesorganizativas.ldif, grupos.ldif y usuarios.ldif.
Comenzamos con la creación de dos unidades organizativas: People y Group.
1 2 3 4 5 6 7 8 9 |
dn: ou=People,dc=egarcia,dc=gonzalonazareno,dc=org objectClass: top objectClass: organizationalUnit ou: People dn: ou=Group,dc=egarcia,dc=gonzalonazareno,dc=org objectClass: top objectClass: organizationalUnit ou: Group |
Cargamos la configuración de este fichero con ldapadd -x -D 'cn=admin,dc=egarcia,dc=gonzalonazareno,dc=org' -W -f unidadesorganizativas.ldif
donde se nos pedirá la contraseña del administrador y mostrará adding new entry por cada OU añadida.
Igualmente hacemos lo mismo con el grupo que he decidido llamar Usuarios y tiene como ID de grupo el número 2000: creamos fichero y cargamos configuración.
1 2 3 4 5 |
dn: cn=Usuarios,ou=Group,dc=egarcia,dc=gonzalonazareno,dc=org objectClass: top objectClass: posixGroup gidNumber: 2000 cn: Usuarios |
En el fichero referente a los usuarios puede ser necesario un paso previo para insertar ciertos datos.
Por ejemplo, en el caso de una contraseña es necesario cifrar la contraseña del usuario con el comando slappasswd
que generará un resultado a pegar en el campo userPassword.
También es necesario hacerlo para guardar campos con caracteres extraños (tildes, ñ’s, ç’s…). Estos deben ser codificados en Base64 para garantizar que se muestran y almacenan correctamente.
LDIF reconoce que un campo está en Base64 mediante el uso doble del símbolo de dos puntos y no uno como es lo habitual.
En nuestra terminal podemos hacer la codificación con base64
y base64 -d
para hacer el proceso inverso.
Por ejemplo, en este caso el Common Name (CN) ha sido codificado porque mi primer apellido contiene una tilde. Igualmente podéis ver que el Surname (SN) también lo he incluido en Base64.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
dn: uid=EvaristoGZ,ou=People,dc=egarcia,dc=gonzalonazareno,dc=org objectClass: top objectClass: posixAccount objectClass: inetOrgPerson objectClass: person cn:: RXZhcmlzdG8gR2FyY8OtYSBaYW1icmFuYQo= uid: EvaristoGZ uidNumber: 2000 gidNumber: 2000 homeDirectory: /home/nfs/EvaristoGZ loginShell: /bin/bash userPassword: {SSHA}BEsLWk2FSz6q8MSQ3qTfVRnJCZZRY/aI sn:: R2FyY8OtYQo= mail: email@gmail.com givenName: Evaristo |
Al igual que los dos archivos anteriores, lo cargamos en nuestro servidor LDAP con ldapadd -x -D 'cn=admin,dc=egarcia,dc=gonzalonazareno,dc=org' -W -f usuarios.ldif
Nuevamente, podemos ver el resultado de nuestro directorio con la ejecución de slapcat
Recuerda que esto generará una salida en formato LDIF que puede resultar útil para realizar backups de nuestro directorio LDAP.
Referencias
1 respuesta
[…] en el directorio LDAP básico creado en anteriormente y documentado en la entrada Instalar OpenLDAP en Debian Jessie y crear un directorio LDAP básico, crearemos un sistema de cuentas centralizados en el que se puedan identificar usuarios remotamente […]