manual ldap

81
Manual de integración de servicios LDAP bajo Canaima GNU/Linux Caracas, Octubre de 2009

Upload: raul-martinez-farfan

Post on 25-Jul-2015

136 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Manual LDAP

Manual de integración de servicios LDAP bajo

Canaima GNU/Linux

Caracas, Octubre de 2009

Page 2: Manual LDAP

Créditos y licencia

© 2008-2009 Centro Nacional de Tecnologías de

Información

© 2008-2009 ONUVA Integración de Sistemas

Este documento se distribuye al público como documentación y

conocimiento libre bajo los términos de la Licencia Pública General

GNU, que puede obtener en la dirección Web:

http://www.gnu.org/copyleft/gpl.html

Convenciones tipográficas

Texto enfatizado, anglicismos, texto resaltado, comandos,

salidas, paquetes o contenido de archivos.

Indica información muy importante con respecto al contenido

Indica comandos, salidas en pantalla o contenido de archivos

Indica los pasos de un procedimiento

Página 2 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 3: Manual LDAP

ContenidoCréditos y licencia.......................................................................................................................2Convenciones tipográficas..........................................................................................................2Unidad I: Protocolo de acceso ligero a directorios.....................................................................7

Tema 1: Servicio de directorio................................................................................................7Protocolos utilizados en un servicio directorio ..................................................................8Información contenida en un servicio de directorio .........................................................10

Tema 2: Las bases de LDAP ................................................................................................11Protocolo de aplicación TCP/IP: LDAP ............................................................................11Modelos LDAP..................................................................................................................11Modelo de Información.....................................................................................................12Modelo de nomenclatura..................................................................................................12Modelo funcional..............................................................................................................13Modelo de seguridad........................................................................................................14Representación de la información en un directorio basado en LDAP ............................15

Atributos LDAP ............................................................................................................15Objetos LDAP...............................................................................................................15

Acceso y referenciación de la información contenida en el directorio ............................17Arquitectura de Cliente/Servidor ..........................................................................................17Esquemas de un directorio: metadatos ...............................................................................17

Unidad II: LDAP versión 3 ........................................................................................................21La versión 3 de LDAP ..........................................................................................................21Tema 1: algunas diferencias con su predecesor – LDAPv2 ................................................24

Diferencias entre LDAP v2 y v3 .......................................................................................24Tema 2: Formato de intercambio de información LDAP – LDIF En este apartado se mostrará como agregar un usuario al LDAP utilizando para ello los LDIF. A continuación se mostrará cual es la estructura de los LDIF. ..................................25Agregar los contenidos de los ldif.........................................................................................25

Formato para nuevas entradas .......................................................................................26Agregar usuarios .........................................................................................................26

Formato para modificaciones ..........................................................................................27Agregar atributos..........................................................................................................27Modificar un atributo.....................................................................................................28

Formato para eliminaciones ...........................................................................................28Eliminar un usuario...........................................................................................................28

Para eliminar un atributo Se debe crear un ldif como el que se muestra a continuación, el nombre del archivo ldif es del.ldif ................................................................................................................29

Autenticación en LDAP ........................................................................................................29Autenticación de clientes en LDAP .................................................................................29Autenticación anónima.....................................................................................................31Autenticación simple (segura y no segura) .....................................................................31

Página 3 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 4: Manual LDAP

Tema 3: Distribución de directorios .....................................................................................32Distribución de directorios ...............................................................................................32

Unidad III: Servicio de directorio OpenLDAP............................................................................34Conexiones Seguras ...........................................................................................................34El servidor slapd ..................................................................................................................36

slapd ................................................................................................................................36Tema 1: Implementación de un servicio de directorio OpenLDAP en Canaima GNU/Linux ..............................................................................................................................................38

Instalación del servidor.....................................................................................................38Elementos de configuración.............................................................................................38

Tema 2: Control de acceso al directorio a través de listas de control de acceso (ACLs) ...40Control de acceso al directorio a través de listas de control de acceso .........................40Estructura general de una ACL .......................................................................................40Usos comunes de las ACLs ............................................................................................41

Tema 3: Poblando el directorio OpenLDAP .........................................................................43Definición de la estructura inicial del directorio................................................................43Incorporación de entradas iniciales..................................................................................43Modificando la información existente...............................................................................45Trabajando con las contraseñas......................................................................................47Verificando el contenido del directorio .............................................................................48

Unidad IV: Integración con los servicios de directorio LDAP ...................................................49Tema 1: Integración con el sistema operativo .....................................................................49

Mapeo de cuentas de usuario y grupos locales...............................................................49Resolución de nombre – NSS..........................................................................................49

Configuración de bases de datos de búsqueda..........................................................50Configuración del modulo LDAP..................................................................................50

Autenticación de usuarios – Módulos de autenticación apilables – PAM........................51Configuración de reglas de autenticación....................................................................51Configuración de modulo LDAP...................................................................................52

Tema 2: Integración con controladores de dominio Samba ................................................53Esquemas adicionales......................................................................................................53Mapeo de cuentas de usuario y grupos ..........................................................................54

Tema 3: Integración con servicios de red ............................................................................56Proxy LDAP .....................................................................................................................56

Unidad V: Administración avanzada de directorios OpenLDAP ..............................................57Tema 1: Conexiones seguras al directorio - SSL/TLS .........................................................57Tema 2: Existencia de más de una copia ............................................................................59

Existencia de más de una copia (slurpd).........................................................................59Decidiendo el mecanismo de replicación.........................................................................60Existencia de más de una copia (syncrepl)......................................................................61

Tema 3: Particionando el directorio......................................................................................63Definición de la referencia Inferior....................................................................................63

Página 4 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 5: Manual LDAP

Definición de la referencia superior..................................................................................65Anexos..................................................................................................................................66

Ejercicio Propuesto N#1...................................................................................................66

Página 5 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 6: Manual LDAP

Ficha Descriptiva

Curso LDAP con integraciones en Canaima GNU/Linux.

Modalidad A distancia.

Duración 8 semanas

Dirigido a Público y comunidad en general, así como personal docente,

técnico y estudiantil de Colegios Universitarios y Politécnicos.

Requisitos

previosNociones básicas en el manejo de:

• Permisos y ACL POSIX.

• Redes en GNU/Linux.

• Gestión de usuarios y permisos bajo Linux.

• Manejo de servicios SysV.

• Gestión de procesos POSIX.

• Manejo de Linux bajo CLI.

• Herramientas de paginación y visualización de texto.

• Manejo del sistema de paquetes APT.

Objetivo del

cursoEmplear las estrategias necesarias para la puesta en operación

del servicio LDAP en el proceso de migración a software libre.

Página 6 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 7: Manual LDAP

Unidad I: Protocolo de acceso ligero a directorios

Tema 1: Servicio de directorio

Un servicio de directorio es una aplicación o un conjunto de aplicaciones que

almacena y organiza la información de los usuarios de una red de computadores,

permitiendo a los administradores gestionar el acceso de usuarios a los recursos sobre

dicha red. Además, los servicios de directorio actúan como una capa de abstracción entre

los usuarios y los recursos compartidos.

Los directorios tienden a contener información descriptiva basada en atributos y

tienen capacidades de filtrado muy sofisticada. Los directorios generalmente no soportan

transacciones complicadas ni esquemas de vuelta atrás (roll back) como los que se

encuentran en los sistemas de bases de datos diseñados para manejar grandes y

complejos volúmenes de actualizaciones. Las actualizaciones de los directorios son

normalmente cambios simples.

Un servicio de directorio no debería confundirse con el repositorio de directorio,

que es la base de datos, esta es la que contiene la información sobre los objetos

nombrados, gestionado por el servicio de directorio. El servicio de directorio proporciona

la interfaz de acceso a los datos que se contienen en unos o más espacios de nombre de

directorio. La interfaz del servicio de directorio es la encargada de gestionar la

autenticación de los accesos al servicio de forma segura, actuando como autoridad

central para el acceso a los recursos de sistema que manejan los datos del directorio.

Como base de datos, un servicio de directorio está altamente optimizado para

lecturas y proporciona alternativas avanzadas de búsqueda en los diferentes atributos

que se puedan asociar a los objetos de un directorio. Los datos que se almacenan en el

directorio son definidos por un esquema extensible y modificable. Los servicios de

directorio utilizan un modelo distribuido para almacenar su información y esa información

Página 7 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 8: Manual LDAP

generalmente está replicada entre los servidores que forman el directorio.

Los directorios están afinados para dar una rápida respuesta a grandes volúmenes

de búsquedas. Estos tienen la capacidad de replicar la información para incrementar la

disponibilidad y la fiabilidad, al tiempo que reducen los tiempos de respuesta. Cuando la

información de un directorio se replica, se pueden producir inconsistencias temporales

entre las réplicas mientras esta se está sincronizando.

Hay muchas formas diferentes de proveer un servicio de directorio. Diferentes

métodos permiten almacenar distintos tipos de información en el directorio, tener

distintos requisitos sobre cómo la información ha de ser referenciada, consultada y

actualizada, cómo es protegida de los accesos no autorizados, etc. Algunos servicios de

directorio son locales, es decir, proveen el servicio a un contexto restringido (como por

ejemplo, el servicio finger en una única máquina). Otros servicios son globales y proveen

servicio a un contexto mucho más amplio (como por ejemplo, Internet). Los servicios

globales normalmente son distribuidos, esto significa que los datos están repartidos a lo

largo de distintos equipos, los cuales cooperan para dar el servicio de directorio.

Típicamente, un servicio global define un espacio de nombres uniforme que da la misma

visión de los datos, independientemente de donde se esté, en relación a los propios

datos. DNS1 es un ejemplo de un sistema de directorio globalmente distribuido.

Protocolos utilizados en un servicio directorio

X.500 es un conjunto de estándares de redes de computadores de la ITU (Unión

Internacional de Telecomunicaciones) sobre servicios de directorio, entendidos estos

como bases de datos de direcciones electrónicas (o de otros tipos). El estándar se

desarrolló conjuntamente con la ISO como parte del modelo de interconexión de sistemas

abiertos, para usarlo como soporte del correo electrónico X.400.

1 Servicio de nombres de dominio, por sus siglas en inglés

Página 8 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 9: Manual LDAP

Los protocolos definidos por X.500 incluyen:

• Protocolo de acceso al directorio (DAP)

• Protocolo de sistema de directorio

• Protocolo de ocultación de información de directorio

• Protocolo de gestión de enlaces operativos de directorio.

Dentro de la serie X.500, la especificación que ha resultado ser la más difundida no

trata de protocolos de directorio, sino de certificados de clave pública X.509. El protocolo

LDAP fue creado como una versión liviana de X.500 y terminó por reemplazarlo. Por esta

razón algunos de los conceptos y estándares que utiliza LDAP provienen de la serie de

protocolos X.500.

Técnicamente, LDAP es un protocolo de acceso a directorio para el servicio de

directorio X.500, del servicio de directorio de OSI. Inicialmente, los cliente LDAP accedían

a través de puertas de enlace al servicio de directorio X.500. Esta puerta de enlace

ejecutaba LDAP entre el cliente y la puerta de enlace, y el Protocolo X.500 de Acceso al

Directorio (DAP) entre la puerta de enlace y el servidor X.500. DAP es un protocolo

extremadamente pesado que opera sobre una pila protocolar OSI completa y requiere

una cantidad significativa de recursos computacionales. LDAP está diseñado para operar

sobre TCP/IP proporcionando una funcionalidad similar a la de DAP, pero con un costo

muchísimo menor.

Aunque LDAP se utiliza todavía para acceder al servicio de directorio X.500 a

través de puertas de enlace, hoy en día es más común implementar LDAP directamente

en los servidores X.500.

El demonio autónomo de LDAP, o SLAPD, puede ser visto como un servidor de

directorio X.500 ligero. Es decir, no implementa el DAP X.500, sino un subconjunto de

modelos de X.500.

Página 9 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 10: Manual LDAP

Es posible replicar datos desde un servidor de directorio LDAP hacia un servidor

DAP X.500. Esta operación requiere una puerta de enlace LDAP/DAP. OpenLDAP no

suministra dicha puerta de enlace, pero el demonio de replicación que posee puede ser

usado para la replicación, como si de una puerta de enlace se tratase.

Información contenida en un servicio de directorio

En principio en un servicio de directorio se puede almacenar cualquier tipo de

información. Como por ejemplo, nombre, dirección de habitación, nombre de la mascota,

música preferida, bebida favorita, etc. Sin embargo, la información que se almacena es

aquella que permita organizar de manera jerárquica todos los usuarios de la red.

Estructurar la información de los usuarios de la red es de utilidad a la hora de restringir el

acceso a los servicios y recursos de la red; Permitiendo gestionar con mayor facilidad la

red.

Página 10 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 11: Manual LDAP

Tema 2: Las bases de LDAP

Protocolo de aplicación TCP/IP: LDAP

Las iniciales LDAP en inglés significan Lightweight Directory Access Protocol

traducido al español su significado es: Protocolo ligero para acceder al servicio de

directorio, esta implementación se basa en el estándar X.500, el cual es un conjunto de

estándares de redes de computadoras de la ITU-T sobre el servicio de directorios. LDAP se

ejecuta sobre TCP/IP o sobre otros servicios de transferencia orientado a conexión; que

permite el acceso a la data de un directorio ordenado y distribuido para buscar

información.

Habitualmente se almacena información de los usuarios que conforman una red de

computadores, como por ejemplo el nombre de usuario, contraseña, directorio hogar, etc.

Es posible almacenar otro tipo de información tal como, bebida preferida, número de

teléfono celular, fecha de cumpleaños, etc.

