Vamos a explicar los pasos necesarios para configurar un servidor LDAP y un cliente que lo utilice para la identificación de usuarios


Instalación del Servidor

Comenzaremos instalando en el servidor los paquetes slapd y ldap-utils

wpid806-media_1317642137669.png

Durante la instalación nos pide la contraseña del administrador del servidor LDAP

wpid807-media_1317642238041.png

Introducimos una contraseña y en el siguiente paso nos la vuelve a pedir para verificarla.

Durante la instalación nos pedirá que configuremos el dominio que usará LDAP. Si no lo hace, podemos volver a configurarlo con dpkg-reconfigure slapd y aparecerán las siguientes ventanas

wpid808-media_1317642665627.png

Pulsamos en NO, para que nos deje volver a configurar el servidor

wpid809-media_1317642726398.png

Introducimos el nombre del dominio que usará LDAP. También nos volverá a pedir la contraseña. El resto de opciones las configuramos como sigue (opción en rojo):

wpid810-media_1317642775045.png


wpid811-media_1317650873371.png


wpid812-media_1317650895365.png


wpid813-media_1317650905187.png

Para ver los datos que tenemos insertados en nuestro servidor, podemos utilizar el comando slapcat y obtendremos algo como esto:

wpid814-media_1317651165627.png

Para ver si tenemos el servidor LDAP a la escucha podemos usar nmap -p 389 localhost (si no está instalado se puede descargas de los repositorios con aptitude install nmap)

wpid815-media_1317651374360.png


Instalación del Cliente

Instalamos los siguiente paquetes: libnss-ldapd libpam-ldapd nscd nslcd

wpid816-media_1317652116407.png

En la configuración de libnss-ldapd marcamos (con el espacio) group, passwd y shadow

wpid817-media_1317652206125.png

En la configuración de nslcd pondremos los parámetros del servidor LDAP. Si no aparece en la instalación ejecutaremos dpkg-reconfigure nslcd

wpid818-media_1317652271961.png


wpid820-media_1317652322894.png

Como en nuestro caso no necesitamos ningún usuario especial para consultar el servidor LDAP, no ponemos nada

wpid819-media_1317652304217.png

En nuestro caso no tenemos configurada una conexión segura (que sería lo recomendable), por eso ponemos que no use StartTLS

Añadir grupos y usuarios

Para administrar el servidor LDAP de manera más sencilla vamos a instalar una aplicación web llamada phpldapadmin. Está en los repositorios, por lo que sólo tendremos que usar apt-get o aptitude para instalarla: aptitude install phpldapadmin.
Una vez hecho esto, para acceder, entraremos a un navegador web y pondremos en la dirección http://localhost/phpldapadmin/ y nos aparecerá una pantalla como esta:

wpid821-media_1317710732158.png

Para comenzar a administrar los elementos del LDAP pulsamos arriba a la izquierda donde pone “Conectar”, luego ponemos el usuario administrador (cn=admin,dc=example,dc=com) y su contraseña.

wpid822-media_1317710869199.png


wpid823-media_1317710896158.png

Una vez dentro pulsamos en el signo + que hay a la izquierda del dominio para poder desplegar las opciones y veremos que sólo tenemos un elemento, el administrador. También veremos un icono para permitirnos crear más elementos. Pulsamos en crear nuevo objeto:

wpid824-media_1317711027369.png

Una vez aquí, vamos a crear dos Unidades Organizativas, una para los grupos y otra para los usuarios

wpid825-media_1317711638440.png

Ahora creamos los grupos como objeto hijo de la unidad organizativa “Grupos”. En la plantilla elegimos Grupo Posix

wpid826-media_1317711707023.png

Asiganos un nombre para el grupo y aceptamo el GID que nos sugiere. Si queremos poner uno nosotros y la casilla está desactivada tendríamos que editar la plantilla.
Vamos al fichero /etc/phpldapadmin/templates/creation/posixGroup.xml y eliminamos la linea que pone <readonly>1</readonly>

Ahora vamos a crear los usuarios, pulsamos en ou=Usuarios y creamos un hijo del tipo Generico: Cuenta de Usuarios.

wpid827-media_1317712074505.png

En el formulario que nos aparece rellenamos todas las opciones del usuarios. Con el UID nos pasará igual que con el GID explicado en el punto anterior. Si necesitamos insertar un número de nuestra preferencia editamos el fichero posixAccount.xml en el mismo directorio mencionado anteriormente.

wpid828-media_1317712287092.png

Este será el resultado final una vez creado el grupo y el usuario.

Comprobación y uso desde el cliente

Para comprobar que todo está correctos podemos ejecutar en el cliente la siguiente instrucción: getent passwd

wpid829-media_1317712498000_1.png

Aquí podemos ver que aparecen los usuarios del sistema y también los que están creados en el LDAP, en este caso “amartinez”. Lo mismo podríamos hacer para los grupos con getent group

wpid830-media_1317712652415.png

Ahora podemos identificarnos en el sistema como “amartinez” y utilizar el sistema según los permisos configurados en él. Como podemos ver, si el directorio home del usuario no existe, lo crea automáticamente, eso lo realiza si existe la linea
session optional pam_mkhomedir.so skel=/etc/skel umask=0022
en el fichero /etc/pam.d/common-session del cliente.

Enlaces relacionados

http://www.debian-administration.org/article/585/OpenLDAP_installation_on_Debian
http://www.saruman.biz/wiki/index.php/OpenLDAP
http://www.modlost.net/home/article/debian-gnulinux-open-ldap.html
http://www.debian.org/releases/stable/sparc/release-notes/ch-information.es.html#ldap-gnutls


Aquí tenéis el tutorial en PDF: Servidor LDAP en Debian 6 Squeeze (PDF)

Antonio Sánchez Corbalán, Septiembre 2011
http://antonio.sanchezcorbalan.es
@antosaco