OpenLDAP es una implementación libre y de código abierto del protocolo Lightweight Directory Access Protocol (Protocolo de directorio de acceso ligero) desarrollada por el proyecto OpenLDAP. Está liberada bajo su propia licencia OpenLDAP Public License. LDAPLDAP. Este software también corre en plataformas BSD, AIX, HP-UX, Mac OS X, Solaris, Microsoft Windows (NT y derivados, incluyendo 2000, XP, Vista), y z/OS. es un protocolo de comunicación independiente de la plataforma. Muchas distribuciones GNU/Linux incluyen el software OpenLDAP para el soporte
Se usó inicialmente como un Front-end o interfaz final para x.500, pero también puede usarse con servidores de directorio únicos y con otros tipos de servidores de directorio
¿Qué es un directorio?
Un directorio es como una base de datos, pero en general contiene información más descriptiva y más basada en atributos.
La información contenida en un directorio normalmente se lee mucho más de lo que se escribe. Como consecuencia los directorios no implementan normalmente los complicados esquemas para transacciones o esquemas de reducción que las bases de datos utilizan para llevar a cabo actualizaciones complejas de grandes volúmenes de datos, Las actualizaciones en un directorio son usualmente cambios
sencillos de todo o nada, si es que permiten algo.
Ventajas en el uso de LDAP
Un directorio LDAP destaca sobre los demás tipos de bases de datos por las siguientes características:
- es muy rápido en la lectura de registros
- permite replicar el servidor de forma muy sencilla y económica
- muchas aplicaciones de todo tipo tienen interfaces de conexión a LDAP y se pueden integrar fácilmente
- Dispone de un modelo de nombres globales que asegura que todas las entradas son únicas
Instalacion:
Lo primero que haremos sera descargar los paquetes nesecerios para OpenLDAP estos son:
openldap-clients.
Renombrar sldap.conf.bak
Ahora que ya tenemos instalados nuestros paquetes OpenLDAP procedere a renombrar el archivo de configuracion de OpenLDAP, me explico, yo estoy usando CentOS en su versión 6.0, en donde su archivo de configuracion es sldap.conf.bak para un correcto funcionamiento renombraremos este archivo de configuracion y lo llamaremos sldap.conf. Este proceso lo hacemos con la ayuda del comando mv
mv /etc/openldap/slap.conf.bak /etc/openldap/slapd.conf
instalar editor nano (opcional)
ahora que tenemos nuestro archivo de configuración con el nombre correcto ingresaremos a el para configurarlo. yo normalmente uso nano para editar los archivos pero CentOS 6.0 no trae este editor, viene por defecto con otros editores como vim y gedit. asi que instalare nano
editar slapd.conf
Ahora con mi editor de preferencia instalado editaremos el archivo de configuración del OpenLDAP el cual se encuentra dentro del directorio OpenLDAP
nano /etcopenldap/slapd.conf
nos encontramos con un archivo de configuracion con unos parametros por defecto, este archivo lo editaremos y cambiaremos esos parametros de acuerdo con nuestras especificaciones:
El nombre de la base de datos
suffix: "dc=ABCx,dc=com"
El dominio
rootdn: "cn=Redes,dc=ABCx,dc=com"
El root o administrador de dominio
rootpw: {SSHA}**********************
Password enctriptado
Proceso de encriptacion o cifrado
para cifrar una contraseña ingresamos el comando sldappasswd e ingresamos el password que vamos a encriptar, el resultado sera la contraseña cifrada la cual copiaremos en la linea rootpw del archivo de configuración slapd.conf
Copiado de plantilla de base de datos
en el sistema viene un ejemplo de un archivo de base de datos, esta es una plantilla llamada DB_CONFIG con la ayuda del comando find ubicaremos este archivo y lo copiaremos a /var/lib/ldap/ ademas de esto tendremos que cambiar de propietario a este directorio, ahora el propietario sera ldap y pertenecerá al grupo ldap
buscar el archivo:
find / -iname db_config.example
Copiar archivo a /var/lib/ldap
cp /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example /var/lib/ldap/
cambiar de propietario
chown -R ldap:ldap /var/lib/ldap
editar ldap.conf
ahora editaremos el archivo ldap.conf el cual se encuentra dentro de /etc/openldap alli añadiremos en BASE nuestro dominio y en URI copiaremos ldap://seguida de la direccion ip del servidor
Creacion de unidades organizativas
dentro de /etc/openldap/ creacermos un archivo .ldif con un nombre X, yo lo llame Direccion general en este archivo crearemos nuestro dominio (ABCx.com) y algunas unidades organizaticas (Direccion general, Sistemas, Logistica, compras etc)
les explicare en que consiste el anterior archivo de configuracion
dn: dc=gABCx,dc=com
Dominio
ObjectClass: Object
ObjectClass: Organization
Son los tipos de objeto que utilizaremos.
dc: ABCx
Es el nombre distinguido de la entrada padre.
description:
o:
Son Objetos pertenecientes al ObjectClass organization.
ObjectClass: Organization
Son los tipos de objeto que utilizaremos.
dc: ABCx
Es el nombre distinguido de la entrada padre.
description:
o:
Son Objetos pertenecientes al ObjectClass organization.
Creacion de usuarios
Ahora que ya tenemos el dominio y las unidades organizativas vamos a añadirle usuarios a estas para ello crearemos otro archivo .ldif con nombre X dentro de /etc/openldap yo lo llame UserDireccionGeneral.ldif y alli estaran los usuarios que pertenecen a la unidad organizativa direccion general
Usuario Tiesto perteneciente a la unidad organizativa Direccion General
Usuario Hardwell perteneciente a la unidad organizativa Compras
Asi como los ejemplos anteriores podemos crear tantos usuarios como queramos y ubicarlos en la unidad organizatica que sea necesario
Ingresar Dominio, unidades organizativas y usuarios a la base de datos (ldapadd)
Ahora que ya tenemos un dominio con algunas unidades organizativas y unos usarios incorporados a ellas podemos montar esta informacion a nuestra base de datos esto lo haremos con ayuda del comando ldapadd con la siguiente sintaxis
ldapadd -x -D 'cn=Redes,dc=ABCx,dc=com' -W -f /etc/openldap/UserCompras.ldif
-x: Usar autenticacion simple
-D: Usar el nombre distinguido de administrador ldap
-W: Requerir contraseña
-f: Asignar el archivo .ldif de donde se copiara la informacion
-D: Usar el nombre distinguido de administrador ldap
-W: Requerir contraseña
-f: Asignar el archivo .ldif de donde se copiara la informacion
Luego de insertar la linea anterior y copiar la contraseña del Administrador OpenLDAP (Redes) si el resultado fue satisfactorio la respuesta sera adding new entry 'uid=Hardwell,ou=compras,ou=Direccion general,dc=ABCx,dc=com'
Esto quiere decir que se agrego la entrada con el usuario Hardwell a la unidad organizativa compras que se encuentra dentro de dirección general perteneciente al dominio ABCx.com
Busqueda de entradas (ldapsearch)
las entradas fueron ingresadas correctamente. ¿Pero como buscarlas? para eso utilizamos el comando ldapsearch el cual nos sirve para relizar diversas busquedas, podemos buscar por unidades organizativas, por dominio, por usuario y cada uno de sus atributos etc
en este caso veremos la busqueda de la unidad organizativa Direccion general para esto usaremos la sintaxis
ldapsearch -x -b 'dirección general,dc=ABCx,dc=com'
nos despliega la unidad organizativa Dirección general ademas de Sistemas ya que esta se encuentra dentro de Dirección General
Realizare una busqueda por usuario. Buscare el usuario DavidGuetta para esto la sintaxis sera la siguiente
ldapsearch -x '(uidDavidGuetta)'
El resultado es que el usuario DavidGuetta se encuentra dentro de la unidad organizativa Logistica la cual se encuentra dentro de Dirección general perteneciente al dominio ABCx.com
Asi termina esta entrada sobre instalación y administración de OpenLDAP con la asignación correcta de entradas en una base de datos y búsquedas exitosas
FIN !