En conclusión, LDAP es un protocolo de acceso unificado a un conjunto de

información sobre los usuarios de una red de computadores.

Modelos LDAP

Como todos los protocolos basados en estándares abiertos, LDAP apunta a ser un

protocolo 100% interoperable entre implementaciones de distintos proveedores. Por esta

razón, LDAP define cuatro (4) modelos de información que describen la operación del

protocolo: información, nomenclatura, funcional y de seguridad. En este capítulo

describiremos estos modelos y su relevancia para la correcta implementación de un

servicio de directorios LDAP.

Página 11 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 12: Manual LDAP

Modelo de Información

El modelo de información de LDAP describe las unidades de información que se

almacenan en el directorio. Sólo hay dos tipos de unidades de información que se

almacenan en un directorio LDAP:

1.Registros2

2.Tipos de datos de registros

Un registro es muy similar a la estructura de datos que lleva el mismo nombre. En

LDAP, los registros son estructuras de correspondencia clave-valor que se someten a las

reglas definidas por los tipos de datos de los registros. Por ejemplo, en un registro

pueden haber entradas repetibles, entradas obligatorias, entradas que deben conformar

con cierta sintaxis, entre otras.

La definición de forma de los registros y sus tipos de datos se realiza en

estructuras denominadas esquemas. Estos esquemas, así como los registros, se

representan en un formato estándar de texto plano denominado LDIF3. Este estándar, así

como la adecuada representación de los modelos descritos en este capítulo, facilita la

interoperatibilidad entre directorios LDAP.

Modelo de nomenclatura

El modelo de nomenclatura especifica como se organiza la información dentro del

directorio, y como un cliente puede hacer referencia a esta información, por ejemplo,

para recuperar un registro.

La jerarquía de nomenclatura del protocolo LDAP es similar a la de los servicios

2 Entries, en inglés3 Formato de intercambio de datos LDAP, por sus siglas en inglés

Página 12 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 13: Manual LDAP

DNS, por lo que han sido considerados como protocolos y tecnologías similares que

pueden ser integradas en ciertos casos para favorecer la integración de servicios y su

rendimiento.

Bajo este modelo de nomenclatura buscamos poder hacer referencia

unívocamente a un elemento del directorio, por lo que debemos asegurarnos de que el

modelo de nomenclatura a escoger no admita valores repetidos. Dentro del modelo de

nomenclatura LDAP es posible identificar los siguientes elementos:

1.Dominio (domain): es el nombre del dominio LDAP que se está sirviendo, por ejemplo,

cnti.gob.ve

2.Componente de dominio (domain component, o DC): son las porciones del dominio que

corresponden a los niveles DNS, por ejemplo: DC=cnti,DC=gob,DC=ve

Así es que, por ejemplo, si utilizamos el atributo uid para identificar unívocamente

elementos en un directorio LDAP, el modelo de nomenclatura admitiría una referencia del

tipo:

uid=jose,dc=cnti,dc=gob,dc=ve

Modelo funcional

El modelo funcional de LDAP determina las operaciones que un cliente puede

realizar sobre el directorio. Entendiendo que se trata de un servicio de directorio y luego

de haber repasado en este manual las expectativas funcionales de un directorio LDAP,

podemos confirmar que las funciones se agrupan en cuatro (4) grandes grupos:

1.Operaciones de búsqueda (query)

2.Operaciones de actualización (update)

3.Operaciones de autenticación (authentication)

Página 13 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 14: Manual LDAP

4.Operaciones de control (control)

La vasta mayoría de los directorios formales LDAP que son compatibles con los

estándares cubren diversas expectativas en cada uno de estos grupos, como por ejemplo

hacer búsquedas por aproximación o comparación ASCII, añadir, eliminar, renombrar y

modificar entradas y autenticar usuarios.

Modelo de seguridad

Finalmente, el modelo de seguridad de LDAP define de qué formas se puede

controlar el acceso no autorizado a los contenidos del directorio. Así mismo, define los

mecanismos de autenticación, por ejemplo:

1.Contraseñas en texto plano

2.Contraseñas cifradas

3.SASL4

Así mismo, en esta capa se ofrece cifrado de la conexión utilizando TLS5 y SSL6, dos

protocolos de amplio uso para este propósito.

En la mayoría de las implementaciones de LDAP, se puede proteger el acceso a los

contenidos del directorio utilizando ACLs7, en las que se define qué usuarios o grupos

pueden realizar qué operaciones sobre qué porciones del directorio LDAP. Sin embargo, el

modelo de seguridad no define el detalle del control de acceso y es dependiente de la

aplicación.

4 Capa de seguridad y autenticación simple, por sus siglas en inglés5 Seguridad en la capa de transporte, por sus siglas en inglés.6 Protocolo de capa de conexión segura, por sus siglas en inglés.7 Listas de control de acceso, por sus siglas en inglés.

Página 14 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 15: Manual LDAP

Representación de la información en un directorio basado en LDAP

Atributos LDAP

Al utilizar LDAP 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 TLS y SSL, los datos

confidenciales se pueden proteger de los curiosos.

LDAP también soporta un número de bases de datos (backends) en las que se

almacena la información. Esto permite que los administradores tengan la flexibilidad para

desplegar la base de datos más indicada, para el tipo de información. LDAP tiene APIs8

bien definidas, existe un número de aplicaciones acreditadas para LDAP, estas están

aumentando en cantidad y calidad, las hay en distintos lenguajes de programación, tales

como C, C++, Java, Perl, PHP, entre otros.

Objetos LDAP

Como se explicó anteriormente, los objetos, entradas o registros de un directorio

LDAP se representan en el formato LDIF. Este es un formato basado en texto en el que se

visualiza la estructura de datos (clave-valor) y los datos en sí de la estructura.

Usualmente un registro de un directorio LDAP pertenece a una o más clases,

denominadas objectClasses. Estas clases definen qué atributos puede o no puede tener

el registro, como se verá más adelante en el capítulo de Metadatos.

A continuación revisaremos un ejemplo del objeto LDAP

uid=jose,dc=cnti,dc=gob,dc=ve en formato LDIF:

8 Interfaces de programación de aplicaciones, por sus siglas en inglés

Página 15 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 16: Manual LDAP

dn: uid=jose,dc=cnti,dc=gob,dc=ve

objectClass: posixAccount

uid: jose

loginShell: /bin/bash

uidNumber: 10009

userPassword::

e01ENX00ZDE4NjMyMWMxYTdmMGYzNTRiMjk3ZTg5MTRhYjI

0MAo=

gidNumber: 10000

homeDirectory: /home/jose

En este objeto apreciamos distintos componentes que es importante tener en

cuenta:

1.Nombre distintivo (distinguished name, DN): es la ubicación unívoca del registro de

acuerdo al modelo de nomenclatura

2.ID de usuario (user ID, UID): identificador POSIX del usuario

3.Consola de inicio de sesión (login shell): consola a utilizar para el inicio de sesión del

usuario

4.ID numérico del usuario (user ID number, uidNumber): identificador numérico del

usuario

5.Contraseña del usuario (userPassword): tenga en cuenta aquí que hay doble símbolo

de dos puntos (::) entre la clave (userPassword) y el valor, lo que significa que el valor

está codificado bajo el sistema de base 64, lo cual se utiliza frecuentemente para reducir

problemas de codificación de caracteres, pero no es un algoritmo de cifrado

6.ID numérico del grupo (group ID number, gidNumber): identificador numérico del

grupo principal del usuario

7.Carpeta personal del usuario (home directory, homeDirectory): carpeta personal del

perfil del usuario

Página 16 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 17: Manual LDAP

Acceso y referenciación de la información contenida en el directorio

LDAP define operaciones para interrogar y actualizar el directorio. Provee

operaciones para añadir, modificar y eliminar entradas del mismo. La mayor parte del

tiempo, LDAP se utiliza para buscar información almacenada en el directorio. Las

operaciones de búsqueda de LDAP permiten encontrar entradas que concuerdan con

algún criterio especificado dado por un filtro de búsqueda. La información puede ser

solicitada desde cada entrada que concuerda con dicho criterio.

Una entrada es referenciada por su nombre distintivo, que es construido por el

nombre de la propia entrada llamado Nombre Relativo Distinguido (RDN) y la

concatenación de los nombres de las entradas que le anteceden. Por ejemplo, la entrada

para luis en el ejemplo del nombramiento de Internet anterior tiene el siguiente RDN:

uid=luis y su DN sería: uid=luis,ou=people,dc=ucla,dc=edu,dc=ve. De está manera se

puede acceder a toda la información que se almacenada en el directorio LDAP.

Arquitectura de Cliente/Servidor

El servicio de directorio de LDAP está basado en el modelo cliente/servidor. Uno o

más servidores LDAP contienen los datos que conforman el DIT9. El cliente se conecta a

los servidores y les formula preguntas. Los servidores responden con una respuesta o con

un puntero donde el cliente puede obtener información adicional (normalmente otro

servidor LDAP). No importa a que servidor LDAP se conecte un cliente, este siempre

obtendrá la misma visión del directorio; un nombre presentado por un servidor LDAP

referencia la misma entrada que cualquier otro servidor LDAP. Esta es una característica

muy importante del servicio global de directorio, como LDAP.

Esquemas de un directorio: metadatos

Hemos venido estudiando cómo un directorio LDAP contiene información y la

9 Árbol de información del directorio, por sus siglas en inglés.

Página 17 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 18: Manual LDAP

estructura y consideraciones de ésta información. Sin embargo, en el capítulo del modelo

de información de LDAP conocimos que un directorio LDAP no sólo administra datos sino

también información sobre el tipo de datos, esquemas y reglas para estos datos. Esto lo

denominamos metadatos y en este tema trataremos sobre ellos.

Cuando instalamos un directorio LDAP de cualquier proveedor, por ejemplo

OpenLDAP, podemos empezar a agregar datos en él. Por ejemplo, podemos agregar el

registro uid=jose,dc=cnti,dc=gob,dc=ve que vimos en capítulos anteriores.

Esto es posible porque los distribuidores de OpenLDAP se han tomado el trabajo de

incluir algunos metadatos, específicamente esquemas, que definen algunos atributos y

reglas básicas y normalmente aceptadas, sobre todo en entornos POSIX.

Por ejemplo, en Canaima GNU/Linux un directorio OpenLDAP incluye los siguientes

esquemas:

1./etc/ldap/schema/collective.schema

2./etc/ldap/schema/corba.schema

3./etc/ldap/schema/core.ldif

4./etc/ldap/schema/core.schema

5./etc/ldap/schema/cosine.ldif

6./etc/ldap/schema/cosine.schema

7./etc/ldap/schema/duaconf.schema

8./etc/ldap/schema/dyngroup.schema

9./etc/ldap/schema/inetorgperson.ldif

10./etc/ldap/schema/inetorgperson.schema

11./etc/ldap/schema/java.schema

12./etc/ldap/schema/misc.schema

13./etc/ldap/schema/nadf.schema

14./etc/ldap/schema/nis.ldif

15./etc/ldap/schema/nis.schema

16./etc/ldap/schema/openldap.ldif

Página 18 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 19: Manual LDAP

17./etc/ldap/schema/openldap.schema

18./etc/ldap/schema/ppolicy.schema

Estudiemos ahora el contenido de un esquema común, por ejemplo nis.schema.

Dentro de este esquema tenemos la definición de un objectClass, posixAccount:

objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount'

DESC 'Abstraction of an account with POSIX attributes'

SUP top AUXILIARY

MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )

MAY ( userPassword $ loginShell $ gecos $ description ) )

En esta definición encontramos los siguientes elementos de interés:

1.1.3.6.1.1.1.2.0 es el identificador de objeto, este es un número asignado por la

Autoridad de Asignación de Números de Internet y describe al objeto unívocamente a

nivel universal

2.posixAccount es el nombre de la clase de objetos

3.DESC indica una descripción en modo texto de la clase de objetos y el cliente LDAP

puede visualizar esta descripción

4.SUP top AUXILIARY indica que esta clase de objetos tiene una clase de objetos maestra

llamada top

5.Los atributos cn, uid, uidNumber, gidNumber y homeDirectory definidos en la línea

MUST son atributos OBLIGATORIOS de esta clase de objetos. Si no están presentes en el

registro, el directorio LDAP rechazará las operaciones sobre estos registros

6.Los atributos userPassword, loginShell, gecos y description definidos en la línea MAY

son atributos OPCIONALES de esta clase de objetos. Lo que esto indica es que un registro

que sólo esté en la clase de objetos posixAccount sólo puede contener atributos listados

en esta definición

Ahora bien, ¿cuáles son las reglas para atributos como uid y homeDirectory que se

Página 19 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 20: Manual LDAP

definen aquí? Dentro del mismo schema, nis.schema, podemos conseguir esta

información:

