Página principal
  | Errores | Ayuda | Página de Inicio Versión Imprimible

 :: SECCIONES
 Actualidad
 Noticias
 Cursos
 Programas gratis
 Hardware
 Linux
 Windows
 Glosario Informat.
 Glosario Extens.
 Humor PC
 Ocio y Juegos
 Webmasters
 Guía buscadores
:: ENCUESTAS
Si usas Windows ¿qué versión?
Windows 95
Windows 98
Windows Me
Windows NT
Windows 2000
Windows XP
Windows 2003
Windows Vista
Otra version...



Ver resultados

Ver encuestas anteriores y comentarios

Version 2.02


Estás en: 

Página principal » linux » openldap


Google
 
Web MundoPC.NET

Servicio de directorio OpenLDAP (2)


Instalación del servicio

Primero vamos a empezar instalando los paquetes del servidor OpenLDAP, en este artículo hemos utilizado la distribución Debian etch. Los paquetes iniciales necesarios son: slapd y ldap-utils. Una vez instalados los paquetes procedimos a su configuración inicial, aunque Debian ya preconfigura algunos parámetros.

¡Atención! Antes de iniciar la configuración nos puede pedir si se quiere omitir la configuración inicial, si dijésemos que sí no configuraría nada, de lo contrarionos empezará a pedir algunos parámetros como el nombre de nuestro dominio (Figura 1) que utilizará LDAP como el DN base, el nombre de nuestra organización o empresa (Figura 2), la contraseña del usuario de administración del OpenLDAP. Una vez realizada la tarea de instalación el servicio arranca automáticamente, creando así la estructura básica del directorio LDAP y el usuario de administración como se puede observar en la Figura 3.

FIGURA 1. Configuración del nombre del dominio para el DN base
FIGURA 1. Configuración del nombre del dominio para el DN base

FIGURA 2. Nombre de la organización
FIGURA 2. Nombre de la organización

FIGURA 3. Estructura inicial del directorio LDAP
FIGURA 3. Estructura inicial del directorio LDAP

Configuración básica

Ahora vamos a revisar el fichero de configuración que nos genera el programa de instalación de manera automática y que reside en /etc/ldap llamado slapd.conf (Listado 4).

Listado 4. Fichero slapd.conf de configuración básico (fragmento)
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel 0
...
backend bdb
checkpoint 512 30
database bdb
suffix "dc=linuxplus,dc=com"
directory "/var/lib/ldap"
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index objectClass eq
...

En este fichero podemos encontrar la configuración referente al servidor slapd, como por ejemplo las inclusiones de los diferentes tipos de objetos (objectClass) y esquemas (schemas). También parámetros como el tipo de base de datos que utiliza, normalmente es bdb (Berkeley Database),la raíz del directorio o base DN y definición
de permisos de los diferentes usuarios en el OpenLDAP. Inicialmente no tendremos que añadir nada más a la configuración, como mucho se podrían incluir otros schemas con la directiva include pero esto lo veremos más adelante. Vamos a ver algunas de las principales directivas del fichero de configuración slapd.conf:

• include: Nos permite incluir un fichero donde esté la definición de un schema.
• database: Define qué tipo de base de datos utiliza el directorio, por defecto bdb.
• suffix: Donde definimos cual es la raíz o base del directorio, por ejemplo dc = linuxplus, dc = com.
• access: Define el control de acceso de un usuario sobre uno o varios objetos del directorio.
• directory: Ubicación física de la base de datos del directorio OpenLDAP.
• index: Nos permite configurar qué atributos deseamos que sean indexados para poder hacer búsquedas con ellos.

Es recomendable que una vez acabada la instalación revisemos dicho fichero para asegurarnos que todo está como deseamos, revisaremos algunas directivas como suffix para ver si se corresponden a lo que hemos configurado inicialmente desde la instalación. En cuanto al control de acceso inicial, OpenLDAP permite la lectura total a cualquier usuario, la modificación de la contraseña de un usuario existente por el mismo, y el control total sobre el directorio para el administrador (admin) como podemos observar en el Listado 5.

Listado 5. Fichero de configuración smb.conf (Accesos)
...
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=linuxplus,dc=com" write
by anonymous auth
by self write
by * none
access to dn.base="" by * read
access to *
by dn="cn=admin,dc=linuxplus,dc=com" write
by * read
...

