¿No sabes por dónde empezar? Ayúdanos normalizando artículos.
¿Tienes experiencia? Crea alguno de estos artículos de actualidad.

Introducción al protocolo ldap

Revisión del 14:07 13 may 2014 de Jose jc.bayamo2 (discusión | contribuciones) (Página creada con '{{Ficha Software |nombre=LDAP |familia= |imagen=Ldaplogo.jpg |tamaño= |descripción=Protocolo Ligero de Acceso a Directorios es un protocolo a nivel de aplicación que permi...')
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
LDAP
Información sobre la plantilla
Ldaplogo.jpg
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(Lightweight Directory Access Protocol, protocolo ligero de acceso a directorios), es un protocolo del nivel de aplicación de la arquitectura TCP/IP que permite el acceso a un servicio de directorio ordenado y distribuido para buscar información en un entorno de red.LDAP puede utilizarse de muchas maneras: para autenticación, directorios compartidos (para los clientes de correo), libreta de direcciones, etc.

Estrucutura del directorio

El protocolo accede a directorios LDAP, que siguen la edición de 1993 del modelo X.500:

. Un directorio es un árbol de entradas de directorio.

. Una entrada consta de un conjunto de atributos.

. Un atributo tiene un nombre (un tipo de atributo o descripción de atributo) y uno o más valores. Los atributos son definidos en un esquema.

. Cada entrada tiene un identificador único: su Nombre distinguido Distinguished Name, DN).

Para importar y exportar información entre servidores ldap o para describir una serie de cambios que serán aplicados al directorio, el formato utilizado se llama LDIF (LDAP Data Interchange Format). LDIF almacena la información en jerarquías orientadas a objetos que luego serán transformadas al formato interno de la base de datos.

Un archivo LDIF tiene un formato similar a:

dn: dc=jovenclub, dc=cu

objectclass: top

objectclass:

organizationalUnit

dn: ou=groups, dc=jovenclub, dc=cu

objectclass: top

objectclass:

organizationalUnit

ou: groups

dn: ou=people, dc=jovenclub, dc=cu

objectclass: top

objectclass:

organizationalUnit

ou: people

dn: cn = Pepe Perez, ou=people,

dc=jovenclub, dc=cu

cn: Pepe Perez

sn: Perez

objectclass: top

objectclass: person

objectclass: posixAccount

objectclass: shadowAccount

uid: pepe

userpassword:

{crypt}p1pss2ii(0pgbs*do&@ = )eksd

uidnumber:104

gidnumber:100

loginShell:/bin/bash

homeDirectory: /home/pepe

Creación y mantenimiento de las BD

Existen dos métodos para insertar datos en la base de datos de Ldap. El primero es fácil y adecuado para pequeñas cantidades de datos, es interactivo y se deben utilizar herramientas tales como ldapadd para insertar nuevas entradas.

El segundo se debe trabajar fuera de línea, es el adecuado para grandes BD y se utiliza el comando slapadd incluido con slapd.

. Verificar que contiene los siguientes atributos en slapd.conf: - suffix (top del directorio, por ejemplo, suffix “dc=jovenclub,dc=cu”) -directory /var/lib/ldap/autenticar (directorio donde se crearán los índices y que pueda escribir slapd)

Primer caso:

Una vez definido el slapd.conf, se debe ejecutar el comando: --# ldapadd -x -D "cn=admin,dc=mimundo,dc=com" -f

ejemplo.ldif -W

Los argumentos utilizados pueden ser:

-x: autenticación simple

-W: solicitar clave de acceso

-D binddn: nombre distinguido (dn) a utilizar

-h anfitrión: servidor Ldap a acceder

-f fichero : fichero a utilizar

-w passwd:contraseña del administrador del servidor

Segundo caso:

Una vez definido el slapd.conf, se debe ejecutar el comando: --# slapadd -v -l ejemplo.ldif -f /etc/ldap/slapd.conf Los argumentos utilizados pueden ser: • -l: archivo en formato LDFI. • -f: archivo de configuración del servidor, donde se indican cómo crear los índices. • -v: habilitar el modo verbose

Configuración del servidor

Instale los paquetes necesarios como su.

--# apt-get install slapd

Durante la instalación te piden: la configuración del dominio y de las contraseñas del fichero slapd.conf.

--# slappasswd -h {CRYPT}

Copie y respalde el criptograma resultante. Añadir a etc/ldap/slapd.conf:

password-hash {CRYPT}

rootpw {CRYPT}CnTL4BZA65eXU #La clave que se generó anteriormente

rootdn "cn=admin,dc=tele,dc=grm,dc=jovenclub,dc=cu"

Creación de directorios

Con fines de organización se creará un directorio específico para este directorio y se configurará con permisos de acceso exclusivamente al usuario y grupo openldap.

--# cd /var/lib/ldap --# mkdir autenticar replog --# chown -R openldap:openldap autenticar replog --# chmod -R 700 autenticar replog

Crear un archivo init.ldif donde nombre 3 unidades organizativas: users, groups y computers.

--# mcedit /etc/ldap/init.ldif dn: dc=tele,dc=grm,dc=jovenclub,dc=cu

objectClass: top

objectClass: dcObject

objectClass: organization

o: GRM

dc: tele

dn:

cn=admin,dc=tele,dc=grm,dc=jovenclub,dc=cu

objectClass: simpleSecurityObject

objectClass: organizationalRole

cn: admin

Descripción: administrador de LDAP

userPassword: {CRYPT}CnTL4BZA65eXU

--#introduzca el resultado de generar

slappasswd.

dn: ou=users,dc=tele,dc=grm,dc=jovenclub,dc=cu

objectClass: organizationalUnit

ou: users

dn: ou=groups,dc=tele,dc=grm,dc=jovenclub,dc=cu

objectClass: organizationalUnit

ou: groups

dn:ou=computers,dc=tele,dc=grm,dc=jovenclub,dc=cu

objectClass: organizationalUnit

ou: computers

-Para inicializar la base de datos

--# /etc/init.d/slapd stop

-Crear un nuevo directorio donde se almacenará la configuración de la base de datos ldap. Este directorio /var/lib/ldap/autenticar ya lo habíamos creado anteriormente.

--# mkdir /var/lib/ldap/autenticar

-Accede al directorio donde se guardó el archivo creado anteriormente init.ldif

--# cd /etc/ldap

-Luego añade los valores de ldif a la base de datos de ldap que se encuentra en /var/lib/ldap/autenticar.(Ver man slapadd)

--# slapadd -v -l init.ldif -f /etc/ldap/slapd.conf

-Después cambia el dueño y el grupo del directorio creado anteriormente

--# chown -R openldap:openldap /var/lib/ldap/autenticar/*

Para la actualización de la configuración de openldap -Creo un directorio

--# cd /etc/ldap

--#mkdir slapd.d

Ejecuto el siguiente comando cuyo resultado se muestra a continuación.

--# slaptest -f slapd.conf -F slapd.d config file testing succeeded

Le cambio el dueño y el grupo al directorio creado

--# chown -R openldap: openldap slapd.d

Para hacer una búsqueda y confirmar la configuración -Iniciar nuestro servidor

root@debian5:~# /etc/init.d/slapd start

-Ahora revisaremos que el servidor slapd haya abierto el socket TCP/IP, en específico veremos que nos abra el puerto TCP/389.

root@debian5:~# netstat -pltn | grep slapd

tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 4436/slapd

tcp6 0 0 :::389 :::* LISTEN 4436/slapd

-Ahora haremos una consulta al servidor LDAP para ver si responde con lo más básico y ver que está funcionando.

root@debian5:~# ldapsearch -x -b “” -s base “(objectclass=*)”

namingContexts

root@debian5:~# ldapsearch -x -D

cn=admin,dc=tele,dc=grm,dc=jovenclub,dc=cu" b

"dc=tele,dc=grm,dc=jovenclub,dc=cu" -W

Crear una etiqueta nueva

-Para poblar el directorio de Ldap se debe utilizar como recurso los archivos *.ldif.

-Lo primero que se debe crear en el LDAP es la Organización, según los datos que se suministran. Crear con un editor un archivo llamado AddOrg.ldif y suministrar los siguientes datos:

dn: dc=midominio,dc=cu

objectClass: dcObject

objectClass: organization

o: GRM

dc: midominio

-Para añadir la información a la base de datos de LDAP utilizamos el siguiente comando: --# slapadd -v -l AddOrg.ldif -f /etc/ldap/slapd.conf -La organización es lo primero que se debe crear ya que a partir de la creación de esta es que se inicia la creación del árbol del directorio LDAP. -Luego se debe crear un archivo llamado AddOU.ldif (crearemos una Unidad Organizacional) e ingresaremos los siguientes datos:

dn: ou=Coordinacion,dc=midominio,dc=cu

ou: Coordinacion

objectClass: organizationalUnit

description: Coordinacion de MiDominio

-Después de creado se debe ingresar la nueva etiqueta al directorio de la siguiente forma: --# slapadd -v -l AddOU.ldif -f /etc/ldap/slapd.conf Se debe crear un archivo que puede llamarse AddPerson.ldif con los siguientes datos, para añadir a un usuario a la base de datos:

dn: uid=jperez,ou=Coordinacion,

dc=midominio,dc=com

objectclass: top

objectclass: person

objectclass: organizationalPerson

objectclass: inetOrgPerson

cn: Jose Perez

sn: Perez

--# slapadd -v -l AddPerson.ldif -f

/etc/ldap/slapd.conf

givenname: Jose

uid: jperez

ou: Coordinacion

description: Coordinador

MiDominio

telephonenumber: xxxxxxxx

mail: jperez(arroba)midominio.cu

streetAddress: Ave. Camilo Cienfuegos

userpassword: jose

Ejemplo de mantenimiento de la BD de ldap

Modificar una Etiqueta

-Para modificar un atributo de una etiqueta creada, se debe crear un archivo de extensión *.ldif como por ejemplo ModPerson.ldif con los siguientes datos: dn: cn=Jose Perez,dc=midominio,dc=cu

changetype: modify

add: telephonenumber

telephonenumber: xxxxxxx

-Luego se ejecuta el comando: --# slapadd -v -l ModPerson.ldif -f /etc/ldap/slapd.conf

Borrar una Etiqueta

-Para borrar una etiqueta (para efectos del ejemplo borrar una persona), se debe crear un archivo *.ldif con las siguientes características:

dn: cn=Jose Perez,dc=midominio,dc=cu

changetype: delete

- Luego se ejecuta el siguiente comando:

--# slapadd -v -l AddPerson.ldif -f /etc/ldap/slapd.conf

Realizar búsquedas en el directorio y confirmar la configuración

Búsquedas en la BD de LDAP:

--# ldapsearch -x -b "dc=midominio,dc=com"

“objectClass=*”

--# ldapsearch -x -D "cn=admin,dc=midominio,dc=cu" -b

"dc=midominio,dc=cu" -W

Respaldo de datos.

-Debe detenerse el servicio de LDAP antes de proceder con el respaldo de datos.

--# /etc/init.d/slapd stop

-A continuación, se utiliza la herramienta slapcat, utilizando el fichero de configuración /etc/ldap/slapd.conf.

--# slapcat -v -f /etc/ldap/slapd.conf -l respaldo-$(date +%Y %m%d).ldif

-Concluido el proceso de respaldo de datos, puede iniciarse de nuevo el servicio de ldap.

--# /etc/init.d/slapd restart

Restauración de datos.

-El procedimiento requiere detener el servicio.

--# /etc/init.d/slapd stop

-Debe eliminarse los datos del directorio a restaurar.

--# rm -f /var/lib/ldap/autenticar/*

-A continuación, se utiliza la herramienta slapadd para cargar los datos desde un fichero *.ldif de respaldo.

--# slapadd -v -c -l respaldo-20100629.ldif -f /etc/ldap/slapd.conf

Regenerar índices

-Se debe ejecutar la herramienta slapindex, que se utiliza para regenerar los índices LDAP.

--# slapindex

-Concluido el proceso de restauración de datos, puede iniciarse de nuevo el servicio de ldap.

--# /etc/init.d/slapd restart

Administración del LDAP vía web

Para administrar el servidor LDAP vía web, se puede utilizar phpldapadmin.

-Instalar el PHP con soporte LDAP --# apt-get install php5-ldap

--# /etc/init.d/apache2 force-reload

--# apt-get install phpldapadmin

-Acceder al LDAP vía web con esta url: http://localhost/phpldapadmin

login=> cn=admin,dc=example,dc=cu

Password => El Password del usuario admin

-Queda listo para crear el directorio.

Fuentes

  • Administración Avanzada de GNU/Linux. Josep Jorba Esteve y Remo Suppi Boldrito.
  • Implementación de Servidores con GNU/Linux. Joel Barrios Dueñas.