Este documento describe la configuración de un servidor LDAP centralizado con OpenLDAP en Ubuntu para autenticación de usuarios. Se instala y configura OpenLDAP, se añaden usuarios y grupos, y se instala phpLDAPadmin para administración web. Luego, en un cliente Ubuntu se instalan paquetes LDAP, se editan archivos de configuración y se prueba el inicio de sesión de un usuario del directorio centralizado.
1. 0
OPENLDAP CON
UBUNTU SERVER
ÍNDICE PÁG
1. Objetivo de la práctica.................................................................................1
2. Diagrama de la práctica ...............................................................................1
3. Introducción a OpenLDAP...........................................................................2
4. Instalación....................................................................................................4
4.1 Configurar el demonio SLAPD...............................................................5
4.2 Estructura de directorios .......................................................................6
4.3 Añadir Usuarios y Grupos ......................................................................7
5. Instalación de phpLDAPadmin....................................................................9
6. Configuración del Cliente........................................................................... 11
7. Comprobación ...........................................................................................14
2. 1
1. OBJETIVO DE LA PRÁCTICA
Se pretende implantar un sistema de autenticación centralizada de usuarios para
sistemas Linux. El objetivo es disponer de un directorio de usuarios en un sistema
Linux con distribución orientada a servidor.
Se deberá configurar un cliente Linux con distribución orientada a cliente. El
inicio de sesión en el cliente deberá ser posible con usuarios del directorio
centralizado.
Recursos: implantación LDAP sencilla basada en OpenLDAP
Se presentará un informe de las configuraciones realizadas.
2. DIAGRAMA DE LA PRÁCTICA
Nos hará falta un controlador de dominio (vellido.com). Los clientes en la misma
red se conectarán mediante LDAP.
3. 2
3. INTRODUCCIÓN A OPENLDAP
LDAP es un protocolo que se basa en directorios. Hace la misma utilidad que un
Active Directory, pero en Sistemas Operativos de Linux.
Siempre con algunas diferencias y métodos diferentes de configuración, pero la
función que hace es la misma.
Cada entrada de un directorio representa un objeto. Es decir, puede ser una
persona, una función, un grupo, etc.
Existen los atributos con un valor que permite definir el objeto. Existen dos tipos
de atributos:
Atributos normales: Identifican a un objeto (nombre, apellido, etc).
Atributos operativos: Son los que utiliza el servidor para administrar el
directorio (fecha de creación, tamaño).
Los atributos más importantes:
uid (user id): Identificación única de la entrada en el árbol.
objectClass: Indica el tipo de objeto al que pertenece la entrada.
cn (common name): Nombre de la persona representada en el objeto.
givenname: Nombre de pila.
sn (surname): Apellido de la persona.
o (organization): Entidad a la que pertenece la persona.
u (organizational unit): El departamento en el que trabaja la persona.
mail: dirección de correo electrónico de la persona.
5. 4
4. INSTALACIÓN
Para instalar LDAP necesitaremos algunas herramientas: apt-get install slapd
ldap-utils.
Realizaremos la configuración básica, como agregarle el nombre de nuestro DC
(vellido.com), la contraseña del Administrador, etc.
Editaremos el archivo hosts y añadiremos el nombre de nuestro dominio.
También pondremos la IP del cliente. Este método es para facilitar la conexión
entre ordenadores y no tener que instalar DNS.
Después se instalarán una lista de paquetes: libnss-ldap
Esta librería ofrece una interfaz para acceder y configurar distintas bases de
datos utilizadas para almacenar cuentas de usuario (entre otras, /etc/passwd,
/etc/group, /etc/hosts, LDAP, etc.).
Otras como:
ldap-auth-config (configuración de la autenticación de LDAP).
pam-auth-update (políticas de autenticación).
Para cambiar la configuración podemos utilizar este comando:
dpkg-reconfigure ldap-auth-config.
6. 5
Una vez acabada la configuración automática, podremos hacer algunos cambios
complementarios editando el archivo /etc/ldap.conf
Podemos ver como vellido.com está especificado como nuestro DC con nuestro
dominio (.com). Además, la IP del Servidor LDAP, mas la versión (3).
4.1 CONFIGURAR EL DEMONIO SLAPD
SLAPD (Standalone LDAP Daemon) es un programa multiplataforma, que se
ejecuta en segundo plano, atendiendo las solicitudes de autenticación LDAP que
se reciban en el servidor. El último paso en la configuración del servidor LDAP
será establecer algunos parámetros en la configuración de este demonio. Para
volver a configurarlo ejecutamos el comando que hemos comentado antes
(dpkg-reconfigure slapd).
Aparecerá un asistente para poder configurar las opciones de nuevo.
Agregaremos el dombre de dominio: vellido.com
El nombre de la organización: Vellido
La contraseña del administrador:
El motor de base de datos: HDB.
7. 6
4.2 ESTRUCTURA DE DIRECTORIOS
En este punto se crearán los directorios pertinentes para que se pueda añadir la
información mediante archivos LDIF (LDAP Data Interchange Format).
Básicamente archivos en texto plano.
El primer archivo que crearemos se llamará "base.ldif".
Con esta información, crearemos un archivo que contenga los tipos de objeto
básicos del directorio.
Deberemos añadir la información a la base de datos OpenLDAP:
sudo ldapadd -x -D cn=admin,dc=vellido,dc=com -W -f base.ldif
8. 7
4.3 AÑADIR USUARIOS Y GRUPOS
A pesar de que cuando se realice toda la configuración ya podremos añadir
usuarios desde PHPLDAPmyadmin, nosotros lo haremos desde modo comando
para realizar las primeras pruebas.
Crearemos el archivo usuario.ldif.
Y se añadirá:
Haremos lo mismo con el grupo.ldif:
9. 8
Y se añadirá:
Se comprobará que todo es correcto:
Con el comando slapcat podemos comprobar el último contenido creado del
directorio:
10. 9
5. INSTALACIÓN DE PHPLDAPADMIN
Se necesitará un cliente basado en interfaz web que permitirá administra de
forma sencilla el servidor LDAP desde cualquier navegador web.
phpLDAPadmin dispone de una vista con forma de árbol jerárquico que permite
recorrer toda la estructura del directorio. Además, incorpora funciones de
búsqueda avanzadas que lo convierten en una herramienta intuitiva para
consultar y administrar el directorio LDAP.
con el comando: apt-get install phpldapadmin -y.
Accederemos al servidor poniendo la ip + phpldapadmin:
http://192.168.1.20/phpldapadmin/
11. 10
Para no tener problemas y que nos aparezca “example.com” tendremos que
cambiar una línea del archivo /etc/phpldapmyadmin/config.php y agregar el
nombre de nuestro servidor.
Y ya se podrá autenticar desde el dominio vellido.com:
12. 11
6. CONFIGURACIÓN DEL CLIENTE
Los clientes necesitarán unos pasos previos para poder funcionar con nuestro
dominio.
Primero de todo instalaremos los siguientes paquetes:
libpam-ldap: Que facilitará la autenticación con LDAP a los usuarios que
utilicen PAM.
libnss-ldap: Permitirá que NSS obtenga de LDAP información
administrativa de los usuarios (Información de las cuentas, de los grupos,
información de la máquina, los alias, etc.
nss-updatedb: Mantiene una caché local del de la información del usuario y
grupo en el directorio LDAP.
libnss-db: Incluye extensiones para usar bases de datos de red.
nscd: Es un demonio que ofrece una caché para muchas de las peticiones
mś frecuentes del servicio de nombres.
ldap-utils: Facilita la interacción don LDAP desde cualquier máquina de la
red.
Colocaremos la IP del servidor en el ldap-auth-config. También nos hará indicar el
DC=vellido. Más tarde editaremos el archivo /etc/ldap.conf y cambiaremos una
serie de líneas quedando de esta manera:
bind_policy soft = Con esta configuración no habrá alta disponibilidad. Es
decir, cambiando la "soft" por "hard" entonces podríamos hacer un sistema
más seguro y en caso de que se cayera el primer LDAP, iría a un segundo.
13. 12
pam_password crypt = Le cambiamos el tipo de encriptación. Le quitamos
el md5.
uri ldap://192.168.1.20 = La ip del servidor.
También editaremos el archivo /etc/ldap/ldap.conf:
Básicamente habrá que descomentar algunas líneas como BASE o URI para que
nuestro esté "en línea"
Editaremos también /etc/nsswitch.conf dejándolo de esta forma:
14. 13
El cliente ya estaría configurado, pero si queremos que la carpeta se cree
automáticamente cuando el usuario inicie sesión por primera vez en un equipo,
deberemos hacer uso de un módulo PAM llamado pam_mkhomedir. Esto lo
conseguimos haciendo una pequeña modificación en el archivo
/etc/pam.d/common-session del cliente.
Agregamos esta línea al principio del archivo:
Otro inconveniente que tiene la configuración actual es que los usuarios LDAP no
podrán cambiar sus propias contraseñas. Para solucionarlo, deberemos cambiar
el archivo /etc/pam.d/common-password. En la línea que pone lo siguiente:
password [success=1 user_unknown=ignore default=die] pam_ldap.so
use_authtok try_first_pass
Quitando a partir de pam_ldap.so, quedaría de esta forma:
Por ultimo editaremos el archivo /etc/lightdm/lightdm.conf. Este archivo nos
permitirá logearnos con cualquier usuario desde Ubuntu. Ya que sólo incluye en
la lista aquellos usuarios que ya conoce.
Hasta aquí llegaría la configuración del equipo cliente.
session required pam_mkhomedir.so skel=/etc/skel/
umask=0022
password [success=1 user_unknown=ignore default=die]
pam_ldap.soumask=0022
15. 14
7. COMPROBACIÓN
Ahora solo nos falta comprobar que el sistema es funcional.
Entrando desde terminal web creamos un usuario:
Nuestro usuario se llamará Derrick Rose (dr0se):
16. 15
E iniciamos sesión:
La prueba para comprobar que el usuario se ha creado es utilizando el comando
"getent passwd".
Este comando devuelve la suma de todos los usuarios que se puedan validar en la
máquina.
17. 16
Y el usuario (id):
Simplemente es una identificación.
Con pwd comprobamos que se ha creado el directorio personal:
Y hasta aquí llegaría la configuración de un sistema LDAP con la distribución
Ubuntu.
Josep Mª Vellido – ASIX2M
ASISOP – STUCOM 13/14