Instalación y configuración inicial de OpenLDAP
Warning: This information may be outdated. Please note the date of the post.
Descripción
Realiza la instalación y configuración básica de OpenLDAP en frestón utilizando como base el nombre DNS asignado.
Crea dos unidades organizativas, una para personas y otra para grupos.
1. Conceptos previos
LDAP corresponde a Lightweight Directory Access Protocol, que significa protocolo ligero de acceso a directorios. Es decir, se trata de un protocolo que permite acceder a través de la red a información guardada en directorios en un sevidor. Utiliza un sistema de base de datos no relacional siendo así más rápido.
Utiliza un sistema jerárquico, o en forma de árbol haciendo uso de directorios. Aquí se guarda información variada de personas y objetos.
2. Instalación y configuración de LDAP
Antes de instalar ldap nos vamos a asegurar que nuestro sistema está en condiciones y reúne los requisitos para su instalación.
- El sistema debe de tener bien configurada la hora
- La máquina debe de estar actualizada
- El nombre de la máquina está configurada correctamente tanto el simple como el completo, ejecutando, hostname y hostname -f comprobamos esto
En mi caso:
root@freston:/home/debian# hostname
freston
root@freston:/home/debian# hostname -f
freston.celia.gonzalonazareno.org
Vamos a instalar LDAP sobre Debian Buster, utilizaremos la paquetería de Debian para instalarlo de la siguiente forma
sudo apt-get install sldap
Además vamos a utilizar unas herramientas muy útiles para utilizar nuestro sistema de directorios
sudo apt-get install ldap-utils
Una vez instalado el software y las herramientas vamos a reconfigurar nuestro sistema de directorios para determinar nuestro nombre y configurar una contraseña para el adminsitrador
dpkg-reconfigure -plow slapd
Nos mostrará varias ventanas en varios pasos, tendremos que:
- Indicar nuestro nombre de dominio DNS, en mi caso sera freston.celia.gonzalonzareno.org
- Indicar el nombre de la organización en mi caso será IES Gonzalo Nazareno.
- Indicar la contraseña que usaremos de administrador.
- Nos preguntará si queremos cambiar el motor de base de datos que vamos a usar en mi caso lo he dejado por defecto MDB.
- Nos preguntará si queremos que la base de datos se elimine cuando purguemos ldap, le diremos que sí.
- Nos preguntará si queremos dejar el antiguo directorio que viene por defecto y lo dejamos en sí.
3. Crear unidades organizativas
Para crear las unidades organizativas vamos a usar un fichero con extensión ldif que es un estándar con configuraciones de LDAP. Ahí vamos a agregar el contenido de los nuevos registros que vamos a añadir.
Vamos a crear las unidades organizativas de esta forma:
personas
root@freston:/home/debian# nano personas.ldif
dn: ou=People,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: organizationalUnit
ou: People
root@freston:/home/debian# ldapadd -x -D 'cn=admin,dc=freston,dc=celia,dc=gonzalonazareno,dc=org' -W -f personas.ldif
Enter LDAP Password:
adding new entry "ou=People,dc=freston,dc=celia,dc=gonzalonazareno,dc=org"
grupos
root@freston:/home/debian# nano grupos.ldif
dn: ou=Group,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: organizationalUnit
ou: Group
root@freston:/home/debian# ldapadd -x -D 'cn=admin,dc=freston,dc=celia,dc=gonzalonazareno,dc=org' -W -f grupos.ldif
Enter LDAP Password:
adding new entry "ou=Group,dc=freston,dc=celia,dc=gonzalonazareno,dc=org"
Vemos que se han creado correctamente “en bruto” usando el comando:
slapcat
dn: ou=People,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: organizationalUnit
ou: People
structuralObjectClass: organizationalUnit
entryUUID: edfb19f6-d276-103a-8e15-9befe2d527e2
creatorsName: cn=admin,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
createTimestamp: 20201214164116Z
entryCSN: 20201214164116.484795Z#000000#000#000000
modifiersName: cn=admin,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
modifyTimestamp: 20201214164116Z
dn: ou=Group,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: organizationalUnit
ou: Group
structuralObjectClass: organizationalUnit
entryUUID: 381306fc-d277-103a-8e16-9befe2d527e2
creatorsName: cn=admin,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
createTimestamp: 20201214164320Z
entryCSN: 20201214164320.793017Z#000000#000#000000
modifiersName: cn=admin,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
modifyTimestamp: 20201214164320Z
Interactuando, con el comando:
ldapsearch -x -D "cn=admin,dc=freston,dc=celia,dc=gonzalonazareno,dc=org" -b dc=freston,dc=celia,dc=gonzalonazareno,dc=org -W
root@freston:/home/debian# ldapsearch -x -D "cn=admin,dc=freston,dc=celia,dc=gonzalonazareno,dc=org" -b dc=freston,dc=celia,dc=gonzalonazareno,dc=org -W
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <dc=freston,dc=celia,dc=gonzalonazareno,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# freston.celia.gonzalonazareno.org
dn: dc=freston,dc=celia,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: IES Gonzalo Nazareno
dc: freston
# admin, freston.celia.gonzalonazareno.org
dn: cn=admin,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9WVFtTTJSbVZxby80S1pPQ2VnanQxK2RUUUdjM2YwZ0U=
# People, freston.celia.gonzalonazareno.org
dn: ou=People,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: organizationalUnit
ou: People
# Group, freston.celia.gonzalonazareno.org
dn: ou=Group,dc=freston,dc=celia,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: organizationalUnit
ou: Group
# search result
search: 2
result: 0 Success
# numResponses: 5
# numEntries: 4
4. Configuración básica
Podemos configurar ldap de forma que no tengamos que pasar el parámetro base, lo indicamos en el siguiente fichero de esta forma:
nano /etc/ldap/ldap.conf
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
BASE dc=freston,dc=celia,dc=gonzalonazareno,dc=org
URI ldap://localhost
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt