Vous êtes sur la page 1sur 11

MANUAL DE ADMINISTRACIN DE OPENLDAP

TECNOLOGIA EN ADMINISTRACIN DE REDES CENTRO DE SERVICIOS Y GESTIN EMPRESARIAL SENA, MEDELLN

NOTAS PRELIMINARES:
Este tutorial describe el proceso de instalacin y administracin de openLDAP 2.4 en una mquina con Sistema Operativo Red Hat 6.0. Antes de seguir este tutorial se recomienda leer el manual de administracin de openLDAP 2.3 disponible en http://cursos.redsena.net En el manual administracin de openLDAP 2.3 se mostr la configuracin bsica del servidor de directorio openLDAP, usando el archivo de configuracin slapd.conf. La versin OpenLDAP 2.4 sigue soportando la configuracin mediante slapd.conf, sin embargo, al considerarse obsoleto, ser retirado de prximas versiones de openLDAP. En conclusin, se recomienda usar la gua de configuracin que se muestra a continuacin y no usar el archivo slapd.conf.

1. DISEO DE LA CONFIGURACIN DE OPENLDAP 2.4 La configuracin de slapd se almacena en un directorio LDAP especial con un esquema predefinido y DIT1. Hay objectClasses (Clases de objetos) especficas que se utilizan para llevar a las opciones de configuracin global, las definiciones de esquema, y las definiciones de base de datos backend, y una variedad de items. Un rbol de configuracin de ejemplo se muestra en la Figura:

Este rbol de configuracin (Tambin conocido como slapd-config) tiene una estructura muy especfica. La raz del rbol se llama cn=config y contiene opciones de configuracin global. Los ajustes adicionales se encuentran en las entradas hijas por separado. La mayora de los atributos y objectClasses utilizados en la configuracin de slapd tienen un prefijo de OLC (configuracin de OpenLDAP) en sus nombres.

DIT (rbol de informacin de directorio), en el cual la informacin (Entradas y contenedores), es representada mediante una estructura de rbol jerrquica.

Para visualizar la estructura de configuracin de openldap, puede usarse el comando tree:


# cd /etc/openldap # tree slapd.d/

El resultado del comando muestra un DIT para la configuracin de openLDAP que viene de ejemplo al instalarse el servidor LDAP.

Qu puede deducirse del resultado mostrado en la imagen? Existe un directorio llamado cn=config el cual contiene un subdirectorio y otras configuraciones adicionales definidas en archivos LDIF. La entrada cn=schema contiene los esquemas del sistema. En este caso, el servidor openLDAP reconoce los esquemas corba, ppolicy, collective, core, cosine, duaconf, duaconf, dyngroup, inetorgperson, java, misc y openldap. NOTA: Recuerde que en un esquema se definen las clases de objetos y sus diferentes atributos. Por ejemplo en el esquema inetOrgPerson se definen una clase llamada inetorgperson que tiene atributos tales como: uid, photo, displayName, etc. Todas estas son caractersticas de una persona. Configuracin especfica del Backend Se ha usado antes la palabra Backend, pero, cul es su significado? Histricamente la arquitectura del servidor OpenLDAP (slapd, Standalone LDAP Daemon) fue dividida entre una seccin frontal (Frontend) que maneja las conexiones de redes y el procesamiento del protocolo, y un base de datos dorsal o de segundo plano (backend) que trata nicamente con el almacenamiento de datos. La arquitectura es modular y una variedad de backends est disponible para interactuar con otras tecnologas, no slo bases de datos tradicionales.

Nota: En versiones antiguas (1.x), los trminos backend y database (base de datos) podan intercambiarse. Para ser precisos, un backend es una clase de interfaz de almacenamiento, y una base de datos es una instancia de un backend. El servidor slapd puede utilizar arbitrariamente varios backends en una sola vez, y puede tener arbitrariamente muchas instancias de cada backend (por ejemplo varias bases de datos) activas por vez. Tomado de Wikipedia La siguiente tabla muestra los backends ms usados por openLDAP
Types bdb config dnssrv hdb ldap ldif meta monitor passwd perl shell sql Description Berkeley DB transactional backend Slapd configuration backend DNS SRV backend Hierarchical variant of bdb backend Lightweight Directory Access Protocol (Proxy) backend Lightweight Data Interchange Format backend Meta Directory backend Monitor backend Provides read-only access to passwd(5) Perl Programmable backend Shell (extern program) backend SQL Programmable backend

2. MIGRACIN DESDE VERSIONES ANTERIORES A OPENLDAP 2.4

Si se tiene una versin de openLDAP menor a la 2.4 es posible realizar una migracin a la nueva estructura de configuracin (cn=config). Para esto ser necesario usar el archivo de configuracin slapd.conf, que an es soportado por openLDAP 2.4 pero que ser descartado para versiones posteriores. Es importante tener en cuenta que una vez se realice la migracin, ya no se usar ms el archivo slapd.conf. A continuacin se muestran los pasos: 1) Asegrese de que el archivo de configuracin slapd.conf sea estable y refleje la funcionalidad requerida. Luego edite el archivo slapd.conf y aada las siguientes 3 lneas antes de la definicin de cualquier base de datos (database):
# Antes de la primera definicin database database config # NOTE: the suffix is hardcoded as cn=config and # MUST not have a suffix directive # normal rules apply - rootdn can be anything you want # but MUST be under cn=config rootdn cn=admin,cn=config # use any of the supported password formats e.g. {SSHA} etc # or plaintext as shown rootpw mypassword

NOTA: Cambie mypassword por la contrasea que le asignar al administrador de la configuracin de openLDAP (cn=admin,cn=config). 2) Luego detenga el servicio slapd.
# service slapd stop

3) Crear el directorio slapd.d, a partir del cual se crea la estructura de arbol cn=config. (NOTA: Si ya existe el directorio, elimnelo, renombrelo o muvalo a otra ubicacin)
# cd /etc/openldap # mkdir slapd.d

4) Llevar a cabo la migracin usando el comando slaptest:


# slaptest f slapd.conf F slapd.d/ # tree slapd.d/

NOTA: El comando tree es usado para visualizar directorios, subdirectorios y archivos regulares en una estructura de rbol. 5) Luego se asignan usuario y grupo ldap como propietarios del directorio slapd.d
# chown -R ldap:ldap *

6) Por ltimo, renombre el archivo slapd.conf o muvalo a otro directorio, esto con el objetivo de que el daemon slapd no lea este archivo sino que use la configuracin creada en el directorio cn=config.
# mv slapd.conf slapd.conf.anterior

7) Luego inciamos el servicio openLDAP


# service slapd start

3. CONFIGURACIN DE OPENLDAP 2.4 PARTIENDO DE LA CONFIGURACIN DE EJEMPLO

Nota: Para seguir este procedimiento se supone que la mquina RED HAT 6.0 no tiene instalado el servidor openLDAP. En otras palabras, se parte desde cero. NO se usar el archivo de configuracin
slapd.conf

A continuacin se muestran los pasos:

1) Instalar servidor y cliente de openldap:


# yum install openldap-servers openldap-clients

2) Generar el password para el superusuario del openLDAP (El nico usuario que puede configurar el servidor):
# slappasswd New password: Re-enter new password: {SSHA}orb70sAjSlurUJydw5QK4VU3Za4EdJzp

3) Modificar el archivo LDIF para la configuracin global del servidor openLDAP. Los nicos parmetros que se configurar sern el DN del administrador y su respectivo password (El que se gener en el paso anterior)
# cd /etc/openldap/slapd.d/cn\=config # nano olcDatabase\=\{0\}config.ldif dn: olcDatabase={0}config objectClass: olcDatabaseConfig olcDatabase: {0}config olcAccess: {0}to * by * none olcAddContentAcl: TRUE olcLastMod: TRUE olcMaxDerefDepth: 15 olcReadOnly: FALSE olcRootDN: cn=admin,cn=config olcRootPW: {SSHA}orb70sAjSlurUJydw5QK4VU3Za4EdJzp olcMonitoring: FALSE structuralObjectClass: olcDatabaseConfig entryUUID: f513123c-9a88-1030-9c73-5fce4ccadb0c creatorsName: cn=config createTimestamp: 20111103165937Z entryCSN: 20111103165937.495080Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20111103165937Z

4) Para probar, usemos el cliente openldap ldapsearch. Se realizar una bsqueda en el directorio que incluya todas las entradas, incluyendo la configuracin global del servidor:
# ldapsearch -x -D cn=admin,cn=config -b cn=config W

Enter LDAP Password: Si todo est bien, mostrar unas entradas en formato LDIF, muchas de las cuales no entender, pero no se preocupe, ir comprendiendo poco a poco. 5) OpenLDAP permite manejar un backend por cada rbol de dominio. Por ejemplo, si usted desea crear un rbol de directorio para abc.com y para solutions.com, debe usar un backend por cada dominio.