La configuración de accesos es simple, la directiva access define el/los permisos de un usuario sobre uno o varios objetos o atributos del directorio.
Simplemente decimos con access to a qué objeto o atributo queremos aplicar este acceso, en nuestro caso el primer bloque define que el administrador puede escribir (modificar) la contraseña de un usuario cualquiera, esto se define con by, en el Listado 5 lo podemos ver en la primera línea access to

attrs=userPassword, shadowLastChange

(da acceso a los atributos userPassword y shadowLastChange) al usuario admin (by dn="cn=admin,dc=linuxplus,dc=com" write) y a los propios usuarios con (by self write) y a los otros que no tengan acceso a ninguno de los dos atributos (by * none).

Configuración del directorio

Inicialmente el directorio solamente tiene dos objetos, la raíz y el usuario de administración, como se puede ver en la Figura 3, esto lo podemos
comprobar con el comando slapcat (Listado 6) donde tenemos la raíz representada por el dn (Distinguished Name) dc=linuxplus,dc=com y el usuario de administración representado por cn=admin, dc=linuxplus, dc=com.

Listado 6. Estructura inicial de la base de datos OpenLDAP
dn: dc=linuxplus,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: linuxplus
dc: linuxplus
structuralObjectClass: organization
entryUUID: bb830a32-0d37-102c-9b66-d766b7dd8644
creatorsName:
modifiersName:
createTimestamp: 20071012175307Z
modifyTimestamp: 20071012175307Z
entryCSN: 20071012175307Z#000000#00#000000
dn: cn=admin,dc=linuxplus,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e2NyeXB0fTZsTk52blN6VDhSb2s=
structuralObjectClass: organizationalRole
entryUUID: bb8ddaca-0d37-102c-9b67-d766b7dd8644
creatorsName:
modifiersName:
createTimestamp: 20071012175307Z
modifyTimestamp: 20071012175307Z
entryCSN: 20071012175307Z#000001#00#000000

A partir de aquí podemos confeccionar la estructura de nuestra empresa dentro del directorio, usaremos la estructura que marca el RFC 2307 para definir la base para nuestro directorio, por lo tanto lo primero es crear las unidades organizativas que van a depender directamente de nuestra organización (dc=linuxplus, dc=com) como podemos observar en la Figura 4.

FIGURA 4. Configuración de las unidades organizativas básicas
FIGURA 4. Configuración de las unidades organizativas básicas

Para realizar esta operación nos vamos ayudar de la utilidad ldapadd y ficheros en formato LDIF que crearemos. Lo primero es crear un fichero en formato LDIF, llamado por ejemplo crearEstructura.ldif como está especificado en el Listado 7,

Listado 7. Fichero para la creación de las unidades organizativas básicas
dn: ou=People, dc=linuxplus, dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group, dc=linuxplus, dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
dn: ou=Mounts, dc=linuxplus, dc=com
ou: Mounts
objectClass: top
objectClass: organizationalUnit
dn: ou=Hosts, dc=linuxplus, dc=com
ou: Hosts
objectClass: top
objectClass: organizationalUnit

una vez creado usando el usuario root ejecutaremos la siguiente línea:

ldapadd -x -D 'cn=admin,dc=linuxplus,dc=com' -W -f crearEstructura.ldif

esto nos va generar las unidades organizativas representadas en la Figura 4. Las unidades organizativas People y Users muchas veces suelen ser una sola o Users o bien People, aunque la mayoría de veces People sólo se utiliza para almacenar contactos como en una agenda de direcciones y Users para almacenar cuentas de usuario, en nuestro caso solamente vamos a crear People y lo vamos a utilizar para las dos cosas. Las unidades restantes Mounts y Hosts se utilizan para clientes Unix para poder almacenar la configuración de puntos de montaje remotos, por ejemplo en caso de que los clientes no tengan el directorio /home en local si no en un servidor, pues dentro de Mounts guardaríamos la configuración de dónde tienen que ir a buscar los clientes el directorio /home. Por último la unidad organizativa Hosts se usa como base de datos de nombres de equipos con sus respectivas IP's, actuaría como sistema de resolución de nombres muy primitivo, la misma función que tiene el fichero /etc/hosts de un equipo con GNU/Linux pero con la ventaja de que no tendríamos que configurar cada fichero de cada máquina, si no que estaría centralizado en el servidor LDAP.

Siguiente

Páginas: 1 2 3 4




 :: SERVICIOS
 Directorio
 Libro Visitas
 Foro


| Logo MundoPC.NET | Publicidad | Quienes Somos | Aviso Legal | Contactar | GMC Contables | Translate |
  Hay 6 visitantes. Record on-line: 553 © MundoPC.NET C.B. 2000 - 2008