attributetype ( 1.3.6.1.1.1.1.3 NAME 'homeDirectory'

DESC 'The absolute path to the home directory'

EQUALITY caseExactIA5Match

SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

Aquí vemos el OID para el atributo homeDirectory, su descripción y dos reglas de

interés:

1.EQUALITY indica que una operación de búsqueda sobre este atributo utilizará la regla

caseExactIA5Match10

2.SYNTAX indica que sólo se admite un valor (SINGLE-VALUE) de acuerdo a la sintáxis

1.3.6.1.4... que se denomina IA5 String11

Es posible crear nuevos atributos y nuevas clases de objetos con tan sólo solicitar a

la IANA un prefijo de identificadores de objetos y definir las reglas de sintáxis y búsqueda.

10 http://rfc-ref.org/RFC-TEXTS/2307/kw-caseexactia5match.html11 http://www.alvestrand.no/objectid/1.3.6.1.4.1.1466.115.121.1.26.html

Página 20 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 21: Manual LDAP

Unidad II: LDAP versión 3

La versión 3 de LDAP

• Soporta LDAP sobre IPv4, IPv6 y Unix IPC

• Tiene soporte de autentificación fuerte gracias al uso de SASL. La implementación

SASL de SLAPD hace uso del software Cyrus SASL, el cual soporta un gran número

de mecanismos de autentificación, como: DIGEST-MD5, EXTERNAL, y GSSAPI.

• Provee protecciones de privacidad e integridad gracias al uso de TLS o SSL. La

implementación TLS de SLAPD hace uso del software OpenSSL

• Puede ser configurado para restringir el acceso a la capa de socket basándose en

la información topológica de la red. Esta característica hace uso de los TCP

wrappers (Herramienta simple que sirve para monitorear y controlar el tráfico que

llega por la red)

• Provee facilidades de control de acceso muy potentes, permitiéndole controlar el

acceso a la información de su(s) base(s) de datos. Puede controlar el acceso a las

entradas basándose en la información de autorización de LDAP, en la dirección IP,

en los nombres de dominio y otros criterios. SLAPD soporta tanto el control de

acceso a la información dinámico como estático.

• Soporta Unicode y etiquetas de lenguaje.

• Viene con una serie de backends para diferentes bases de datos. Estos incluyen

DBD, un backend de una base de datos transaccional de alto rendimiento; LDBM,

un backend ligero basado en DBM; SHELL, una interface para scripts de shell; y

PASSWD, un backend simple para el archivo passwd. El backend BDB hace uso de

Sleepcat Berkeley DB. LDBM utiliza cualquiera de las siguientes: Berkeley DB o

GDBM

• Se puede configurar para servir a múltiples bases de datos al mismo tiempo. Esto

significa que un único servidor SLAPD puede responder a peticiones de diferentes

porciones lógicas del árbol de LDAP, haciendo uso del mismo o distintos backends

de bases de datos.

Página 21 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 22: Manual LDAP

• Si necesita más personalización, SLAPD le permite escribir sus propios módulos

fácilmente. SLAPD consiste en dos partes diferentes: un frontend que maneja las

comunicaciones protocolares con los clientes LDAP; y módulos que manejan tareas

específicas como las operaciones con las bases de datos. Debido a que estas dos

piezas se comunican a través de una API bien definida, puede escribir sus propios

módulos, que extenderán SLAPD de múltiples maneras. También existen

numerosos módulos programables de bases de datos. Estos permiten a SLADP

acceder a fuentes de datos externos haciendo uso de lenguajes de programación

populares (Perl, shell, SQL y TCL)

• Hace uso de hilos para obtener alto rendimiento. Un proceso único multihilo

maneja todas las peticiones entrantes haciendo uso de una piscina de hilos. Esto

reduce la carga del sistema a la vez que provee alto rendimiento.

• Se puede configurar para que mantenga copias de la información del directorio.

Este esquema de replicación, un único maestro/múltiples esclavos, es vital en

ambientes con un volumen alto de peticiones, donde un único servidor SLAPD no

podría proveer la disponibilidad ni la confiabilidad necesarias. SLAPD incluye

también un soporte experimental para la replicación de múltiples maestros. SLAPD

soporta dos métodos de replicación: Sync LDAP y SLURP (servidor de replicación

LDAP).

• Puede ser configurado como un servicio proxy de caché LDAP.

• Es altamente configurable a través de un único archivo de configuración, que

permite modificar todo aquello que se necesite cambiar. Las opciones por omisión

son razonables, lo que facilita mucho el trabajo. SASL

• “Simple Authentication and Security Layer” (capa de seguridad y autenticación

simple). Es un framework para manejar la autenticación y autorización en

protocolos de Internet. Este separa los mecanismos de autenticación de los

protocolos de la aplicación.

• Como SASL sólo se maneja la autenticación se requieren otros mecanismos como

por ejemplo TLS para cifrar el contenido que se transfiere.

• Los protocolos definen su representación de intercambios SASL con un perfil. Un

Página 22 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 23: Manual LDAP

protocolo tiene un nombre de servicio como "LDAP" en un registro compartido con

GSSAPI (Generic Security Services Application Programming Interface) y

KERBEROS.

• Entre los protocolos que ahora mismo usan SASL se incluyen IMAP, LDAP, POP3,

SMTP y XMPP.

Página 23 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 24: Manual LDAP

Tema 1: algunas diferencias con su predecesor – LDAPv2

Diferencias entre LDAP v2 y v3

LDAPv3 fue desarrollado en los años 90 para reemplazar a LDAPv2. LDAPv3

incorpora las siguientes características a LDAP:

• Autentificación fuerte haciendo uso de SASL (Simple Authentication and Security

Layer)

• Protección de integridad y confidencialidad haciendo uso de TLS (SSL), Transport

Layer Security (Secure Sockets Layer)

• Internacionalización gracias al uso de Unicode

• Remisiones y continuaciones

• Descubrimiento de esquemas

• Extensibilidad (controles, operaciones extendidas y más)

Como LDAPv2 difiere significativamente de LDAPv3, la interacción entre ambas

versiones puede ser un poco problemática. Es recomendable no utilizar la versión de

LDAPv2, por lo que en la implementación de OpenLDAP viene deshabilitado por omisión.

Página 24 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 25: Manual LDAP

Tema 2: Formato de intercambio de información LDAP – LDIF

En este apartado se mostrará como agregar un usuario al LDAP utilizando para ello

los LDIF. A continuación se mostrará cual es la estructura de los LDIF.

• ldif para la creación de una unidad organizacional “people”. El nombre del archivo

es people.ldif

dn: ou=people,dc=ucla,dc=edu,dc=ve

ou: people

objectclass: organizationalUnit

Creación de los archivos ldif

• ldif para la creación de una unidad organizacional “group”.

El nombre del archivo es group.ldif

dn: ou=group,dc=ucla,dc=edu,dc=ve

ou: group

objectclass: organizationalUnit

• ldif para la creación de un grupo “users”. El nombre del archivo es users.ldif

dn: cn=users,ou=group,dc=ucla,dc=edu,dc=ve

objectclass: posixGroup

objectclass: top

cn: users

userPassword: {crypt}*

gidNumber: 100

Agregar los contenidos de los ldif

Para agregar los contenidos de los ldif al LDAP se ejecutan los siguientes

Página 25 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 26: Manual LDAP

comandos:

#ldapadd -x -W -D "cn=admin,dc=ucla,dc=edu,dc=ve" -f people.ldif

#ldapadd -x -W -D "cn=admin,dc=ucla,dc=edu,dc=ve" -f group.ldif

#ldapadd -x -W -D "cn=admin,dc=ucla,dc=edu,dc=ve" -f users.ldif

Al ejecutar estos comandos te pedirá el password del administrador LDAP.

Para revisar el resultado de la inserción ejecutamos el siguiente comando

#LDAPsearch -x -b "dc=ucla,dc=edu,dc=ve"

Se puede confirmar en la salida del comando anterior que la inserción de los

anteriores ldif están presentes en la estructura del árbol del LDAP.

Formato para nuevas entradas

Agregar usuarios

Se debe crear un ldif como se muestra a continuación

• Nombre del archivo ldif marquezl.ldif

dn: uid=marquezl,ou=people,dc=ucla,dc=edu,dc=ve

uid: marquezl

cn: Luis Márquez

objectClass: top

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: shadowAccount

userPassword: {crypt}$1$HnC/X/r4$VknfcQlq24qGgdnDVhDIp1

shadowLastChange: 14001

shadowMax: 99999

Página 26 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 27: Manual LDAP

shadowWarning: 7

loginShell: /bin/bash

uidNumber: 1001

gidNumber: 100

homeDirectory: /home/marquezl

gecos: Luis Márquez

Para agregar el nuevo usuario al nuevo árbol de LDAP se debe ejecutar el

siguiente comando:

#LDAPadd -x -W -D "cn=admin,dc=ucla,dc=edu,dc=ve" -f marquezl.ldif

Para revisar el resultado de la inserción ejecutamos el siguiente comando

#LDAPsearch -x -b "dc=ucla,dc=edu,dc=ve"

Formato para modificaciones

Agregar atributos

Para agregar un atributo se debe crear un ldif como se muestra a continuación. El

nombre del ldif es add.ldif

dn: uid=marquezl,ou=people,dc=ucla,dc=edu,dc=ve

changetype: modify

add: description

description: Usuario de prueba

-

add: objectclass

objectclass: sambaAccount

-

add: telephoneNumber

Página 27 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 28: Manual LDAP

telephoneNumber: 04127777777

Se ejecuta la siguiente sintaxis:

ldapmodify -x -D “cn=admin,dc=ucla,dc=edu,dc=ve” -W -f add.ldif

Modificar un atributo

• Para modificar un atributo se debe crear un ldif como se muestra a continuación.

El nombre ldif es modify.ldif

dn: uid=marquezl,ou=people,dc=ucla,dc=edu,dc=ve

changetype: modify

replace: telephonenumber

telephonenumber: 04164716421

Se ejecuta la siguiente sintaxis:

ldapmodify -x -D “cn=admin,dc=ucla,dc=edu,dc=ve” -W -f modify.ldif

Formato para eliminaciones

Eliminar un usuario

Para eliminar un usuario del árbol del directorio se debe crear un archivo del tipo

ldif como se muestra a continuación:

dn: uid=marquezl,ou=people,dc=ucla,dc=edu,dc=ve

changetype: delete

• Ejecutamos el siguiente comando para eliminar un usuario del árbol LDAP

#LDAPmodify -x -D "cn=admin,dc=ucla,dc=edu,dc=ve" -W -f boorrar.ldif

Para revisar el resultado de la eliminación ejecutamos el siguiente comando

Página 28 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 29: Manual LDAP

• #LDAPsearch -x -b "dc=ucla,dc=edu,dc=ve"

Para eliminar un atributo

Se debe crear un ldif como el que se muestra a continuación, el nombre del

archivo ldif es del.ldif

dn: uid=marquezl,ou=people,dc=ucla,dc=edu,dc=ve

changetype: modify

delete: telephonenumber

Se ejecuta la siguiente sintaxis

ldapmodify -x -D “cn=admin,dc=ucla,dc=edu,dc=ve” -W -f del.ldif

Autenticación en LDAP

Autenticación de clientes en LDAP

Una vez configurado el servidor de LDAP para almacenar la información del

directorio, podemos configurar todos los equipos de nuestra red (servidores y clientes)

para realizar la autenticación en el servidor LDAP.

En principio, la información administrativa que tiene sentido centralizar en un

servicio LDAP son las cuentas de usuario (incluyendo contraseñas) y cuentas de grupo.

En conjunto, la información almacenada en ambos tipos de cuentas permite autentificar a

un usuario cuando éste desea iniciar una sesión interactiva en un sistema Linux y, en el

caso de que la autenticación sea positiva, crear el contexto de trabajo inicial (es decir, el

proceso shell inicial) para ese usuario. Manteniendo ambos tipos de cuentas en el

directorio permitiría una gestión completamente centralizada de los usuarios del dominio.

Página 29 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 30: Manual LDAP

Internamente, este proceso de autenticación y creación del contexto inicial que

Linux lleva a cabo cuando un usuario desea iniciar una sesión interactiva utiliza dos

bibliotecas distintas:

1. PAM (Pluggable Authentication Module) es una biblioteca de autenticación

genérica que cualquier aplicación puede utilizar para validar usuarios,

utilizando por debajo múltiples esquemas de autenticación alternativos

(archivos locales, Kerberos, LDAP, etc.). Esta biblioteca es utilizada por el

proceso de "login" para averiguar si las credenciales tecleadas por el usuario

(nombre y contraseña) son correctas.

2. NSS (Name Service Switch) presenta una interfaz genérica para averiguar

los parámetros de una cuenta (como su UID, GID, shell inicial, directorio de

conexión, etc.), y es utilizada por el proceso de "login" para crear el proceso de

atención inicial del usuario.

La ventaja fundamental de ambas bibliotecas consiste en que pueden

reconfigurarse dinámicamente mediante archivos, sin necesidad de recompilar las

aplicaciones que las utilizan. Por tanto, lo único que necesitamos es reconfigurar ambas

para que utilicen el servidor LDAP además de los archivos locales (/etc/passwd, entre

otros.) de cada equipo.

En Canaima GNU/Linux la instalación y configuración de los clientes la realizaremos

directamente en los archivos de configuración. Cuando el asistente de Debian pregunte la

configuración cancelar el mismo. Realizar los pasos siguientes: Instalar el paquete libnss-

LDAP, mediante la ejecución en la consola de #aptitude install libnss-LDAP, el “Name

Service Switch” permite a los sistemas operativos *nix, el reemplazo de los archivos de

configuración de los usuarios (por ejemplo: /etc/passwd, /etc/group), por bases de datos

de usuarios centralizadas, en este caso se instala la librería con soporte para LDAP, que

será el sistema que utilizaremos:

Página 30 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 31: Manual LDAP

1. Instalar el paquete libpam-LDAP, mediante la ejecución en la consola de

#aptitude install libpam-LDAP, este permitirá la autenticación de los usuarios

del sistema operativo en base de datos LDAP.

2. Instalar el paquete nscd, el cual permitirá mantener en el cache del equipo

las búsquedas de los registros que realiza el nss, con el fin de evitar tener que

realizar esas consultas a los servidores y ahorrar tiempo y tráfico en la red .

Autenticación anónima

La configuración predeterminada de OpenLDAP, Fedora Directory Server y muchos

otros productos de LDAP disponibles en el mercado permite que un cliente consulte de

forma anónima algunos atributos del directorio.

Usualmente se mostrarán atributos no críticos al estilo de una libreta de

direcciones. Para hacer la autenticación anónima con un cliente como ldapsearch basta

con indicar la opción -x y no definir ningún DN para autenticar el usuario.

ldapsearch -h servidor -p 389 -x uid=pgonzalez

Autenticación simple (segura y no segura)

“Simple Authentication and Security Layer” (capa de seguridad y autenticación

simple). Es un framwork para manejar la autenticación y autorización en protocolos de

internet. Este separa los mecanismos de autenticación de los protocolos de la aplicación.

Página 31 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 32: Manual LDAP

Tema 3: Distribución de directorios

Distribución de directorios

La información es ordenada en el modelo de LDAP en entradas. Una entrada es una

colección de atributos que tienen un único Nombre Global Distinguido (DN). El DN se

utiliza para referirse a una entrada sin ambigüedades. Cada atributo de una entrada

posee un tipo y uno o más valores. Los tipos son normalmente palabras nemotécnicas,

como “cn” para common name, o “mail” para una dirección de correo. La sintaxis de los

atributos depende del tipo de atributo. Por ejemplo, un atributo cn puede contener el

valor “Luis Márquez”. Un atributo email puede contener un valor

[email protected]”.

Estas entradas están organizadas en una estructura jerárquica en forma de árbol

invertido, de la misma manera como se estructura el sistema de archivos de UNIX.

Tradicionalmente esta estructura reflejaba los límites geográficos y/o organizacionales.

Las entradas que representan países aparecen en la parte superior del árbol. Debajo de

ellos, están las entradas que representan los estados y las organizaciones nacionales.

Bajo estas, pueden estar las entradas que representan las unidades organizacionales,

empleados, impresoras, documentos o todo aquello que pueda imaginarse. La siguiente

figura muestra un árbol de directorio LDAP haciendo uso del nombramiento tradicional.

Figura N° 1 Árbol de directorio LDAP (nombramiento tradicional)

El árbol también se puede organizar basándose en los nombres de dominio de

Página 32 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

ou=telecomunicaciones

c=rectorado

ou=informática

cn=Junior Escalona

Page 33: Manual LDAP

Internet. Este tipo de nombramiento se está volviendo muy popular y en los actuales

momentos es el más utilizado, ya que permite localizar un servicio de directorio haciendo

uso de los DNS. La siguiente figura muestra un árbol de directorio que hace uso de los

nombres basados en dominios.

Figura N° 2 Árbol de directorio LDAP (nombramiento de Internet)

Un ejemplo del DN sería:

dn: cn=Luis Márquez, ou=people, dc=ucla, dc=edu, dc=ve

Observe que el dn se construye de abajo hacia arriba. Al igual que se construyen

los nombres en DNS. Además, LDAP permite controlar qué atributos son requeridos y

permitidos en una entrada gracias al uso del atributo denominado objectClass. El valor

del atributo objectClass determina qué reglas de diseño (schema rules) ha de seguir la

entrada.

Página 33 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

dc=ve

dc=edu

dc=ucla

ou=people ou=users ou=adm

cn=luis cn=rootcn=pedro

Page 34: Manual LDAP

Unidad III: Servicio de directorio OpenLDAP

Conexiones Seguras

Lo primero que se debe evaluar es la seguridad de la red. Los clientes se conectan

al servidor LDAP a través de las interfaces de red, y también las respuestas del servidor

se transfieren a través de la red.

El protocolo LDAP por defecto recibe y envía los datos en texto plano, lo cual tiene

algunas ventajas entre las cuales tenemos :

• Facilidad de configurar y mantener.

• El servicio funciona más rápido, al no tener que transformar los datos cifrados, lo

cual siempre provee de una carga adicional de procesamiento.

Estas ventajas tienen un costo de seguridad, otros dispositivos en la red pueden

interceptar los datos y leer todo el contenido de los mismos, mientras más grande es una

red esto se convierte en una amenaza mayor.

Para evitar eso los servidores LDAP implementan SSL (Secure Sockets Layer) y TLS

(Transport Layer Security), ambos mecanismos son utilizados para cifrar los datos antes

de transmitirlos por la red. SSL y TLS son similares y son ampliamente utilizados, la

principal diferencia es que TLS es mas flexible que SSL.

OpenLDAP provee dos mecanismos para cifrar el tráfico en la red, el primero es

escuchar por un puerto específico (puerto 636 por defecto), lo que hace que las

comunicaciones en ese puerto sean cifradas, este mecanismo fue introducido en LDAP

v2, y se considera un método en desuso. El segundo mecanismo es parte de los

estándares de LDAP v3, el cual permite a los clientes conectarse a través de un puerto

(389 por defecto), para conexiones cifradas o en texto plano y será el cliente el que

seleccionará el tipo de conexión que desea. El uso de certificados permite no solo cifrar la

Página 34 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 35: Manual LDAP

información entre el servidor y los clientes, sino también garantizar que el servidor al

cual se conecta el cliente es autentico.

Actualmente existen autoridades para emitir certificados conocidos como CA

(Certification Authority), los cuales a través de un procedimiento de recolección de

información y un pago, emiten un certificado que tiene validez por un tiempo específico y

los servidores y los clientes reconocen el mismo.

Existe también la posibilidad de crear los certificados para uso de las

organizaciones o individuos de manera interna, para esto de debe generar un CA con la

cual se firmarán los certificados que se emitirán para los clientes y servidores. Estos

certificados no serán reconocidos como válidos fuera de la organización que los emite,

por lo cual solo se recomienda para uso interno.

Para crear una CA, con el fin de firmar nuestros propios certificados, se debe instalar el

paquete openssl, el cual en Debian GNU/Linux, instala un script que permite la creación

de un CA, el mismo queda instalado en la ruta /usr/lib/ssl/misc/CA.pl, debe ejecutarse de

la siguiente manera :

#/usr/lib/ssl/misc/CA.pl -newca

1. Se mostrará un mensaje con lo siguiente, CA certificate filename (or enter to

create) , en donde hay que pulsar enter.

2. Luego de generar la clave del certificado preguntará por una contraseña

para el mismo, Enter PEM pass phrase:

3. Luego solicitará una serie de información sobre la organización, y finalmente

terminará de crear el certificado para la CA.

4. Al finalizar tendremos un directorio llamado demoCA, con los certificados.

Luego de esto se tendrá que generar los certificados para el servidor LDAP, lo cual será

de la siguiente manera:

1. Ejecutar /usr/lib/ssl/misc/CA.pl -newreq desde una consola luego se repetirán

Página 35 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 36: Manual LDAP

los pasos 2 y 3 de la creación de la CA.

2. Al finalizar tendremos dos archivos llamados newkey.pem (Clave Privada)

newreq.pem (Certificado).

3. Luego tenemos que firmar los certificados con el CA generado

anteriormente, para esto ejecutamos desde la consola /usr/lib/ssl/misc/CA.pl

-signreq, preguntará la contraseña de la CA y luego tendremos dos archivos,

newkey.pem, el cual contiene la clave privada y newcert.pem el cual contiene

el certificado firmado.Se remueve la contraseña que tiene el certificado

ejecutando desde la consola el comando #openssl rsa < newkey.pem >

clearkey.pem.

4. Luego de esto copiamos los archivos clearkey.pem y newkey.pem a un

directorio por conveniencia, por ejemplo /etc/ldap/ssl. En caso de que no exista

este directorio, debe ser creado: mkdir -p /etc/ldap/ssl

5. Instalar el certificado de la CA, para hacer esto copiamos el archivo

cacert.pem a /usr/share/ca-certificates/miCA.crt, editar el archivo /etc/ca-

certificates.conf, y colocar al final del archivo miCA.crt, y ejecutar desde la

consola #update-ca-certificates.

6. Agregar en el archivo de configuración de LDAP, para la utilización de los

certificados y que el mismo corra en modo SSL/TLS, la configuración quedaría

de la siguiente manera:

• TLSCACertificatePath /etc/ssl/certs/

• TLSCertificateFile /etc/LDAP/clearkey.pem

• TLSCertificateKeyFile /etc/LDAP/newkey.pem

7. Luego de esto el servidor LDAP estará ejecutándose con soporte SSL/TLS.

El servidor slapd

slapd

slapd es el motor del servidor de directorio OpenLDAP. Es una de las tantas

Página 36 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 37: Manual LDAP

implementaciones de LDAP en software libre. Esta versión es la más popular en términos

de número de implementaciones; vale la pena mencionar que existen varias

implementaciones de LDAP en software propietario, como por ejemplo implementaciones

de Sun, IBM, Microsoft y otras.

Página 37 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 38: Manual LDAP

Tema 1: Implementación de un servicio de directorio OpenLDAP en

Canaima GNU/Linux

En este tema describiremos como instalar un servicio de directorio OpenLDAP en

Canaima GNU/Linux para su utilización en cualquier aplicación que maneje LDAP.

Instalación del servidor

OpenLDAP se provee en el paquete slapd distribuido en el repositorio universo de

Canaima, por lo que puede ser instalado con aptitude:

aptitude install slapd

El gestor de configuración debconf hará algunas preguntas sobre el directorio

LDAP, que incluyen el nombre del dominio (en terminología LDAP se denomina DN12 base)

y la contraseña del administrador del LDAP, que usualmente tendrá como DN

cn=admin,<DN base>. Almacene esta información de forma segura.

Elementos de configuración

OpenLDAP se configura en el archivo /etc/ldap/slapd.conf. El gestor de

configuración debconf habrá configurado este archivo por usted, pero en ocasiones

puede ser útil hacer ciertos cambios, como por ejemplo:

1.Parámetros de registro: el parámetro loglevel puede ser ajustado para almacenar más

o menos información sobre la operación del directorio. Por ejemplo, loglevel stats es el

nivel recomendado por los desarrolladores y registra conexiones, consultas y resultados

en el archivo /var/log/syslog

2.Listas de control de acceso: OpenLDAP maneja listas ACL que permiten controlar el

acceso a los datos de forma granular13. Por ejemplo, una recomendación común es

12 Nombre distintitov, por sus siglas en inglés13 http://www.openldap.org/doc/admin24/access-control.html#Access%20Control%20Common%20Examples

Página 38 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 39: Manual LDAP

proteger los atributos de contraseñas de Samba con una ACL como se describe a

continuación:

access to attr=sambantpassword, sambalmpassword, sambapasswordhistory

by cn=admin,<base DN> write

by self write

by * none

Página 39 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 40: Manual LDAP

Tema 2: Control de acceso al directorio a través de listas de control

de acceso (ACLs)

Control de acceso al directorio a través de listas de control de acceso

La base de datos LDAP, contiene información sensible, por ejemplo el atributo

userPassword contiene las contraseñas de los usuarios, pero también existe otro tipo de

información como datos personales de las personas que deben ser resguardados.

Para controlar la autorización en los servidores LDAP se utilizan ACLs (Lists de

Control de Acceso), cuando un servidor LDAP procesa un requerimiento de un cliente

evalúa los permisos de acceso del mismo a la información solicitada. Esta evaluación

verifica secuencialmente cada una de las ACLs, ubicadas en los archivos de configuración

y aplica las reglas apropiadas al requerimiento.

Estructura general de una ACL

La configuración de las ACLs, se pueden realizar de dos maneras:

1. Directamente en el archivo de configuración del servidor LDAP,

/etc/LDAP/slapd.conf, y pueden ser colocadas al principio del archivo con lo cual

afectarán a todas las bases de datos que posee el servidor.

2. Dentro de la directiva “backend”, con lo cual solo afectará a la base de datos

especifica.

Cuando se poseen muchas reglas de acceso, es recomendable colocar en un

archivo aparte y utilizar la sintaxis include /etc/LDAP/nombredearchivo, con lo cual se

mantendrá el archivo slapd.conf menos complejo.

Las directivas de acceso tienen la siguiente sintaxis :

Página 40 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 41: Manual LDAP

access to [recurso]

by [quien] [tipo de privilegio]

by [quien] [tipo de privilegio]

Las directivas access pueden tener uno o mas “by”, así mismo pueden permitir

accesos por DN, atributos, filtros, o una combinación de estos.

Usos comunes de las ACLs

Para restringir un acceso a un DN en particular, se debe utilizar una regla como la

siguiente:

access to dn="uid=pedro,ou=Users,dc=universidad,dc=edu,dc=ve"

by * none

El “by * none”, rechaza los accesos a todos. Las restricciones a los DN, pueden ser

especificadas de la siguiente manera:

• dn.base : Restringe el acceso para un DN especifico, es la opción por defecto,

• dn.exact y dn.baselevel : son sinónimos de dn.base.

• dn.one : Restringe el acceso a la siguiente entrada que este despues del DN

especificado.

• dn.subtree : Restringe el acceso a todo el árbol debajo del DN especificado.

Las ACLs, también aceptan expresiones regulares lo cual incrementa el nivel de

complejidad que se puede utilizar para formular las mismas. A continuación un ejemplo

utilizando expresiones regulares:

access to dn.regex="uid=[^,]

+,ou=Users,dc=universidad,dc=edu,dc=ve"

by * none

En el ejemplo anterior se restringe el acceso a cualquier DN, con la expresión

“uid=cualquier cosa”ou=Users,dc=universidad,dc=edu,dc=ve, donde cualquier cosa

Página 41 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 42: Manual LDAP

debe ser un texto con al menos un carácter y sin comas (,), las expresiones regulares

permiten incrementar en gran medida la utilidad de las listas de acceso.

Página 42 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 43: Manual LDAP

Tema 3: Poblando el directorio OpenLDAP

Un directorio LDAP no cumple ninguna función útil si no almacena información y

sirve esta información a sus clientes. En este tema desarrollaremos las estrategias para

llenarlo. Durante el desarrollo de todo este capítulo nos referiremos al formato de

intercambio de información de directorios LDAP con el acrónimo LDIF14, que es una

representación en texto de los contenidos de un directorio y sirve para trasladar

porciones del directorio o incluso el directorio completo de un equipo a otro.

Definición de la estructura inicial del directorio

El gestor de configuración debconf creó por usted una estructura inicial del

directorio en base al DN base que le preguntaron y a la contraseña del usuario

administrativo (cn=admin,<DN base>)

Usted puede ver esa estructura inicial exportando los contenidos del directorio con

la utilidad slapcat. Tenga en cuenta que debe tener privilegios administrativos (root), ser

el usuario openldap o pertenecer a ese grupo para exportar los contenidos.

slapcat > contenido_inicial.ldif

También puede utilizar una herramienta gráfica como gq, Apache Directory Studio

o phpLDAPAdmin para visualizar y trabajar la información del directorio.

Incorporación de entradas iniciales

Casi cualquier directorio LDAP tiene unas entradas iniciales denominadas “raíz” del

directorio que conforman la población inicial del mismo. Usualmente estas entradas

definen la base del directorio y pueden ser reutilizadas para reconstruir la raíz, por

ejemplo:

14 Formato de intercambio de LDAP, por sus siglas en inglés.

Página 43 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 44: Manual LDAP

dn: dc=cnti,dc=gob,dc=ve

objectClass: top

objectClass: dcObject

objectClass: organization

o: CNTI

dc: cnti

structuralObjectClass: organization

Esta entrada muestra la raíz del directorio LDAP para dc=cnti,dc=gob,dc=ve. Debe

ser la primera entrada de un LDIF para este directorio porque define la base.

Para añadir este registro podemos utilizar dos métodos. Si estamos cargando todo

un directorio a partir de un archivo LDIF nuevo, y el directorio está vacío, podemos usar

slapadd. Esta es una herramienta nativa de OpenLDAP que accede directamente a la

base de datos subyacente y agrega los registros. Por ejemplo, si almacenáramos el

registro anterior en el archivo raiz.ldif, bastaría con ejecutar, como el usuario openldap,

un usuario administrativo o un usuario perteneciente al grupo openldap:

slapadd < raiz.ldif

Otra forma de añadir la información es utilizando la herramienta ldapadd,

incorporada en el paquete ldap-utils de Canaima. Este paquete también incluye las

herramientas ldapsearch, ldapdelete y ldapmodify, y comparten algunas opciones

comunes que reseñamos a continuación:

•-D <bind DN>: especifica el DN de conexión del usuario con el que se autenticará para

las acciones solicitadas, usualmente se utilizará aquí el DN del administrador del

directorio que fue definido en la instalación y que de forma predeterminada es

Página 44 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 45: Manual LDAP

cn=admin,<DN base>

•-W: solicita a ldap-utils que pida la contraseña en un prompt una vez ejecutado el

comando

•-x: utiliza autenticación sencilla en vez de SASL, lo cual es el caso predeterminado en la

mayoría de las implementaciones

•-b <base>: define la base o raíz del directorio LDAP, por ejemplo dc=cnti,dc=gob,dc=ve

•-h <host>: define la dirección IP o nombre de dominio del directorio LDAP

•-Z: indica si es necesario emitir la instrucción de inicio de conexión usando el protocolo

TLS

Modificando la información existente

El paquete ldap-utils, nombrado anteriormente, contiene una herramienta llamada

ldapmodify que permite modificar a través de la consola los valores de un registro.

También puede utilizar herramientas gráficas para modificar los datos. Por ejemplo, si

quisiéramos cambiar el valor de atributo “o” para la entrada dc=cnti,dc=gob,dc=ve que

creamos anteriormente, podemos utilizar ldapmodify creando un archivo cambios.ldif que

contenga esto:

dn: dc=cnti,dc=gob,dc=ve

changetype: modify

replace: o

o: Centro Nacional de Tecnologias de Informacion

-

Esta porción de archivo de cambios que hemos visto se denomina un conjunto de

cambios, y se caracteriza porque contiene:

Página 45 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 46: Manual LDAP

1.El DN del registro a modificar

2.El tipo de cambio (una modificación)

3.El atributo que se reemplazará (“o”)

4.El nuevo valor (“Centro Nacional de Tecnologías de Información”)

En un conjunto de cambios es posible hacer varios cambios sobre un mismo

registro separando los cambios con una línea nueva y un símbolo de guión (“-”), por

ejemplo:

dn: dc=cnti,dc=gob,dc=ve

changetype: modify

replace: o

o: Centro Nacional de Tecnologias de Informacion

-

add: objectclass

objectclass: another

-

Así mismo, es posible actuar sobre varios registros en un sólo archivo de cambios,

separando los conjuntos de cambios por dos caracteres de nueva línea:

dn: dc=cnti,dc=gob,dc=ve

changetype: modify

replace: o

o: Centro Nacional de Tecnologias de Informacion

-

Página 46 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 47: Manual LDAP

dn: ou=Unidad,dc=cnti,dc=gob,dc=ve

changetype: modify

replace: description

description: nueva descripcion

-

Una vez preparados los conjuntos de cambios en el archivo cambios.ldif, podemos

invocar a ldapmodify de la siguiente forma:

ldapmodify -f cambios.ldif

Opcionalmente deberá incluir las opciones comunes definidas en el capítulo 4.2 de

este documento para personalizar el comportamiento del comando ldapmodify.

Trabajando con las contraseñas

En ejemplos anteriores vimos como el formato LDIF contempla la posibilidad de

que un valor esté codificado en Base64. Usualmente esto se hace en atributos cuyos

valores tienen caracteres ajenos a ASCII (por ejemplo caracteres del idioma castellano) y

en el campo de contraseñas.

Ya que Base64 no es un algoritmo de cifrado sino un sistema de codificación,

usualmente se requiere que las contraseñas se cifren usando algoritmos conocidos como

UNIX crypt, MD5 o SHA1. En estos casos, la sintaxis de la contraseña es:

{ALGORITMO}contraseña cifrada

Por ejemplo:

{MD5}4d186321c1a7f0f354b297e8914ab240

Página 47 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 48: Manual LDAP

Los algoritmos utilizados son algoritmos de resumen de una vía. Estos algoritmos

producen una salida fija dada una entrada fija, por ejemplo:

hola => MD5 => 4d186321c1a7f0f354b297e8914ab240

Sin embargo, no es posible obtener 'hola' a partir de

4d186321c1a7f0f354b297e8914ab240 lo cual hace a estos algoritmos candidatos para

esquemas de cifrado sencillos.

Es posible usar la herramienta base64 incluida en el paquete coreutils se puede

utilizar para codificar y decodificar contenido en Base64, por ejemplo:

echo 'hola' | base64 # codificamos

aG9sYQo=

echo 'aG9sYQo=' | base64 -d # descodificamos

hola

Verificando el contenido del directorio

Para verificar el contenido de todo un directorio LDAP podemos utilizar la

herramienta slapcat que vuelca en pantalla toda la información del directorio en formato

LDIF. Esto lo debemos ejecutar con el usuario openldap, un usuario administrativo o un

usuario en el grupo openldap:

slapcat

Así mismo, podemos hacer consultas granulares usando la herramienta ldapsearch,

incluida en el paquete ldap-utils:

ldapsearch uid=jose

Página 48 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 49: Manual LDAP

Unidad IV: Integración con los servicios de directorio LDAP

Tema 1: Integración con el sistema operativo

Uno de los casos de uso de directorios LDAP más comunes es integrar este

directorio con un sistema operativo GNU/Linux para sistemas multiusuario e inicio de

sesión centralizado. En este tema describiremos los pasos de integración de un directorio

OpenLDAP con un sistema operativo Canaima GNU/Linux.

Mapeo de cuentas de usuario y grupos locales

Cuando se implementa un directorio OpenLDAP usualmente se desea descontinuar

el uso de cuentas de usuario y grupos locales, por lo que se busca llevar estas cuentas al

directorio LDAP. Verifique el contenido del archivo /etc/passwd e identifique las cuentas

de usuarios.

En Canaima GNU/Linux, las cuentas de usuario se diferencian de las de sistema

porque empiezan a partir del identificador numérico número 1000. No necesita migrar las

cuentas de sistema a un directorio LDAP.

Resolución de nombre – NSS

El conmutador del servicio de nombres NSS se encarga de atender las solicitudes

de conversión de un nombre de usuario (por ejemplo 'pedro') a un identificador numérico

como 146593. Esta conversión es necesaria porque internamente el sistema sólo maneja

identificadores numéricos.

En una instalación predeterminada de Canaima GNU/Linux, NSS utilizará un archivo

Página 49 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 50: Manual LDAP

local llamado /etc/passwd para esta tarea, pero cuando se implementa un directorio

OpenLDAP se desea que NSS utilice el directorio para esta conversión. Funcionalmente,

el resultado será que el sistema Canaima GNU/Linux podrá identificar a los usuarios del

directorio. Para esto debemos instalar el paquete libnss-ldap disponible en los

repositorios de Canaima.

Configuración de bases de datos de búsqueda

Como primer paso, debemos configurar una fuente LDAP para NSS en el archivo

/etc/libnss-ldap.conf, de la siguiente forma:

host localhost

base dc=cnti,dc=gob,dc=ve

ldap_version 3

scope sub

En esta configuración indicamos que hay un servidor LDAPv3 en 'localhost'

sirviendo el directorio dc=cnti,dc=gob,dc=ve y que deseamos hacer búsquedas de

subárbol en este directorio.

Configuración del modulo LDAP

Así mismo, distintas herramientas del sistema utilizan un archivo centralizado

llamado /etc/ldap/ldap.conf para consultar información sobre el directorio LDAP del

sistema, por ello lo debemos configurar así:

BASE dc=cnti,dc=gob,dc=ve

URI localhost

Esta configuración es análoga a lo especificado en el punto 1.2.1.

Página 50 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 51: Manual LDAP

Autenticación de usuarios – Módulos de autenticación apilables – PAM

Los módulos de autenticación apilables de GNU/Linux, PAM, sirven para autenticar

y controlar el acceso a servicios del sistema operativo. Funcionalmente, la expectativa es

que un usuario pueda hacer inicio de sesión en el sistema.

Para esto requerimos instalar el paquete libpam-ldap.

Configuración de reglas de autenticación

Hay cuatro (4) servicios del sistema operativo que se deben configurar para que se

integre completamente a un directorio OpenLDAP:

1.account: gestiona la administración de cuentas, pero no autentica al usuario.

Típicamente se utiliza para restringir o permitir el acceso a una cuenta en base a

parámetros como hora del día, bloqueo de cuenta o ubicación

2.auth: este servicio autentica al usuario en dos etapas, establecer la identidad del

usuario, por ejemplo solicitando una contraseña, y adjudicar permisologías especiales

como membresía a grupos

3.password: permite autenticar tokens de autenticación asociados con el usuario en

escenarios de desafío/respuesta

4.session: permite realizar operaciones antes y después de prestar el servicio al usuario,

como por ejemplo crear su directorio personal o montar particiones externas

En Canaima GNU/Linux, estos cuatro (4) servicios se configuran en el directorio

/etc/pam.d, y específicamente en los archivos common-account, common-auth, common-

password y common-session. Puede obtener mayor información sobre pam.d en la página

del manual man pam.d.

En cada uno de estos cuatro (4) archivos se debe agregar la siguiente línea:

Página 51 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 52: Manual LDAP

servicio sufficient pam_ldap.so

Donde servicio es account, auth, password o session dependiendo del archivo que

se esté editando.

Configuración de modulo LDAP

El módulo LDAP de PAM se configura en el archivo /etc/pam_ldap.conf. La sintaxis y

contenido de este archivo es igual a la del archivo NSS:

host localhost

base dc=cnti,dc=gob,dc=ve

ldap_version 3

scope sub

Página 52 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 53: Manual LDAP

Tema 2: Integración con controladores de dominio Samba

El sistema operativo Microsoft Windows no es capaz de interoperar nativamente

con el protocolo estándar LDAP, ni con OpenLDAP, para autenticar a sus usuarios del

sistema. Usualmente se debe combinar un directorio LDAP con un controlador de

dominio SMB/CIFS, como Microsoft Active Directory, para lograr que los usuarios de

Microsoft Windows puedan acceder utilizando credenciales centralizadas de LDAP.

Así mismo, hay escenarios en los que usuarios de GNU/Linux necesitan acceder a

recursos compartidos usando el protocolo SMB/CIFS como archivos e impresoras, en cuyo

caso también es deseable que se integre con un directorio OpenLDAP.

Samba es una implementación parcial, libre y de código abierto, del protocolo

SMB/CIFS que puede cumplir este rol. Para obtener el software debemos instalar los

paquetes samba y samba-doc. En este capítulo estudiaremos lo que se requiere

modificar para integrar un controlador de dominio Samba con OpenLDAP.

Esquemas adicionales

Hay dos elementos básicos que podemos registrar en un directorio OpenLDAP y

que son de interés para la implementación de un controlador de dominio con Samba:

1.Cuentas de usuario

2.Cuentas de máquina

Para convertir cuentas de usuario ya existentes en un directorio OpenLDAP en

cuentas de usuario Samba es necesario hacer que la entrada pertenezca a la clase de

objetos sambaSAMAccount, independientemente de las clases de objetos a las que ya

Página 53 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 54: Manual LDAP

perteneciera.

La clase de objetos sambaSAMAccount, así como los atributos que ella define, se

encuentran completamente descritos en el esquema samba.schema. Este esquema se

puede conseguir comprimido con gzip en el paquete samba-doc:

gunzip -c /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz >

/etc/ldap/schema/samba.schema

Los esquemas de OpenLDAP se almacenan en la carpeta /etc/ldap/schema y deben

ser declarados en el archivo de configuración de OpenLDAP, /etc/ldap/slapd.conf:

include /etc/ldap/schema/samba.schema

Luego de este cambio debe reiniciarse el servicio slapd:

invoke-rc.d slapd restart

Mapeo de cuentas de usuario y grupos

Una vez activo el esquema de Samba en el directorio OpenLDAP, hay que agregar

algunos atributos para convertir una entrada de usuario POSIX tradicional en una entrada

Samba. A continuación comentamos una entrada completa de usuario POSIX/Samba:

dn: uid=gcarter,

ou=People,dc=quenya,dc=org

Nombre distintivo

displayName: Gerald Carter Nombre completo del usuario

sambaLMPassword:

552902031BEDE9EFAAD3B435B51404EE

Hash de 16 bytes de la contraseña LanMan

en formato hexadecimal

sambaPrimaryGroupSID: S-1-5-21-

2447931902-1787058256-3961074038-

Identificador de seguridad del grupo

principal del usuario

Página 54 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 55: Manual LDAP

1201

objectClass: posixAccount Clase de objeto

objectClass: sambaSamAccount Clase de objeto

userPassword: {crypt}BpM2ej8Rkzogo Contraseña cifrada en formato UNIX crypt

uid: gcarter Identificador del usuario

uidNumber: 9000 Identificador numérico del usuario

cn: Gerald Carter Nombre completo del usuario

loginShell: /bin/bash Consola de inicio de sesión

gidNumber: 100 Identificador numérico del grupo principal

del usuario

sambaPwdLastSet: 1010179230 Fecha/hora del último cambio de

contraseña

sambaSID: S-1-5-21-2447931902-

1787058256-3961074038-5004

Identificador de seguridad del usuario

homeDirectory: /home/moria/gcarter Directorio personal del usuario

sambaNTPassword:

878D8014606CDA29677A44EFA1353FC7

Hash de 16 bytes de la contraseña NT en

formato hexadecimal

Es importante resaltar que los sistemas SMB/CIFS, en particular Microsoft Windows,

no pueden procesar las contraseñas en formatos UNIX crypt, MD5 o SHA1, por lo que se

almacenan las contraseñas en los formatos NT y LanMan. Adicionalmente, así como en

sistemas POSIX como GNU/Linux existen identificadores numéricos (uidNumber), en

sistemas Microsoft Windows se manejan identificadores de seguridad (SID) por lo que

también se almacena esta información en el directorio LDAP. Para añadir o modificar las

entradas LDAP e incluir estos atributos, refiérase al tema 4.3 de la unidad anterior.

Página 55 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 56: Manual LDAP

Tema 3: Integración con servicios de red

Proxy LDAP

Un servidor proxy LDAP actúa como un intermediario entre los clientes y los

servidores que poseen los datos, y son de gran utilidad cuando se tienen gran cantidad

de servidores y se requiere agrupar en uno solo.

Configuración de un servidor proxy LDAP

A continuación se presenta un ejemplo de configuración de servidor proxy LDAP,

en donde deberemos editar el archivo /etc/ldap/slapd.conf y colocar lo siguiente:

1. database meta (el tipo de base de datos a utilizar)

2. suffix "dc=reacciun,dc=ve" (la base del directorio proxy)

3. uri "LDAP://LDAP.universidad.edu.ve/dc=universidad,dc=reacciun,dc=ve"

4. suffixmassage "dc=universidad,dc=reacciun,dc=ve"

"dc=universidad,dc=edu,dc=ve"

Página 56 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 57: Manual LDAP

Unidad V: Administración avanzada de directorios OpenLDAP

Tema 1: Conexiones seguras al directorio - SSL/TLS

En ciertos escenarios es deseable incorporar la posibilidad de cifrar, autenticar y

garantizar la integridad de las comunicaciones entre los clientes y el directorio LDAP. Para

esto se utilizan los protocolos SSL y/o TLS.

La diferencia principal entre ambos protocolos es que la sesión cifrada se negocia y

establece antes de la sesión LDAP en el caso de SSL y ocurre al revés en el caso de TLS.

En términos generales, se considera que TLS es un sucesor de SSL y se prefiere la

utilización de TLS, como se hará en este manual.

Para implementar TLS en un servidor OpenLDAP se requiere:

1.Una llave SSL para el servidor, que llamaremos servidor.key

2.Un certificado firmado por una CA (autoridad certificadora), que llamaremos

servidor.crt

3.El certificado de la CA que firmó el certificado del servidor, que llamaremos ca.crt

Colocamos estos tres (3) archivos en un directorio, por ejemplo /etc/ldap/ssl, que el

usuario openldap pueda leer, y editamos el archivo /etc/ldap/slapd.conf para incluir la

siguiente configuración:

TLSCACertificateFile /etc/ldap/ssl/ca.crt Certificado de la CA

TLSCertificateFile /etc/ldap/ssl/servidor.crt Certificado del servidor

TLSCertificateKeyFile

/etc/ldap/ssl/servidor.keyLlave del servidor

Página 57 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 58: Manual LDAP

TLSVerifyClient neverIndica que no se requerirá que los clientes

presenten sus certificados

Reiniciamos el servicio con el comando invoke-rc.d slapd restart y ya podemos

disponer de conexiones TLS en nuestro servidor OpenLDAP. Sin embargo, también es

necesario que los clientes configuren sus entornos operacionales para que puedan

comunicarse de forma cifrada, con autenticidad e integridad, al servidor OpenLDAP. Esto

es natural ya que la seguridad del canal depende normalmente de la sincronización de

ambos extremos.

El cliente sólo requiere tener el certificado de la CA. Este certificado puede ser

leído por cualquier usuario del sistema, ya que no compromete la seguridad del

esquema. Por ejemplo, colocamos ca.crt en la carpeta /etc/ldap/ssl tal y como hicimos en

la parte de servidor. Así mismo, en el archivo /etc/ldap/ldap.conf, el cual vimos en detalle

en el capítulo 1.2.2 de la Unidad IV, agregamos las líneas:

TLS_CACERT /etc/ldap/ssl/ca.crt

TLS_REQCERT never

Con esta configuración, podremos utilizar las herramientas del paquete ldap-utils

con la opción -Z, que emite una instrucción para iniciar la conexión usando TLS. Así

mismo, cualquier aplicación que respete la configuración de /etc/ldap/ldap.conf puede

comunicarse usando TLS con el servidor LDAP.

Para ampliar más sobre este tema, ir al Tema 3 de la unidad anterior.

Página 58 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 59: Manual LDAP

Tema 2: Existencia de más de una copia

Existencia de más de una copia (slurpd)

En entornos de grandes redes y servidores LDAP con grandes base de datos, se

requiere mantener más de un servidor LDAP, y esto se realiza mediante el demonio

sluprd.

El acrónimo slurpd significa: Standalone LDAP Update Replication Daemon y su

misión es propagar los cambios de una base de datos slapd hacia otra. Si slapd está

configurado para producir logs de replicación, slurpd los lee y envía los cambios a las

instancias slapd esclavas a través del protocolo LDAP. slurpd se arranca, normalmente, en

el arranque del sistema.

Una vez arrancado, slurpd normalmente hace un fork de si mismo y se independiza

de la consola que lo ha llamado, luego lee el log de replicación (dado bien por la directiva

replogfile del archivo de configuración de slapd, ó bien por la opción -r de la línea de

comandos). Si el archivo log de replicación no existe o está vacío, slurpd se duerme.

Después, cada cierto tiempo, se despierta y verifica si hay cambios que propagar.

Cuando slurpd encuentra cambios a propagar hacia las instancias slapd esclavas,

bloquea el log de replicación, hace una copia privada del mismo, libera el bloqueo

anteriormente puesto y crea procesos hijos de si mismo para cada réplica de slapd que

ha de ser actualizada; luego, cada uno de estos procesos hijo se asocia con el demonio

slapd esclavo, y envía los cambios.

El funcionamiento es el siguiente :

• El cliente LDAP envía una modificación LDAP al slapd esclavo.

• El slapd esclavo devuelve una remisión hacia el cliente LDAP, referenciandolo hacia

el servidor slapd maestro.

Página 59 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 60: Manual LDAP

• El cliente LDAP envía la operación de modificación LDAP hacia el slapd maestro.

• El slapd maestro realiza la operación de modificación, escribe los cambios en su

archivo log de replicación y devuelve un código de éxito hacia el cliente.

• El proceso slurpd verifica que se ha añadido una nueva entrada al archivo log de

replicación, lee la entrada del log de replicación y envía el cambio hacia el servidor

slapd esclavo vía LDAP.

• El servidor slapd esclavo realiza la operación de modificación y un código de éxito

hacia el proceso slurpd.

Decidiendo el mecanismo de replicación

En ciertos escenarios, el mecanismo de replicación provisto por slurpd no es

suficiente para garantizar una integridad funcional en un entorno de directorios

OpenLDAP. Existen otros mecanismos de replicación disponibles para OpenLDAP, como

por ejemplo la replicación usando syncrepl y la replicación multi-master.

Los mecanismos de replicación de OpenLDAP están constantemente mejorando,

por lo que se recomienda consultar la Guía del Administrador15 más actualizada para

obtener la información adecuada. Sin embargo, a continuación presentamos una

comparativa de algunos de los mecanismos más populares:

Mecanismo Características

slurpd

•Sólo permite un servidor maestro

•Iniciado por el proveedor

•Modelo basado en PUSH

•Se ejecuta periódicamente

•Sólo se ejecuta de haber cambios

Syncrepl •Sólo permite un servidor maestro

15 http://www.openldap.org/doc/admin24/replication.html

Página 60 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 61: Manual LDAP

•Iniciado por el consumidor

•Modelo basado en PULL

•Se ejecuta periódicamente

•Sólo se ejecuta de haber cambios

N-way multi-master

•Admite varios servidores maestros

•Es n-vías, es decir, todos los servidores inician el proceso de replicación

•Se ejecuta constantemente

•Puede causar problemas de integridad

Mirror mode

•Admite sólo dos servidores maestros

•Requiere tres servidores: los dos maestros y un frontend para escrituras

•Se ejecuta constantemente

•Permite esquemas de alta disponibilidad

Existencia de más de una copia (syncrepl)

Para implementar un servidor de réplica utilizando syncrepl, se deben seguir los

pasos especificados en este Manual para la instalación de OpenLDAP asegurándose que

las respuestas que se hacen a las preguntas de la instalación sean iguales que las que se

dieron en la instalación del servidor principal

Luego, se deben agregar las siguientes líneas al archivo de configuración

/etc/ldap/slapd.conf:

syncrepl rid=100 rid=XXX, donde XXX es un número único y arbitrario, ya que se pueden definir varias réplicas en un mismo archivo de configuración

provider=ldap://10.10.10.1/ Dirección IP del maestro

type=refreshAndPersist Tipo de la replicación

Página 61 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 62: Manual LDAP

searchbase="dc=cnti,dc=gob,dc=ve

"

Base del directorio

filter="(objectClass=*)" Si se desea filtrar las entradas a replicar se puede definir un filtro LDAP aquí

scope=sub Base de búsqueda (subárbol)

attrs="*" Atributos a replicar, * para “todos”

schemachecking=off Verificar compatibilidad con los esquemas instalados en el servidor réplica

bindmethod=simple Mecanismo de autenticación

binddn="cn=admin,dc=cnti,dc=gob,

dc=ve”

DN del usuario que tiene privilegios para acceder a los datos en el maestro

credentials=myf1r5treplica Credenciales del DN anterior

Es conveniente utilizar el DN del administrador del directorio LDAP (en nuestro

caso, cn=admin,dc=cnti,dc=gob,dc=ve) ya que éste DN tiene privilegios para acceder a

todo el directorio de forma predeterminada. Sin embargo, también es posible crear un DN

distinto y otorgarle los permisos para acceder al directorio con sólo lectura, por ejemplo:

access to *

by 'cn=replica1,dc=cnti,dc=gob,dc=ve' read

Una vez configurado slapd.conf, reiniciamos el servicio y se iniciará el proceso de

replicación. Dependiendo del volumen de datos y la conexión entre la réplica y el maestro

podrá tomar entre unos pocos segundos y varios minutos.

Página 62 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 63: Manual LDAP

Tema 3: Particionando el directorio

En la vasta mayoría de los escenarios, almacenar todo el contenido de un

directorio LDAP en un sólo servidor LDAP es suficiente y aceptable. La tecnología de los

motores de almacenamientos disponibles en, por ejemplo, OpenLDAP, evoluciona

constantemente. Es sustentable tener directorios OpenLDAP con varios millones de

registros ofreciendo servicio de calidad a sus clientes. Sin embargo, por razones de

seguridad, administración, sustentabilidad o rendimiento, algunas organizaciones pueden

decir particionar su directorio LDAP entre varios servidores OpenLDAP.

Para ello, delegan porciones del árbol de información en otros servidores

OpenLDAP, y mantienen objetos de referencia que permiten pegar todos los servidores

que forman parte de la solución. En este ejemplo, supongamos que el DIT hipotético

dc=gob,dc=ve administrado por el CNTI para la Administración Pública Venezolana desea

delegar subárboles a cada una de las organizaciones que la conforman. Tomemos por

ejemplo:

•dc=gob,dc=ve: Gobierno Venezolano, servidor ldap.gob.ve

•dc=cnti,dc=gob,dc=ve: CNTI, servidor ldap.cnti.gob.ve

•dc=mopvi,dc=gob,dc=ve: MOPVI, servidor ldap.mopvi.gob.ve

•dc=fmh,dc=gob,dc=ve: FMH, servidor ldap.fmh.gob.ve

Definición de la referencia Inferior

En este caso, el servidor dc=gob,dc=ve contendría las siguientes entradas:

Página 63 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 64: Manual LDAP

1.Entrada raíz de su propia base

dn: dc=gob,dc=ve

objectClass: top

objectClass: dcObject

objectClass: organization

o: Gobierno de Venezuela

dc: gob

structuralObjectClass: organization

2.Referencia a cnti.gob.ve

dn: dc=cnti,dc=gob,dc=ve

objectClass: referral

objectClass: extensibleObject

dc: subtree

ref: ldap://ldap.cnti.gob.ve/dc=cnti,dc=gob,dc=ve

Esta última entrada se repetiría para las otras bases y servidores que conforman el

esquema particionado.

Página 64 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 65: Manual LDAP

Definición de la referencia superior

En el servidor ldap.cnti.gob.ve correspondiente a la base dc=cnti,dc=gob,dc=ve, y

en cada uno de los otros que conforman el esquema particionado, basta con colocar la

siguiente directiva en el archivo /etc/ldap/slapd.conf:

referral ldap://ldap.gob.ve/

Y reiniciar el servicio con:

invoke-rc.d slapd restart

Con esta directiva, se le indica al servidor OpenLDAP del CNTI que en caso de que

se solicite una entrada que no se encuentre en el servidor (fuera de la raíz

dc=cnti,dc=gob,dc=ve) debe irse al servidor ldap.gob.ve.

A su vez, este servidor ldap.gob.ve le redireccionará al apropiado o le indicará que

no hay entradas que coincidan con su solicitud. Así, por ejemplo, un usuario en el Centro

Nacional de Tecnologías de Información podría consultar información sobre un usuario en

el Ministerio del Poder Popular de Obras Públicas y Vivienda mientras que la

administración de cada directorio es independiente.

Página 65 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 66: Manual LDAP

Anexos

Ejercicio Propuesto N#1

Se le solicita cambiar la extensión telefónica del usuario POSIX 'malvarado' al

número '22155', en este escenario indique:

a) Consulta que realizaría para conocer el DN del usuario