El archivo de ejemplo olcDatabase={1}bdb.ldif tiene una configuracin tpica de un backend bdb para un dominio de ejemplo dc=my-domain, dc=com.
# nano olcDatabase={1}bdb.ldif dn: olcDatabase={1}bdb objectClass: olcDatabaseConfig objectClass: olcBdbConfig olcDatabase: {1}bdb olcSuffix: dc=my-domain,dc=com olcAddContentAcl: FALSE olcLastMod: TRUE olcMaxDerefDepth: 15 olcReadOnly: FALSE olcRootDN: cn=Manager,dc=my-domain,dc=com olcMonitoring: TRUE olcDbDirectory: /var/lib/ldap ...

Se modificar el archivo para el dominio particular y se agregarn los parmetros para el administrador de esta base de datos en especfica:
dn: olcDatabase={1}bdb objectClass: olcDatabaseConfig objectClass: olcBdbConfig olcDatabase: {1}bdb olcSuffix: dc=abc,dc=com olcAddContentAcl: FALSE olcLastMod: TRUE olcMaxDerefDepth: 15 olcReadOnly: FALSE olcRootDN: cn=admin,dc=abc,dc=com olcRootPW: myPassword olcMonitoring: TRUE olcDbDirectory: /var/lib/ldap ...

NOTA: Es recomendable usar otro password para este administrador de la base de datos para abc.com. Genere este password con el comando slappasswd. 6) Ahora inice el servicio
# service slapd start

NOTA: De aqu en adelante tenemos una gran ventaja con respecto a versiones anteriores de openLDAP: No ser necesario reiniciar el servidor para aplicar cambios en la configuracin global del servidor. Tambin puede crearse un nuevo arbol de directorio para un dominio adicional, con su respectiva base de datos, sin tener que reiniciar el servidor. 7) Con la configuracin inicial, el openLDAP no tiene entradas (objetos) en la base de datos creada para el sufijo dc=abc,dc=com, por esta razon es necesario ingresar por lo menos una

entrada padre en la que se especifique el componente de dominio. Cree el siguiente archivo y nmbrelo como desee (Lo normal es poner extensin .ldif, por ejemplo start.ldif):
# cd /root # nano start.ldif
# Organizacin o empresa dn: dc=abc,dc=com objectclass: top objectclass: dcObject objectclass: organization dc: abc description: Organizacion comercial de soluciones en networking o: abc # Unidad organizativa Usuarios (Contenedor para los usuarios) dn: ou=usuarios,dc=abc,dc=com objectclass: top objectclass: organizationalUnit ou: usuarios description: Contenedor para los usuarios # Unidad organizativa grupos (Contenedor para los grupos) dn: ou=groups,dc=abc,dc=com objectclass: top objectclass: organizationalUnit ou: groups description: Contenedor para los grupos

Este archivo, escrito en formato LDIF, crea tres entradas: Una entrada padre en la que se define el componente de dominio y la organizacin Una unidad organizativa llamada usuarios Una unidad organizativa llamada grupos NOTA 1: Si desea crear ms unidades organizativas puede usar el ejemplo como plantilla 8) Configurar el cliente LDAP Los comandos que se muestran en los siguientes pasos hacen parte del paquete openldapclients. Los comandos que se usarn en este tutorial sern ldapadd (Aadir entradas al directorio) y ldapsearch (Realizar bsquedas en el directorio) El cliente LDAP tambin tiene el siguiente archivo de configuracin /etc/openldap/ldap.conf el cual editaremos de la siguiente manera:
# # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. BASE URI dc=abc, dc=com ldap://192.168.10.3 12

#SIZELIMIT

#TIMELIMIT #DEREF

15 never

NOTA: Las lneas resaltadas indican el dominio y el URI (Identificador uniforme de recurso). Es recomendable usar un FQDN en el URI en vez de la direccin IP, aunque con la direccin IP funciona sin problema. NOTA: Si no se configura el URI, el cliente LDAP no podr conectarse con el servidor de directorio, a menos que en el comando (ldapsearch, ldapadd, etc) se especifique la URI. 9) Aadir la entrada al directorio, usando el comando ldapadd
# ldapadd -x -D cn=admin,dc=abc,dc=com -W -f start.ldif

A continuacin se detallan cada una de las opciones: x: Se usar autenticacin simple, en vez de SASL D: Se usa el nombre distinguido (DN) del usuario que tiene permisos para agregar entradas W: Se pedir al usuario que ingrese su password una vez se emita el comando (No confundir esta opcin con w minscula) f: A continuacin debe especificarse como parmetro el nombre del archivo LDIF NOTA: Recuerde que el archivo start.ldif fue creado en el paso 7 10) Buscar objetos en el directorio. Ejecute el comando ldapsearch para realizar una bsqueda de todos los objetos del directorio:
#ldapsearch -h 127.0.0.1 -x -b dc=abc,dc=com

