¿QUÉ ES LDAP?
Protocolo ligero para acceder al servicio de directorio (LDAP), es un protocolo de aplicación que permite el acceso a un servicio o directorio. Los directorios con los que trabaja LDAP son de propósito general aunque se suele utilizar para almacenar información referente a organizaciones, usuarios, redes, etc. se ejecuta sobre TCP/IP o sobre otros servicios de transferencia orientada a conexión; que permite el acceso a la data de un directorio ordenado y distribuido para buscar información. Además se puede guardar otro tipo de información como: numero teléfono, estado civil, fecha de nacimiento, celular, etc. En conclusión LDAP es un protocolo de acceso unificado a un conjunto de información sobre los usuarios de una red de computadoras.
¿POR QUÉ UTILIZAR LDAP? La mayor ventaja de LDAP es que se puede consolidar información para toda una organización dentro de un repositorio central. Por ejemplo, en vez de administrar listas de usuarios para cada grupo dentro de una organización, puede usar LDAP como directorio central, accesible desde cualquier parte de la red. Puesto que LDAP soporta la Capa de conexión segura (SSL) y la Seguridad de la capa de transporte (TLS), los datos confidenciales se pueden proteger de los curiosos. LDAP también soporta un número de bases de datos back-end en las que se guardan directorios. Esto permite que los administradores tengan la flexibilidad para desplegar la base de datos más indicada para el tipo de información que el servidor tiene que diseminar. También, ya que LDAP tiene una interfaz de programación de aplicaciones (API) bien definida, el número de aplicaciones acreditadas para LDAP son numerosas y están aumentando en cantidad y calidad, las hay en distintos lenguajes de programación, programación, tales como C, C++, Java, Java, Perl, PHP, entre otros.
¿CÓMO OPERA UN SERVIDOR LDAP? Un cliente inicia una sesión con un servidor LDAP (conocido como DSA: Directory D irectory Service Agent), dicha conexión se hace vía TCP/IP a través del uerto por defecto 389 (636 para conexiones SSL), básicamente un cliente envía una solicitud al servidor de directorio, que emite una respuesta, la sesión puede permanecer abierta todo el tiempo que sea necesario, el servidor responderá las solicitudes en el orden que él desee.
La operación primaria que se puede realizar es BIND, bind es el proceso de “conectar” envíando un usuario y una c ontraseña y esperar la respuesta de autenticación, es de hecho, la operación más básica e importante de las utilidades de LDAP, servir de centralizador de autenticación en un entorno corporativo.
Los datos son movidos desde el cliente al servidor y viceversa utilizando un dialecto propio, conocido como LDIF (LDAP Data Interchange Format):
dn: nombre distinguido, esto se refiere al nombre que identifica de forma exclusiva una entrada al directorio.
dc: componente de dominico, Esto se refiere a cada componente del dominio. Por ejemplo www.google.com se escribiría como DC = www, DC = google, DC = com ou: unidad organizacional , Esto se refiere a la unidad organizativa o grupo de usuarios. Si el usuario es parte de más de un grupo, puede especificar como tal, por ejemplo, OU = Abogado, OU = Juez. cn: nombre común, Esto se refiere al objeto individual (nombre de la persona; sala de reuniones; nombre de la receta, título del trabajo, etc.) para los que / la que se está consultando.
Estas son algunas de las reglas que hay que tener en cuenta en los LDIF: -
La primera entrada es siempre es el DN o nombre distinguido.
-
Los atributos van a la izquierda y los valores a la derecha y están separados por: (dos puntos).
-
El primer valor de DN debe estar en una línea posterior de la entrada en el ldif.
-
El atributo debe tener su correspondiente entrada de atributo llamado objectClass que define el atributo y está relacionado con el schema.
-
No se distinguen mayúsculas y minúsculas.
-
El signo igual no tiene que tener espacios ni por delante ni por detrás.
-
Los caracteres especiales se tienen que escapar (carácter \).
-
En un archivo LDIF puede haber más de una entrada definida, cada entrada se separa de las demás por una línea en blanco.
FUNCIONES DEL ÁRBOL DE DIRECTORIO (DIT) DIT (Directory Information Tree ó Arbol de Información del Directorio) es la estructura de un servidor LDAP. Donde las ramas de árbol pueden ser contenedores u hojas. Las hojas contienen la parte final de una rama y no contienen objetos. Algunos ejemplos serían person, InetOrgPerson o groupofNames. Las clases de objeto que vamos a tener en nuestro árbol van a ser: -
dcObject: Objeto domainComponent o componentes del nombre del dominio. Atributo obligatorio: dc
-
organizationalUnit: Unidad organizativa. Atributo ou.
-
InetOrgPerson: Datos relacionados con la persona para la intranet o Internet. Atributos sn y cn.
Cada entrada en el arbol posee un identificador único llamado Distinguished Name o DN. El primer paso para diseñar el DIT es definir el Base DN, el Base DN es el nivel más alto en el arbol de directorio, es decir, la base o raíz del directorio. En nuestro caso el Base DN será definido utilizando los llamados DC ó Domain Components, similar a la estrucura del Sistema de Nombres de Dominio (DNS).
dc=example,dc=com
ou=users
uid=jperez
ou=groups
uid=pmarmol
cn=domain users
ou=computers
cn=it
uid=pcventa01
uid=pcconta01
En la figura de arriba de define: -
dc=profesordeinformatica,dc=com: Raíz del directorio
-
ou=Users: Contenedor para almacenar cuentas de usuario para sistemas Linux/Unix y Windows
-
ou=Computers: Contenedor para las cuentas de Ordenadores para sistemas Windows (los de Linux serían Hosts).
-
ou=Groups: Contenedor para alamacenar Grupos de sistema para sistemas Unix y Windows
FUNCIONES DE LDAP Estas son algunas de las funciones que podemos aplicar con LDAP: -
Empleo como sustituto para el servicio NIS.
-
Autenticación de usuarios de aplicaciones web.
-
Autenticación de usuarios de sistemas operativos.
-
Autenticación de usuarios con NFS en redes Unix.
-
Autenticación de usuarios con Samba en redes heterogéneas.
-
Encaminamiento de correo (postfix, sendmail).
-
Libretas de direcciones para clientes de correo como Mozilla, Evolution y Outlook.
-
Administración de descripciones de zona para un servidor de nombres BIND9.
INTEGRACIÓN DE LDAP CON OTROS SERVICIOS Ldap puede utilizarse como repositorio de datos para multitud de aplicaciones que disponen de soporte. A continuación se listan algunas de ellas:
Radius. Samba. DNS. Mail Transfer Agents (servidores de correo). Libretas de direcciones (por ejemplo en Mozilla Thunderbird). Servidores FTP. Servidores de certificados de seguridad.
VENTAJAS
Al estar basado en un sistema de directorios, es muy rápido en la lectura de registros. Permite replicar el servidor de forma muy sencilla y económica. Muchas aplicaciones de todo tipo tienen interfaces de conexión a Ldap y se pueden integrar fácilmente. Dispone de un modelo de nombres globales que asegura que todas las entradas son únicas. Usa un sistema jerárquico de almacenamiento de informac ión. Permite múltiples directorios independientes. Funciona sobre TCP/IP y SSL. La mayoría de aplicaciones disponen de soporte para Ldap. La mayoría de servidores Ldap son fáciles de instalar, mantener y optimizar.
DESVENTAJAS
Protocolo de manejo de datos poco intuitivo, pero existen múltiples herramientas que facilitan su uso.
INSTALACIÓN DE LDAP EN CENTOS 6.7 1. Abrimos una terminal y entramos como superusuario
2. Luego instalamos los paquetes de OpenLdap con el comando “yum –y install openldap openldap-clientes openldap-servers”
3. Luego crearemos una contraseña encriptada para nuestro admin de todo el directorio de LDAP, para esto usamos el comando “slappasswd”, la clave que nos m uestre la copiamos y la guardamos.
4. Nos dirigimos a la siguiente ruta “cd /etc/openldap/slapd.d/cn=config”
5. En esta ruta con el comando “gedit” modificaremos el siguiente archivo
o
Eliminamos las primeras líneas que aparecen comentadas con “ #” y agregar las líneas que estar con rojo, cn=admin va hacer el administrador de todo el árbol y olcRootPW es la clave del admin, la que se creó anteriormente:
6. En la misma ruta con el comando “gedit” modificaremos el siguiente archivo
o
o
Así mismo como en el anterior archivo eliminamos las primeras líneas que aparecen comentadas con “#”. Luego creamos la ruta base de nuestro administrador en el árbol “cn=admin,dc=abc,dc=local” significa que el admin pertenece a “abc.local”
7. En la misma ruta con el comando “gedit” modificaremos el siguiente archivo
o
Eliminamos las primeras líneas que estén comentadas con “ #” y agregamos las siguientes líneas que están con rojo.
8. Nos dirigimos a la ruta “cd /etc/openldap” y modificamos el archivo con gedit “ldap.conf”
9. Agregamos lo que esta con marco rojo, para habilitar los log y si se genera un problema con ldap podemos saber que lo ocasiona.
10. Nos dirigimos a “cd /etc” y modificamos el archivo “rsyslog.conf” nos ubicamos al final del documento y agregamos la línea que esta con marco rojo.
11. Reiniciamos los servicios con “service rsyslog restart” y “service sldap restart” y deberá salir “OK, OK” si sale “FALLO” reinicien el servicio de nuevo
12. Creamos nuestro archivo con extensión “.ldif” este archivo será nuestro árbol. En la ruta “cd /etc/openldap”
13. Primeramente debemos crear nuestra raíz
14. Luego creamos nuestros grupos de la siguiente forma:
15. Luego los usuarios
a.
Se puede crear un archivo de grupos y otro archivo de usuarios para una mayor administración. 16. Creamos 2 subgrupos que pueden servir para permitir o denegar el acceso
17. Una vez que tengamos nuestro archivo listo tenemos que agregar esa información a la base de datos de LDAP
18. Una vez que se agreguen los datos a la base de datos de LDAP vamos a configurar la autentificación del sistema con el siguiente comando.
19. Marcamos las siguientes casillas
20. Luego bajamos a siguiente y en la nueva ventana desmarcamos TLS y agregamos ldap://ip-servidor, DN de base es nuestra raíz que creamos anteriormente y aceptamos.
21. Comprobamos que los usuarios LDAP están habilitados de la siguiente forma:
22. Comprobación desde Windows Para esta comprobación de uso JXplorer o
o
En el menú de herramienta hacemos click “connect to a DSA”
o
Luego aparece una ventana y la llenamos con los datos correspondientes
o
Luego mostrara todo el árbol LDAP que creamos.
Bibliografía Aberasturi, A. L. (10 de 06 de 2016). profesordeinformatica.com. Obtenido de http://www.profesordeinformatica.com/descargas/capitulo6-ldap.pdf CNTI. (s.f.). Manual LDAP V 0.1. En Ministerio del poder popular para las Telecomunicaciones y la Informática. Gómez, A. R. (s.f.). Aulas en red, aplicaciones y servicios. Obtenido de INTEF: http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m6/administracin_de _openldap.html Lara, J. (s.f.). Phenobarbital . Obtenido de http://blog.phenobarbital.info/openldap/ RedHat. (s.f.). Massachusetts Institute of Technology . Obtenido de http://web.mit.edu/rheldoc/4/RH-DOCS/rhel-rg-es-4/index.html