b) Archivo LDIF de cambios que utilizaría para ldapmodify

c) Argumentos a utilizar para el comando ldapmodify

d) Consulta que realizaría para confirmar el cambio

Premisas del Ejercicio:

• La base de búsqueda del directorio es la que corresponde al dominio DNS

prueba.cnti.gob.ve

• El servidor LDAP maestro se encuentra en la dirección IP 10.70.6.3

• El nombre distintivo (DN) del usuario para hacer cualquier consulta al servidor

LDAP que amerite un cambio es el predeterminado que se configura utilizando

Debconf en la instalación en Debian, y este usuario tiene los permisos adecuados

para realizar el cambio

• No se utiliza TLS ni SSL

Solución del ejercicio:

a) ldapsearch -b dc=prueba,dc=cnti,dc=gob,dc=ve -h 10.70.63 -D

'cn=admin,dc=prueba,dc=cnti,dc=gob,dc=ve' -W -x uid=malvarado dn

b) En un archivo, por ejemplo 'cambio.ldif':

Página 66 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 67: Manual LDAP

dn: <dn del usuario malvarado, ver punto A>

changetype: modify

telephoneNumber: 22155

c) ldapmodify -b dc=prueba,dc=cnti,dc=gob,dc=ve -h 10.70.63 -D