NOTA: Cuando se trate de una consulta a la base de datos desde un host remoto no olvide cambiar 127.0.0.1 por la direccin IP del servidor o por el FQDN del servidor openldap. Si no se especifica el host, ldapsearch buscar en el archivo ldap.conf el URI. NOTA: Una vez ejecutado este comando deben aparecer las entradas que se aadieron a la base de datos con el archivo en formato LDIF. NOTA: Si requiere realizar bsquedas ms especficas no olvide consultar el manual del comando ldapsearch.

11) Agregar Usuarios a la base de datos LDAP Crear un usuario en el directorio LDAP. Hasta ahora solo se han creado entradas de unidades organizativas y la entrada padre, ahora se crearn usuarios. Cree el siguiente archivo y nmbrelo user.ldif:
dn: uid=usuario1,dc=abc,dc=com uid: usuario1 cn: usuario1 objectClass: account

objectClass: posixAccount objectClass: top userPassword: {SSHA}y9sFJVlq0DKkTJg4tk/gXQ4rnZpIyAaL loginShell: /bin/bash uidNumber: 10000 gidNumber: 10000 homeDirectory: /home/usuario1 gecos: usuario1

NOTAS: El DN de este objeto es uid=usuario1,dc=abc,dc=com Para este objeto se usaron las clases de objetos predefinidas en los esquemas (account, posixaccount, top, shadowAccount). La razn por la cual se usan estas clases tiene que ver con el tipo de atributos que tendr el objeto. En este caso el objeto va a tener un password encriptado (userPassword), uid, cn, una shell por defecto (/bin/bash), unas opciones para la cuenta (shadow), uidNumber, gidNumber, un directorio particular (/home/usuario1) y una descripcin gecos. Si desea aprender a qu clases de objetos pertenecen algunos atributos en particular consulte el siguiente enlace para los objetos ms utilizados: http://www.zytrax.com/books/ldap/ape/ El password fue generado de manera similar al paso 2, usando el comando slapdpasswd. Si desea agregar ms usuarios no olvide cambiar los siguientes atributos: uid, cn, uidNumber, gidNumber (en caso de que el usuario pertenezca a otro grupo), homeDirectory y gecos.

Agregar esta entrada al directorio


# ldapadd -x -D cn=admin,dc=abc,dc=com -W -f user.ldif

12) Agregar grupos a la base de datos LDAP Cree el siguiente archivo y nmbrelo group.ldif:
dn: cn=usuarios,dc=abc,dc=com objectClass: posixGroup gidNumber: 10000 cn: usuarios memberUid: usuario1 description: Grupo de usuarios

Agregar esta entrada al directorio


# ldapadd -x -D cn=admin,dc=abc,dc=com -W -f group.ldif

13) Actualizar la base de datos LDAP Use el siguiente comando en caso de que desee actualizar la informacin del grupo creado en el paso 12 group.ldif:

# ldapmodify -x -D cn=admin,dc=abc,dc=com -W -f group.ldif

4. CONFIGURAR LA AUTENTICACIN DE USUARIOS


1. Permitir la autenticacin de los usuarios. Ejecute el siguiente comando para abrir la consola de administracin de autenticacin y configure las opciones de LDAP:
# authconfig-tui

Figura 1. Habilitar autenticacin LDAP

Figura 2. Configurar el cliente LDAP para la autenticacin

2. Verificar que el usuario fue habilitado para la autenticacin. Para esto puede usar el comando que se muestra a continuacin:
# id usuario1 uid=10000(usuario1) gid=10000(usuarios) groups=10000(usuarios)

NOTA FINAL:

Existen varias herramientas para la administracin grfica del servidor de directorio openLDAP y de cualquier servidor de directorio que use el protocolo LDAP. Estos programas cliente permiten gestionar la base de datos mediante la creacin de objetos y contenedores de manera grfica. A continuacin se mencionan algunos:
Phpldapadmin (Web) Apache Directory Studio (Java) Jxplorer (Java) Luma Kldap LDAP Admin Tool (Privativo)

En otros manuales se mostrar la administracin grfica del servicio de directorio.

Elaborada por: Luis Felipe Londoo Muoz Ajustada por:

Fecha Fecha

18

03

2011

Vous aimerez peut-être aussi