Upload
raul-martinez-farfan
View
127
Download
1
Embed Size (px)
Citation preview
Manual de integración de servicios LDAP bajo
Canaima GNU/Linux
Caracas, Octubre de 2009
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
• 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
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
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
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
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
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
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
• #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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
• 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
•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
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
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
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
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
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
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
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
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
• 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
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
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
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
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
• 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
• 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
• 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
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
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
• 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
• 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