'cn=admin,dc=prueba,dc=cnti,dc=gob,dc=ve' -W -x -f cambio.ldif

d) ldapsearch -b dc=prueba,dc=cnti,dc=gob,dc=ve -h 10.70.63 -D

'cn=admin,dc=prueba,dc=cnti,dc=gob,dc=ve' -W -x uid=malvarado telephoneNumber

Página 67 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 68: Manual LDAP

Referencias

• OpenLDPA (2008), Access Control. Disponible en:

ttp://www.openldap.org/doc/admin24/access-control.html#Access%20Control

%20Common%20Examples

• OpenLDPA (2008), Replication. Disponible en:

http://www.openldap.org/doc/admin24/replication.html

• RFC-Ref (2009), caseExactIA5Match. Disponible en: http://rfc-ref.org/RFC-

TEXTS/2307/kw-caseexactia5match.html

• Submitted by j.onions at nexor.co (1998), 1.3.6.1.4.1.1466.115.121.1.26 - IA5

String syntax. Disponible en:

http://www.alvestrand.no/objectid/1.3.6.1.4.1.1466.115.121.1.26.html

Página 68 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 69: Manual LDAP

Glosario de términos

A

• ACLs (Access Control List/Lista de Control de Acceso): es una tabla que le

dice a un sistema los derechos de acceso que cada usuario posee para un objeto

