Administración de OpenLDAP

Introducción

Una vez instalado y configurado el servidor LDAP, la siguiente tarea es la del diseño de la estructura y la introducción de datos en el directorio.

Puesto que la finalidad de nuestro servidor LDAP es que sirva de almacén de usuarios y grupos para autentificar sistemas linux y servicios como ftp y web, deberemos crear una estructura que parta de la base de nuestro directorio, para almacenar dicha información. Tal y como se explica más abajo, crearemos una unidad organizativa (ou) llamada groups, para almacenar los grupos de usuarios y crearemos otra unidad organizativa llamada users para almacenar a los usuarios.

Explorador de directorios LDAP

Para acceder al directorio LDAP y poder crear y modificar elementos en dicho directorio, es necesario disponer de un explorador de directorios LDAP (LDAP browser). Existen muchos exploradores LDAP tanto de pago como libres. Entre las aplicaciones libres destacamos gq, phpldapadmin (aplicación web) y JXplorer.

Para instalar gq, podemos utilizar apt-get. Una vez instalada, para ejecutar gq tan solo debemos pulsar alt+f2 y escribir gq.

Para instalar phpldapadmin, al igual que otras aplicaciones web, deberemos descargarla desde http://phpldapadmin.sourceforge.net/ y descomprimirla dentro del DocumentRoot de apache, es decir, dentro de la carpeta /var/www, por ejemplo en /var/www/phpldapadmin. Para ejecutarla, si la hemos descomprimido en la carpeta anterior, debemos ir a http://ip_del_servidor_web/phpldapadmin/ con el navegador y veremos la página principal de la aplicación:

JXplorer - Explorador LDAP en java.

Por su calidad superior, en este curso utilizaremos JXplorer para administrar el directorio LDAP.

Instalación de JXplorer

Previo a instalar jxplorer, es necesario instalar la máquina virtual java de Sun, para lo cual utilizaremos apt-get:
// Instalación de Java
# apt-get install sun-java6-bin sun-java6-jre sun-java6-plugin
El comando anterior instalará java en la carpeta /usr/lib/jvm/java-6-sun/jre/bin/. Posteriormente tendremos que editar el archivo /root/.bashrc y añadir las variables que permitan al shell encontrar los binarios del JRE:
// Añadir en /root/.bashrc
CLASSPATH=/usr/lib/jvm/java-6-sun/jre/bin/ JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/bin/ PATH=/usr/lib/jvm/java-6-sun/jre/bin:/sbin:/bin:/usr/sbin :/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin

Una vez instalado el java y establecidas las variables CLASSPATH, JAVA_HOME y PATH en el archivo /root/.bashrc, debes cerrar el terminal y volver a abrirlo, para que cargue las variables de entorno. Si ejecutas el comando set en el terminal, podrás comprobar que ha cargado las variables de entorno y podrás instalar JXplorer. JXplorer no está disponible en los repositorios de paquetes de debian, pero está incluido en el DVD del curso, en la carpeta /REDES_LINUX/software/jxplorer3.2_linux.bin. Debemos copiar el archivo en la carpeta /tmp de nuestro sistema y ejecutar:

// Instalar JXplorer
# sh /tmp/jxplorer3.2_linux.bin

Se iniciará un sencillo asistente de instalación que al finalizar habrá creado un enlace en nuestra carpeta home, por lo tanto para ejecutarlo debemos escribir:

// Ejecutar JXplorer: Entran en la carpeta de instalación y ejecutar:
# ./jxplorer.sh

Veremos la pantalla principal de JXplorer:

Conexión con el servidor LDAP

La conexión con el servidor LDAP podemos hacerla como usuario anónimo o como usuario administrador. Si conectamos de forma anónima solo podremos visualizar los elementos pero no podremos hacer cambios. Si conectamos como administrador, podremos crear, modificar y eliminar elementos de cualquier tipo.

Para conectar al servidor LDAP como administrador necesitamos la siguiente información:

La base del directorio se suele denominar en inglés 'base DN' o 'Nombre Distinguido de la base del directorio'. Se corresponde con el parámetro 'suffix' del archivo de configuración del servidor LDAP /etc/ldap/slapd.conf.

El nombre del usuario con el que nos conectamos se suele denominar en inglés 'user DN' o también 'bind DN'

El nombre de usuario administrador por defecto suele ser admin y a menudo hay que proporcionar nombre y base del directorio: cn=admin,dc=ieslapaloma,dc=com

Al hacer clic en el botón 'conectar' (marcado con círculo rojo en la figura) nos aparecerá el diálogo de conexión para que introduzcamos los datos de la conexión. Para no tener que introducir dicha información cada vez que conectemos, podemos grabar los datos pulsando 'Save'.

