lunes, 4 de junio de 2012

Openldap en Centos 6


QUE ES LDAP?

LDAP (Protocolo compacto de acceso a directorios) es un protocolo estándar que permite administrar directorios, esto es, acceder a bases de información de usuarios de una red mediante protocolos TCP/IP.
Las bases de información generalmente están relacionadas con los usuarios, pero, algunas veces, se utilizan con otros propósitos, como el de administrar el hardware de una compañía.


 QUE ES UN DIRECTORIO?

Un directorio no es ni mas ni menos que una base de datos, pero una base de datos con unas peculiaridades que la hacen un tanto especial. Un directorio esta optimizado para realizar lecturas, navegaciones y grandes búsquedas sobre el, la información en el está organizada de modo jerarquico ( estructura típica de un arbol ) y este contiene objetos de una clase determinada con distintos atributos que son los que realmente contienen la información.


QUE ES OPENLDAP?

OpenLDAP es una implementación libre y de código abierto del protocolo Lightweight Directory Access Protocol (LDAP) desarrollada por el proyecto OpenLDAP.



1. Instalacion


 Primero vamos a descargar los paquetes del servidor openldap y del cliente openldap.
  • yum install openldap-servers openldap-clients


Ahora vamos a definir una password de root para ldap en el archivo de configuración del servidor ldap, para ello se debe copiar la línea encerrada en el cuadro verde para pegarla en el archivo de configuración en el siguiente paso. El password ha sido cifrado usando el algoritmo SSHA.
  • Slappasswd


 Nos dirigimos a el archivo de configuracion.
  •  nano /etc/openldap/slapd.conf.back
 

Editamos los siguientes parametros.
  • Database: Define el tipo de base de datos, dbd en este caso.
  • Suffix: Especifica la parte del árbol de directorios LDAP de la que se va a ocupar este servidor.
  • Rootdn: sólo se utiliza para autenticar al administrador de LDAP.
  • Rootpw: Se define la contraseña de administrador.


Cambiamos el nombre a el archivo de configuración slapd.conf.back y a la carpeta slapd.d, esto se hace para que no haya un error en las credenciales a la hora de agregar las entradas al servidor ldap.
  • mv slapd.conf.back slapd.conf
  • mv slapd.d slapd.d.back


Luego copiamos la base de datos DB_CONFIG.example, alojada en el directorio /usr/share/doc/openldap-servers-2.1.19

 


Desde alli la copiamos a /var/lib/ldap.
  • cp /DB_CONFIG.example /var/lib/ldap/DB_CONFIG



Ahora configuramos al usuario ldap como el propietario de los archivos.
  • chown -R ldap:ldap /var/lib/ldap/

Iniciamos el servicio.
  • service slapd start



2. Introducir datos en el directorio LDAP

 

Por razones prácticas se recomienda añadir los objetos a la base de datos en forma de paquetes. Con este fin, LDAP contempla el formato LDIF (LDAP Data Interchange Format). Un archivo LDIF es un simple archivo de texto que puede estar formado por un número indeterminado de pares de atributo y valor. 
 El archivo ldif lo crearemos en el home del usuario en este caso.
  • nano abc2011.ldif


Al editarlo, primero se debe ingresar la entrada padre en la que se especifique el dominio raíz sobre el cual se va a estar el servidor ldap.



Después de ingresar la entrada padre, se procede a editar las entradas para las unidades organizativas.
 

 
Si desea crear una unidad organizativa dentro de otra, puede editar el dn de esta forma:


Agregamos las entradas al servidor ldap. ldapadd -x -D 'cn=admin,dc=abc2011,dc=com' -W -f abc2011.ldif
  • -x: Indica que en este caso no se va a producir una autenticación a través de SASL.         
  • -D: Identifica al usuario que realiza esta operación. Introduzca aquí el DN válido del administrador   tal y como ha sido configurado en slapd.conf.
  • -W: Evita tener que introducir la contraseña en la línea de comandos (texto en claro) y activa una pregunta por separado de la contraseña. Dicha contraseña ha sido especificada previamente en slapd.conf en la entrada rootpw. 
  • -f: Pasa el archivo al servidor.


Cliente ldap: Cuando el sistema intente interrogar al servidor ldap deberá conocer una serie de datos básicos y obvios: donde está el servidor ldap, cómo se llama la raíz del árbol, como acceder con privilegios administrativos y como acceder para consultar datos. Cuando el cliente conoce esta información está preparado para consultar a un servidor ldap.
  • nano /etc/openldap/ldap.conf


Indicamos el servidor ldap y la raíz del árbol.




3. Agregar usuarios a la base de datos Ldap.


Los datos de usuario de los empleados de cada uno de los departamentos pueden introducirse en archivos LDIF adicionales.


Este es un ejemplo de un archivo ldif de un usuario. Lo que se encuentra en los recuadros de color azul,  son las clases de objetos las cuales definen la colección de atributos que pueden usarse para definir una entrada. Lo que se encuentra en los recuadros de color verde, son los atributos mínimos que debe tener un “objeCtclass”.



Ahora solo queda agregar estas entradas con el comando ldapadd.

Luego de haber agregado los usuarios, procedemos a configurar la autenticación de estos.
  • authconfig-tui

 
Nos aparece un mensaje de alerta pidiendo instalar el paquete nss-pam-ldapd, para poder seguir con la autenticación.



Instalamos el paquete faltante.
  • yum install nss-pam-ldapd


Seleccionamos las opciones necesarias para la autenticación, y damos siguiente.



Aquí debemos especificar el servidor ldap que en este caso ponemos la dirección loopback, y el DN de base dc=abc2011,dc=com. 




NOTA: Después de haber configurado la autenticación, en caso de reiniciar o apagar el equipo, el sistema no nos permitirá ingresar con el usuario administrador, de tal manera deberá ingresar con el usuario root.



Solo quedara verificar que verdaderamente los usuarios se autentifiquen, para esto se ingresa el comando id y el nombre del usuario. 




4. Busqueda de objetos


Para realizar búsquedas de todos objetos en el directorio ejecuta el comando ldapsearch, aparecerán todas las entradas añadidas.



Si desea realizar búsquedas más específicas, por ejemplo de una unidad organizativa puede ejecutar el siguiente comando.



Búsqueda de un usuario especifico.






































No hay comentarios:

Publicar un comentario