determinado, como directorios, ficheros, puertos, etc. Técnicas para limitar el

acceso a los recursos según la información de autenticidad y las normas de acceso.

• Apache: es un software libre servidor HTTP de código abierto para plataformas

Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras. Presenta, entre otras

características, mensajes de error altamente configurables, bases de datos de

autenticación y negociado de contenido. Ha sido desde Abril de 1996 el servidor

HTTP más usado.

• APT (Advanced Packaging Tool): es un sistema de gestión de paquetes creado

por el proyecto Debian. APT simplifica en gran medida la instalación y eliminación

de programas en los sistemas GNU/Linux; no existe un programa apt en sí mismo,

sino que APT es una biblioteca de funciones C++ que se emplea por varios

programas de línea de comandos para distribuir paquetes. En especial, apt-get y

apt-cache.

• ARPANET: (Advanced Research Projects Agency Network/Red de la

Agencia de Proyectos de Investigación Avanzada): es una red militar

Norteamericana a través de líneas telefónicas, de la que posteriormente derivó

Internet.

B

• BIND (Berkeley Internet Name Domain, anteriormente: Berkeley Internet

Name Daemon): es la implementación del estándar DNS de uso más habitual en

la Internet, especialmente en los sistemas tipo Unix, en los cuales es un estándar