Si pulsamos OK, JXplorer conectará con el servidor LDAP y mostrará el directorio:

Vemos que en nuestro directorio solamente hay dos elementos: una organización llamada 'ieslapaloma' y el usuario administrador llamado 'admin'.

Organización del directorio LDAP

Creación de las unidades organizativas

Puesto que nuestro directorio va a almacenar usuarios y grupos, vamos a crear sendas unidades organizativas (en inglés organizational unit - ou) llamadas 'users' y 'groups' que nos servirán para organizar los usuarios y los grupos por separado.

Dentro de la unidad organizativa 'users' crearemos todos los usuarios del sistema. Dentro de la unidad organizativa 'groups' crearemos todos los grupos del sistema.

Para crear una unidad organizativa dentro de nuestra organización, haremos clic con el derecho sobre la organización 'ieslapaloma' y en el menú contextual elegiremos 'New':

Nos aparecerá la ventana 'Set Entry Object Classes' que podríamos traducir por 'Seleccione las clases objeto de la nueva entrada' o mejor, 'Seleccione las tipologías'. En ella podremos elegir los 'tipos' que tendrá nuestro nuevo elemento. Como se trata de una unidad organizativa (en inglés organizational unit - ou) debemos seleccionar el tipo organizationalUnit en la lista de la izquierda y pulsar el botón añadir (Add). Los otros dos tipos que aparecen por defecto (organizationalRole y simpleSecurityObjet) no los necesitaremos, por lo tanto podemos seleccionarlos de la lista de la derecha y pulsar el botón quitar (remove). En la casilla 'Enter RDN' (introducir Nombre Distinguido Relativo) debemos poner el nombre de nuestro elemento. Escribiremos ou=users. Estaremos en la situación de la siguiente figura:

Tan solo debemos pulsar el botón OK y ya se habrá creado nuestra unidad organizativa 'users'. Repetiremos los pasos para crear otra unidad organizativa llamada 'groups'. El resultado que obtendremos será:

Usuarios y grupos

Ahora solamente nos queda crear los usuarios, crear los grupos y asignar los usuarios a sus grupos. Dentro de nuestra unidad organizativa 'groups' crearemos los siguientes grupos: Dentro de nuestra unidad organizativa 'users' crearemos los siguientes usuarios:

Creación de grupos

Para crear los grupos, haremos clic con el derecho en la unidad organizativa 'groups' e igual que antes haremos clic en 'New'. Nuestro nuevo elemento será un nuevo grupo posix, por lo tanto debemos agregar el tipo 'posixGroup' de la lista de la izquierda. El nombre (RDN) será profesores, por tanto debemos escribir 'cn=profesores' (cn= Common Name - Nombre Común):

Al pulsar OK nos apacererá la siguente figura, en la cual observamos los atributos clásicos de un grupo posix. Debemos rellenar al menos el campo gidNumber. También podemos introducir miembros al grupo. En el parámetro memberUid añadimos javier. Luego, haciendo clic con el derecho en javier > Add another value, podemos añadir otro valor: joaquin. De igual manera añadiremos a miguel. No importa que todavía no hayamos creado a dichos usuarios:

Creación de usuarios

Para crear los usuarios, haremos clic con el derecho en la unidad organizativa 'users' e igual que antes haremos clic en 'New'. Nuestro nuevo elemento será un nuevo usuario posix, por lo tanto debemos agregar el tipo 'posixAccount' de la lista de la izquierda. Pero nuestro usuario también será una persona, por eso nos interesará agregar el tipo 'person' para disponer de los atributos de dicho tipo (nombre, apellidos, ...), además como será usuario de Internet nos interesará agregar también el tipo 'inetOrgPerson' para poder almacerar el e-mail y otros valores. Si su nombre es Francisco Javier, podemos escribir en la casilla RDN 'cn=Francisco Javier' (cn= Common Name - Nombre Común):

Al pulsar OK nos apacerá la siguiente figura, en la cual observamos los atributos de las tres tipologías de nuestro elemento: persona, usuario de internet y cuenta posix. Debemos rellenar al menos los campos gidNumber (grupo primario que será el 1001), homeDirectory, uid (identificador), uidNumber, loginShell y sn (surname - apellidos). También añadiremos el e-mail aunque en la figura no se vea ya que está más abajo:

Lo mismo haremos con el resto hasta que tengamos creados los cinco usuarios. Al final nuestro servidor LDAP tendrá la siguiente información:

Ya tendríamos creada la estructura, los grupos y los usuarios que necesitamos para nuestro sistema.