de facto.

Página 69 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 70: Manual LDAP

• BIND9: es una nueva versión de BIND. Fue escrita desde cero en parte para

superar las dificultades arquitectónicas presentes anteriormente para auditar el

código en las primeras versiones de BIND, y también para incorporar DNSSEC.

BIND 9 incluye entre otras características importantes: TSIG, notificación DNS,

nsupdate, IPv6, rndc flush, vistas, procesamiento en paralelo, y una arquitectura

mejorada en cuanto a portabilidad. Es comúnmente usado en sistemas GNU/Linux.

C

• Cache: es todo duplicado del una información original que se almacena en un

lugar de acceso más rápido que el original.

• Canaima: es una distribución GNU/Linux Venezolana basada en Debian que surge

como una solución para cubrir las necesidades ofimáticas de los usuarios finales de

la Administración Pública Nacional (APN) y para dar cumplimiento al decreto

presidencial Nro. 3.390 sobre el uso de Tecnologías Libres.

D

• Datagramas: es un fragmento de paquete que es enviado con la suficiente

información como para que la red pueda simplemente encaminar el fragmento

hacia el equipo terminal de datos receptor, de manera independiente a los

fragmentos restantes.

• DAP (Directory Access Protocol): es un estándar dentro de las redes de

computadoras que ha sido promulgado por la ITU-T y por la ISO en 1998, para el

acceso de un servicio de directorio X.500.

• Debian Project: es una comunidad conformada por desarrolladores y usuarios,

que mantiene un sistema operativo GNU basado en software libre precompilado y

empaquetado, en un formato sencillo en múltiples arquitecturas de computador y

en varios núcleos.

• DHCP (Dynamic Host Configuration Protocol / Protocolo de Configuración

Dinámica de Servidores): permite asignar IPs de forma dinámica, e indica

Página 70 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 71: Manual LDAP

servidores de nombre de dominios y gateways desde un servidor a todos los

clientes que se la pidan.

• Direcciones IP: es un número que identifica de manera lógica y jerárquica a una

interfaz de un dispositivo (habitualmente una computadora) dentro de una red que

utilice el protocolo IP (Internet Protocol), que corresponde al nivel de red o nivel 3

del modelo de referencia OSI.

• Directorio: es un conjunto de objetos con atributos organizados en una manera

lógica y jerárquica.

• Distribución: es una recopilación de programas y ficheros (paquetes),

organizados y preparados para su instalación en las diferentes arquitecturas de

hardware disponibles en el mercado, las cuales se pueden obtener a través de

Internet, o adquiriendo los CD de las mismas.

• DNS (Domain Name System): es un sistema de nombres que permite traducir

de nombres de dominio a direcciones IP y viceversa.

• Dominio: nombre básico de un conjunto de dispositivos y computadores dentro de

una red, los equipos o dispositivos que lo componen cada uno posee un nombre

perteneciente a ese dominio, que lo hace más fácil de recordar en vez de utilizar

direcciones numéricas para acceder a los mismos.

• Dovecot: es un servidor de IMAP y POP3 de código abierto para sistemas

GNU/Linux / UNIX-like, escrito fundamentalmente pensando en seguridad. Fue

desarrollado por Timo Sirainen, y apunta principalmente a ser un servidor de

correo de código abierto ligero, rápido, fácil de instalar y por sobre todo seguro.

E

• ESP (Encapsulating Security Payload): este protocolo proporciona autenticidad

de origen, integridad y protección de confidencialidad de un paquete. ESP también

soporta configuraciones de sólo cifrado y sólo autenticación.

• ESMTP (Enhanced Simple Mail Transfer Protocol): es una definición de

Página 71 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 72: Manual LDAP

extensiones de protocolo para el estándar SMTP, cuyo formato de extensión fue

definido en el RFC 1869 en 1995. Este RFC estableció una estructura para todas las

extensiones existentes y futuras con el fin de producir una manera consistente y

manejable por la cual los clientes y servidores SMTP puedan ser identificados y los

servidores SMTP puedan señalar las extensiones soportadas a los clientes

conectados.

F

• Frame Relay: consiste en una forma simplificada de tecnología de conmutación

de paquetes que transmite una variedad de tamaños de tramas o marcos

(“frames”) para datos, perfecto para la transmisión de grandes cantidades de

datos. Esta técnica se utiliza para un servicio de transmisión de voz y datos a

alta velocidad que permite la interconexión de redes de área local separadas

geográficamente a un coste menor.

• FQDN (Fully Qualified Domain Name): es un nombre que incluye el nombre de

la computadora y el nombre del dominio asociado a ese equipo. La longitud

máxima permitida para un FQDN es 255 caracteres (bytes), con una restricción

adicional a 63 bytes por etiqueta dentro de un nombre de dominio. Las etiquetas

FQDN se restringen a un juego de caracteres limitado: letras A-Z de ASCII, los

dígitos, y el carácter «-», y no distinguen mayúsculas de minúsculas.

G

• GPL (General Public License / Licencia Pública General): la Licencia Pública

General de GNU o más conocida por su nombre en inglés GNU General Public

License o simplemente su acrónimo del inglés GNU GPL, es una licencia creada por

la Free Software Foundation a mediados de los 80, y está orientada principalmente

a proteger la libre distribución, modificación y uso de software.

H

• Header (Cabecera): es la primera parte de un paquete de datos que contiene

Página 72 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 73: Manual LDAP

información sobre las características de este.

• HDLS (High bit rate Digital Suscriber Line / Línea Digital de Abonado de

alta velocidad): es un sistema de transmisión de datos de alta velocidad que

utiliza dos pares trenzados; obteniendo velocidades superiores al Megabit en

ambos sentidos.

• Host: un host o anfitrión es un ordenador que funciona como el punto de inicio y

final de las transferencias de datos.; más comúnmente descrito como el lugar

donde reside un sitio web. Un host de Internet tiene una dirección de Internet única

(direción IP) y un nombre de dominio único o nombre de host.

• HTML (HyperText Markup Language / Lenguaje de Marcas de Hipertexto):

es el lenguaje de marcado predominante para la construcción de páginas web. Es

usado para describir la estructura y el contenido en forma de texto, así como para

complementar el texto con objetos tales como imágenes.

I

• IDLE: hace referencia a la inactividad de un usuario en IRC.

• IETF (Internet Engineering Task Force/Grupo de Trabajo en Ingeniería de

Internet): es una organización internacional abierta de normalización, que tiene

como objetivos el contribuir a la ingeniería de Internet, actuando en diversas

áreas, tales como transporte, encaminamiento, seguridad. Fue creada en EE.UU en

1986.

• IKE (Internet key exchange): es un protocolo usado para establecer una

asociación de seguridad (SA) en el protocolo Ipsec. Supone una alternativa al

intercambio manual de claves, y su objetivo es la negociación de una Asociación

de Seguridad para IPSEC, permitiendo además especificar el tiempo de vida de la

sesión IPSEC, autenticación dinámica de otras máquinas, entre otras.

• IMAP (Internet Message Access Protocol): es un protocolo de red de acceso a

mensajes electrónicos almacenados en un servidor. Mediante IMAP se puede tener

acceso al correo electrónico desde cualquier equipo que tenga una conexión a

Página 73 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 74: Manual LDAP

Internet.

• IP (Internet Protocol): el protocolo de comunicaciones IP permite que redes

grandes y geográficamente diversas de computadoras, se comuniquen con otras

rápida y económicamente a partir de una variedad de eslabones físicos.

• IPsec (Internet Protocol security): es un conjunto de protocolos cuya función

es asegurar las comunicaciones sobre el Protocolo de Internet (IP), autenticado y/o

cifrando cada paquete IP en un flujo de datos. IPsec incluye también protocolos

para el establecimiento de claves de cifrado.

• IPv4: es la versión 4 del Protocolo IP (Internet Protocol). Esta fue la primera

versión del protocolo que se implementó extensamente, y forma la base de

Internet. IPv4 usa direcciones de 32 bits, limitándola a 232 = 4.294.967.296

direcciones únicas, muchas de las cuales están dedicadas a redes locales (LANs).

• IPv6: es una nueva versión de IP (Internet Protocol) y está destinado a sustituir a

IPv4, cuyo límite en el número de direcciones de red admisibles está empezando a

restringir el crecimiento de Internet y su uso; pero el nuevo estándar mejorará el

servicio globalmente; por ejemplo, proporcionará a futuras celdas telefónicas y

dispositivos móviles con sus direcciones propias y permanentes.

• IPX (Internetwork Packet Exchange / Intercambio de paquetes interred):

es un protocolo de comunicaciones NetWare que se utiliza para encaminar

mensajes de un nodo a otro. Los paquetes IPX incluyen direcciones de redes y

pueden enviarse de una red a otra.

• IRC (Internet Relay Chat): es un protocolo de comunicación en tiempo real

basado en texto, que permite debates en grupo o entre dos personas. Se diferencia

de la mensajería instantánea, porque los usuarios no deben acceder a establecer la

comunicación de antemano; de tal forma, que todos los usuarios que se

encuentran en un canal pueden comunicarse entre sí, aunque no hayan tenido

ningún contacto anterior.

Página 74 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 75: Manual LDAP

• ISC BIND: el nombre completo original del servidor BIND9 desarrollado por la

Internet Systems Consortium.

• ITU-T (Sector de Normalización de las Telecomunicaciones de la UIT): es el

órgano permanente de la Unión Internacional de Telecomunicaciones (UIT), que

estudia los aspectos técnicos, de explotación y tarifarios y publica normativa sobre

los mismos, con vista a la normalización de las telecomunicaciones a nivel

mundial.

L

• LAN (Local Área Network): es la interconexión de varias computadoras y

periféricos. Su extensión está limitada físicamente a un edificio o a un entorno de

hasta 200 metros; su aplicación más extendida es la interconexión de

computadoras personales y estaciones de trabajo en oficinas, fábricas, etc., para

compartir recursos e intercambiar datos y aplicaciones.

• LDAP (Lightweight Directory Access Protocol/Protocolo Ligero de Acceso a

Directorios): es un protocolo a nivel de aplicación que permite el acceso a un

servicio de directorio ordenado y distribuido, para buscar diversa información en

un entorno de red. LDAP también es considerado una base de datos (aunque su

sistema de almacenamiento puede ser diferente) a la que pueden realizarse

consultas.

N

• NAT (Network Address Translation/Traducción de Dirección de Red): es un

mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes,

que se asignan mutuamente direcciones incompatibles. Consiste en convertir en

tiempo real las direcciones utilizadas en los paquetes transportados. También es

necesario editar los paquetes, para permitir la operación de protocolos que

incluyen información de direcciones dentro de la conversación del protocolo.

Página 75 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 76: Manual LDAP

• NETBIOS (Network Basic Input/Output System): es una especificación de

interfaz para acceso a servicios de red, es decir, una capa de software desarrollado

para enlazar un sistema operativo de red con hardware específico.

• Nombres de dominio: son direcciones nemotécnicas o alias que identifican un

sitio de Internet.

• NSS (Network Switching Subsystem/Subsistema de Conmutación de Red): es

el componente que realiza las funciones de portar y administrar las

comunicaciones entre teléfonos móviles y la Red de Conmutada de Telefonía

Pública (PSTN) para una red GSM.

O

• OpenLDAP: es una versión libre de LDAP que es un protocolo a nivel de aplicación

que soporta un servicio de directorio, se parece a una libreta de direcciones.

OpenLDAP se basa en el estándar de servicio de directorio ISO X.500 y en su

protocolo DAP (Directory Access Protocol). Se diseñó para ser un protocolo simple y

eficiente para acceder al directorio DAP, por eso lo de lightweight , implementa un

subconjunto de operaciones del X.500.

• OSI (Open Source Initiative): es una organización dedicada a la promoción del

código abierto. Fue fundada en febrero de 1998 por Bruce Perens y Eric S.

Raymond.

P

• PAM (Pluggable Authentication Modules/Módulos enchufables de

autenticación): es un sistema de autenticación que controla el acceso a RHL.

• POP3 (Post-Office Protocol/Protocolo de Oficina de Correos): es un

protocolo que permite recuperar el correo desde una máquina distinta a la que lo

recibe y que es el más utilizado en las conexiones habituales por módem o RDSI a

un proveedor (ya sea mediante PPP o SLIP).

Página 76 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 77: Manual LDAP

• Protocolos Criptográficos: también llamado protocolo criptográfico o protocolo

de cifrado, es un protocolo abstracto o concreto que realiza funciones relacionadas

con la seguridad, aplicando métodos criptográficos.

• PPP (Point-to-point Protocol/Protocolo Punto a Punto): permite establecer

una comunicación a nivel de enlace entre dos computadoras. Generalmente, se

utiliza para establecer la conexión a Internet de un particular con su proveedor de

acceso a través de un módem telefónico. Ocasionalmente también es utilizado

sobre conexiones de banda ancha

• PPTP (Point to Point Tunneling Protocol): es un protocolo de red creado por

Microsoft que permite la realización de transferencias seguras desde clientes

remotos a servidores emplazados en redes privadas, empleando para ello tanto

líneas telefónicas conmutadas como Internet.

• Proxy: hace referencia a un programa o dispositivo que realiza una acción en

representación de otro. Su finalidad más habitual es la de servidor proxy, que sirve

para permitir el acceso a Internet a todos los equipos de una organización cuando

sólo se puede disponer de un único equipo conectado, esto es, una única dirección

IP.

R

• RADIUS (Remote Authentication Dial-In User Service): es un protocolo de

autenticación y autorización para aplicaciones de acceso a la red o movilidad IP.

• RFC (Request For Comments/Petición de Comentarios): son una serie de

notas sobre Internet que comenzaron a publicarse en 1969. Cada una de ellas

individualmente es un documento cuyo contenido es una propuesta oficial para un

nuevo protocolo de la red Internet (originalmente de ARPANET), que se explica con

todo detalle para que en caso de ser aceptado pueda ser implementado sin

ambigüedades.

• RSA: el sistema criptográfico con clave pública RSA es un algoritmo asimétrico

Página 77 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 78: Manual LDAP

cifrador de bloques, que utiliza una clave pública, la cual se distribuye (en forma

autenticada preferentemente), y otra privada, la cual es guardada en secreto por

su propietario.

S

• Samba: es una implementación libre del protocolo de archivos compartidos de

Microsoft Windows, para sistemas de tipo UNIX. De esta forma, es posible que

ordenadores con GNU/Linux, Mac OS X o Unix en general se vean como servidores

o actúen como clientes en redes de Windows. Samba también permite validar

usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de

dominio e incluso como un dominio Active Directory para redes basadas en

Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos

y autentificar con su propio archivo de usuarios.

• SASL (Simple Authentication and Security Layer/Capa de Seguridad y

Autenticación Simple): es un framework para autenticación y autorización en

protocolos de internet. Separa los mecanismos de autenticación de los protocolos

de la aplicación permitiendo, en teoría, a cualquier protocolo de aplicación que use

SASL usar cualquier mecanismo de autenticación soportado por SASL.

• SGML (Standard Generalized Markup Language / Estándar de Lenguaje de

Marcado Generalizado): consiste en un sistema para la organización y

etiquetado de documentos. El lenguaje SGML sirve para especificar las reglas de

etiquetado de documentos y no impone en sí ningún conjunto de etiquetas en

especial.

• Sistema Operativo: es un software que administra y controla las actividades, y

recursos de la computadora. Comprende todos aquellos paquetes que le permiten

al computador funcionar como un conjunto de herramientas e intérpretes de

comandos.

• SMTP (Simple Mail Transfer Protocol/Protocolo Simple de Transferencia de

Correo): es un protocolo de la capa de aplicación. Protocolo de red basado en

Página 78 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 79: Manual LDAP

texto utilizado para el intercambio de mensajes de correo electrónico entre

computadoras u otros dispositivos (PDA's, teléfonos móviles, entre otros.). Está

definido en el RFC 2821 y es un estándar oficial de Internet.

• SSL (Secure Sockets Layer/Protocolo de Capa de Conexión Segura):

proporciona autenticación y privacidad de la información entre extremos sobre

Internet mediante el uso de criptográficos.

• SSL/TLS (Secure Sockets Layer/Protocolo de Capa de Conexión Segura y

Transport Layer Security/Seguridad de la Capa de Transporte): son

protocolos criptográficos que proporcionan comunicaciones seguras por una red,

comúnmente Internet.

• Subdominio: es un subgrupo o subclasificación del nombre de dominio, el cual es

definido con fines administrativos u organizativos, que podría considerarse como

un dominio de segundo nivel. Normalmente es una serie de caracteres o palabra

que se escriben antes del dominio. En Internet se podría decir que el subdominio

se utiliza para referirse a una dirección web, que trabaja como un anexo (o sitio

relacionado) de un dominio principal.

• SOA (Service Oriented Architecture / Arquitectura Orientada a Servicios):

es un software que administra y controla las actividades, y recursos de la

computadora. Comprende todos aquellos paquetes que le permiten al computador

funcionar como un conjunto de herramientas e intérpretes de comandos.

• SOAP (Simple Object Access Protocol): es un protocolo estándar que define

cómo dos objetos en diferentes procesos pueden comunicarse por medio de

intercambio de datos XML.

• SOAPHeader (Cabeceras SOAP): es una clase especial de bajo nivel para pasar

o devolver cabeceras SOAP. Es simplemente un contenedor de datos y no tiene

métodos especiales aparte de su constructor.

T

Página 79 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 80: Manual LDAP

• TACACS (Terminal Access Controller Access Control System/Sistema de

Control de Acceso Mediante Control del Acceso desde Terminales): es un

protocolo de autenticación remota que se usa para comunicarse con un servidor de

autenticación comúnmente usado en redes Unix. TACACS permite a un servidor de

acceso remoto comunicarse con un servidor de autenticación para determinar si el

usuario tiene acceso a la red.

• TCP/IP (Transfer Control Protocol / Internet Protocol): conjunto de protocolos

definidos por catedráticos en el proyecto ARPANet del Departamento de Defensa

de Estados Unidos, para la red universitaria Internet en los años setenta. Esta

familia de protocolos es un estándar para el intercambio de comunicaciones entre

computadores.

• TLD (Top Level Domain): son los nombres en lo alto de la jerarquía de los DNS.

Aparecen en los nombres de dominio, como "net" en "www.example.net". Los

administradores del "dominio de la raíz" o "zona de la raíz" ("root domain" or "root

zone") controlan lo que los TLDs sean reconocidos por los DNS. Los TLDs

comúnmente usados incluyen a .com, .net, .edu, .jp, .de, etc.

• TSIG (Transaction SIGnature): usa llaves o claves secretas compartidas y

germinador de una sola vía para proveer un significado seguro criptograficado,

para identificar cada punto final de una conexión así como el estar permitido a

hacer o responder a la actualización DNS.

• TTL (Time To Live): es el tiempo que un paquete permanece activo en una red.

Hay un numero TTL en cada header de paquete IP, y a medida que un paquete

pasa por cada router o enrutador, lo reduce por 1 este número. Si el paquete llega

a 0, los routers o enrutadores no seguirán reenviando el paquete.

• Tunneling: técnica que consiste en encapsular un protocolo de red sobre otro

(protocolo de red encapsulador) creando un túnel dentro de una red de

computadoras.

U

Página 80 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve

Page 81: Manual LDAP

• UDP (User Datagram Protocol): es un protocolo del nivel de transporte basado

en el intercambio de datagramas. Permite el envío de datagramas a través de la

red, sin que se haya establecido previamente una conexión; ya que el propio

datagrama incorpora suficiente información de direccionamiento en su cabecera.

• UNIX: es un sistema operativo portable, multitarea y multiusuario; desarrollado,

en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT&T.

W

• WAM (Wide Area Networks/Red de Área Amplia): es un tipo de red de

computadoras capaz de cubrir distancias desde unos 100km hasta unos 1000 km,

dando el servicio a un país o un continente.

X

• XML (Extensible Markup Language / Lenguaje de Marcas Ampliable): es un

metalenguaje extensible de etiquetas desarrollado por el Word Wide Web

Consortium (W3C). Consiste en una simplificación y adaptación del SGML y permite

definir la gramática de lenguajes específicos (de la misma manera que HTML es a

su vez un lenguaje definido por SGML). Por lo tanto, XML no es realmente un

lenguaje en particular, sino una manera de definir lenguajes para diferentes

necesidades.

• X.500: es un conjunto de estándares de redes de computadoras de la ITU-T sobre

servicios de directorio, entendidos estos como bases de datos de direcciones

electrónicas (o de otros tipos). Los protocolos definidos por X.500 incluyen,

protocolo de acceso al directorio (DAP), el protocolo de sistema de directorio, el

protocolo de ocultación de información de directorio, y el protocolo de gestión de

enlaces operativos de directorio.

Página 81 de 81Av. Andrés Bello, Torre BFC, Piso 16, Municipio Libertador, Caracas – Venezuela

Master: (+58 212) 597.45.90 – www.cnti.gob.ve