Openldap Copia

26
OPENLDAP LDAP es el acrónimo de Lightweight Directory Access Protocolo, es el cual implementa el protocolo X.500. El directorio es utilizado para la centralización de autenticación de usuarios. Los clientes para el usuario de directorio son muy variados entre los que encontramos servidores de correo, usuarios para windows y linux, ftp, etc. El servicio de directorio almacena toda la información en estructura de árbol. Con openLDAP pode- mos configurar el árbol para que se adapte a las necesidades de cada empresa. En el ejercicio crea- remos el nodo raíz del cual se desprenden dos nodos, los cuales son: personas: nodo donde se almacenan los usuarios en el árbol(Unidades Organizacionales - ou) grupos: nodo donde se almacenan los grupos, estos grupos pueden ser unidades administrativas de la empresa. (Unidades Organizacionales - ou) Además, debemos definir el nombre del nodo raíz del servicio de directorio. Por defecto, el árbol de- be definirse por medio de nombres para los nodos que cumplan con FQDN(Fully Qualified Domain Name), en pocas palabras los nombres de los nodos debe indicar un tipo de información única en el árbol. El FQND se puede entender como se configura el el servicio DNS el cual inicia con el dominio punto (.), en el servicio de directorio es la raíz donde inicia el árbol. Para nuestro ejemplo utilizare- mos el dominio nojoda.es para identificar la raíz el cual su FQDN sería como dc=nojoda,dc=es, cada nodo posé un DC (Distinguished Name - Nombre Distinguido) el cual es único en el árbol. Para este caso el DN para personas sería ou=personas,dc=nojoda,dc=es y para grupos es ou=gr- upos,dc=nojoda,dc=es. El término DC se denomina Domain Componente - Componente de Dominio. dc=nojoda,dc=es ou=personas,dc=nojoda,dc=es ou=grupos,dc=nojoda,dc=es Universidad de Caldas Ingeniería de Sistemas y Computación TALLER DE SISTEMAS OPERATIVOS

Transcript of Openldap Copia

Page 1: Openldap Copia

OPENLDAPLDAP es el acrónimo de Lightweight Directory Access Protocolo, es el cual implementa el protocolo X.500. El directorio es utilizado para la centralización de autenticación de usuarios. Los clientes para el usuario de directorio son muy variados entre los que encontramos servidores de correo, usuarios para windows y linux, ftp, etc.

El servicio de directorio almacena toda la información en estructura de árbol. Con openLDAP pode-mos configurar el árbol para que se adapte a las necesidades de cada empresa. En el ejercicio crea-remos el nodo raíz del cual se desprenden dos nodos, los cuales son:

personas: nodo donde se almacenan los usuarios en el árbol(Unidades Organizacionales - ou)

grupos: nodo donde se almacenan los grupos, estos grupos pueden ser unidades administrativas de la empresa. (Unidades Organizacionales - ou)

Además, debemos definir el nombre del nodo raíz del servicio de directorio. Por defecto, el árbol de-be definirse por medio de nombres para los nodos que cumplan con FQDN(Fully Qualified Domain Name), en pocas palabras los nombres de los nodos debe indicar un tipo de información única en el árbol. El FQND se puede entender como se configura el el servicio DNS el cual inicia con el dominio punto (.), en el servicio de directorio es la raíz donde inicia el árbol. Para nuestro ejemplo utilizare-mos el dominio nojoda.es para identificar la raíz el cual su FQDN sería como dc=nojoda,dc=es, cada nodo posé un DC (Distinguished Name - Nombre Distinguido) el cual es único en el árbol. Para este caso el DN para personas sería ou=personas,dc=nojoda,dc=es y para grupos es ou=gr-upos,dc=nojoda,dc=es. El término DC se denomina Domain Componente - Componente de Dominio.

dc=nojoda,dc=es

ou=personas,dc=nojoda,dc=es ou=grupos,dc=nojoda,dc=es

Universidad de CaldasIngeniería de Sistemas y Computación

TALLER DE SISTEMAS OPERATIVOS

Page 2: Openldap Copia

Bajo el nodo de personas se adicionarán los usuarios de la empresa nojoda s.a. En el nodo de grupos se colocaran las áreas funcionales de la empresa: gerencia, comercial, R.R.H.H, TI, Finan-ciera (ver el documento inicial del curso).

INSTALACIÓN DE OPENLDAP

Como se utilizará el servicio de directorio para la autenticación de los servicios de correo, portal web y samba, es recomendable iniciar con un entorno limpio sin configuraciones previas. Por lo tanto se instalará dos servidores, uno con el servicio de ldap y el otro con los demás servicios. Recuerde que para colocar en funcionamiento el correo es muy recomendable tener el servicio de DNS en funcionamiento.

1. Instale el servicio de DNS y adicione una entrada para la máquina de LDAP. Verifique su funcio-namiento.

2. Instalación y configuración del servidor de directorio LDAP. Verificación de su funcionamiento.

3. Instalación del portal Joomla (Apache, MySQL, PHP5), en su momento configuramos el portal para que autentique los usuarios desde el servidor LDAP. Verificación de su funcionamiento.

4. Instalación y configuración de correo (Postfix, Dovecot), en su momento configuramos el servicio de SMTP, IMAP y POP y su gestión de autenticación por medio de LDAP.

5. Instalación y configuración de Samba para compartir directorios con windows, en su momento se detalla la configuración del servicio para autenticar usuarios por medio de LDAP.

En el presente manual se enfocará en el segundo punto y los puntos tres, cuatro y cinco, se indicará la configuración de cada servicio para utilizar la autenticación con LDAP.

Servicios

Servidor de directorio - LDAP

Página 2

Page 3: Openldap Copia

INSTALACIÓNLa instalación del servicio de directorio openLDAP se hace con el montaje de los paquetes slapd y ldap-utils. El primero es el servidor propiamente dicho y el segundo son utilidades para el mane-jo de ldap por medio de la línea de comando. Para instalar openLDAP se debe ejecutar el siguiente comando.

En el proceso de instalación se inicia el asistente de configuración. La primera ventana que nos apa-rece nos pregunta sobre la contraseña del usuario administrador del servicio LDAP.

La siguiente ventana que aparece es la confirmación de la contraseña, no olvide la contraseña por se va ha utilizar en todo el proceso de configuración.

Se puede apreciar en la siguiente imagen como el estado del servicio de directorio en los servicios en el listado de servicios de red en el servidor.

NOTA:

No olvide antes de instalar cualquier paquete actualizar la lista de paquetes y descargar e instalar las actualizaciones.

root@desarrollo:~# apt-get install slapd ldap-utils

Página 3

Page 4: Openldap Copia

El proceso siguiente es crear la configuración base para el dominio. Volvemos a configurar el servi-cio de openLDAP para indicar el dominio del nodo raíz, se realiza de la siguiente forma.

Debemos adicionar la entrada del dominio en el archivo de configuración de las máquinas y el lo-calhost. El archivo es /etc/hosts, debemos adicionar la siguiente linea.

root@server:~# nano /etc/hosts

Página 4

Page 5: Openldap Copia

Podemos verificar que el nombre ya está disponible realizando una solicitud ping al servidor.

Ya verificado que el nombre del dominio esté funcionando se procede a configurar el servidor ldap.

El asistente de instalación irá preguntando los datos necesarios para instalar el servidor openLDAP.

La primera ventana nos pregunta si queremos omitir la configuración de openLDAP, le diremos que no para poder acceder a los pasos de configuración del servidor openLDAP.

root@server:~# dpkg-reconfigure slapd

Página 5

Page 6: Openldap Copia

La segunda pestaña nos pregunta el dominio que deseamos utilizar para el nodo raíz, en nuestro casos utilizaremos nojoda.es.

Página 6

Page 7: Openldap Copia

Damos en Ok, para continuar. En la siguiente ventana nos pregunta sobre el nombre de la compa-ñía.

Página 7

Page 8: Openldap Copia

Damos en Ok. La siguiente ventana nos preguntará la contraseña para el usuario administrador del servidor openLDAP. Aunque este paso ya se configuro en la instalación del servicio, volvamos a de-finirla para poder continuar. No olvide anotar la contraseña por que se utilizará más adelante.

La siguiente ventana permite confirmar la contraseña. Escriba la misma contraseña y de presione Ok.

La siguiente ventana nos pregunta sobre la base de datos que se utilizará para almacenar los datos del servidor de directorio. En el mensaje que aparece en la ventana nos recomienda la base de da-tos HDB (si tiene motivos para cambiar la base, lo puede hacer). En la ventana se muestra seleccio-nado la base de datos HDB, damos clic en Ok para continuar.

Página 8

Page 9: Openldap Copia

La siguiente ventana nos pregunta si deseamos conservar la base de datos cuando se elimine el servidor de directorio openLDAP. Si la desea conservar de clic en Yes, en caso contrario de clic en No. En el ejemplo no queremos guardar la base de datos.

Página 9

Page 10: Openldap Copia

La siguiente ventana no pregunta si queremos mover los datos antiguos (si existieran) a un directo-rio. En nuestro caso no hay necesidad por que es una instalación nueva.

Página 10

Page 11: Openldap Copia

El último paso pregunta si habilitamos el soporte con la versión más vieja de LDAP (versión 2), algu-nos servicios de redes como correo, ftp, etc. siguen utilizando la versión vieja.

Podemos realizar la comprobación del correcto funcionamiento con el comando:

El resultado del comando se puede observar en la siguiente gráfica.

root@server:~# ldapsearch -x -LLL -H ldap:/// -b dc=nojoda,dc=es dn

Página 11

Page 12: Openldap Copia

CREACIÓN Y LLENADO DEL ÁRBOLEl siguiente paso es adicionar las ramas al árbol. Estas ramas son: personas y grupos. Estas ra-mas se definen como unidades organizacionales. El nombre distinguido DN para las ramas serían:

1. Personas: dn: ou=personas, dc=nojoda, dc=es, esto indica que la unidad organizacional personas esta pegada al nodo nojoda.es.

2. Grupos: dn: ou=grupos, dc=nojoda, dc=es, la unidad organizacional grupos está pegada al nodo raíz nojoda.es.

Después de adicionar las unidades organizativas se adicionan las hojas de las ramas, en este caso sería para la rama de personas se adicionan a las personas que trabajan en la empresa nojoda (ver documento de caso de estudio). En la rama de grupos se adicionan las diferentes dependencias que tienen la empresa (gerencia, recursos humanos, etc). Por último al adicionar los grupos se indican que personas están vinculados a él. Para adicionar los grupos y las personas se debe crear un ar-chivo indicando la secuencia de construcción del árbol. Cada nodo está asociado un esquema/objeto que indica que datos se deben ingresar al nodo. Para la rama de personas como es una unidad or-ganizacional se debe asociar al esquema/objeto organizationalUnit, en este caso se solicita el campo ou. Para adicionar a las personas se utilizan los esquemas/objetos de organizational-Person e inetOrgPerson, esto indica que la persona es perteneciente a una organización. El lle-nado del árbol se hará con los siguientes pasos.

1. Crear el nodo para las personas.

2. Adicionar personas al nodo personas.

3. Crear el nodo grupo.

4. Adicionar los grupos con los usuarios definidos en el paso 2.

A continuación se presenta una tabla resumen de los acrónimos usados en la creación de los nodos en el árbol.

ACRÓNIMO DEFINICIÓN

dn Nombre distinguido, se utiliza para nombrar un nodo. No puede haber nom-bres distinguidos repetidos en el árbol. Recuerde que el DN se define con toda la ruta partiendo del nodo raíz y siguiendo la ruta hasta llegar al nodo indicado. dn: ou=personas,dc=nojoda,dc=es.

cn Nombre Canónico, en el nombre que se le da a una persona, grupos, etc. en el nodo. Un nombre canónico puede ser Luis Bertel, y se podría ver como: cn=Luis Bertel.

givenname Contiene los nombres de la persona (no se incluyen los apellidos).

sn El apellido de la persona

uid Es el identificador del usuario, se puede asociar al nombre que utiliza el usuario en un computar (login).

mail Correo de la persona

userpassword Contraseña de la personas (en este ejemplo se utilizan contraseñas planas (no cifradas))

Página 12

Page 13: Openldap Copia

ACRÓNIMO DEFINICIÓN

objectClass Tipo de objeto que utiliza el nodo

ou Unidad organizacional

A continuación se detalla el contenido del archivo de creación de los grupos y usuarios al árbol. El archivo se llamará nojoda.ldif.

Ubique el archivo en el servidor, para nuestro ejemplo el archivo se encuentra en el directorio /tmp (pueden utilizar sftp, scp o memoria para pasar el archivo). Para adicionar las entradas al árbol se ejecuta el siguiente comando.

# Archivo de ejemplo para el dominio nojoda.es# todos los password estan sin cifrar

# creacion del nodo de personasdn: ou=personas,dc=nojoda,dc=esobjectclass: organizationalUnitobjectclass: topdescription: Contienen todas las entradas para las personasou: personas

# creacion del nodo de gruposdn: ou=grupos,dc=nojoda,dc=esobjectclass: organizationalUnitobjectclass: topdescription: Contiene los departamentos de la empresaou: grupos

# creacion de la persona Simon Bolivardn: cn=Simon Bolivar,ou=personas,dc=nojoda,dc=esobjectclass: personobjectclass: organizationalPersonobjectclass: inetOrgPersonobjectclass: topcn: Simon Bolivardescription: El gerente Libertadorgivenname: Simonsn: Bolivaruid: sbolivarmail: [email protected]: 12345

# creacion del departamento gerencia y # asociacion de la persona simon bolivardn: cn=gerencia,ou=grupos,dc=nojoda,dc=esobjectclass: groupOfUniqueNamesobjectclass: topcn: gerenciauniquemember: cn=Simon Bolivar,ou=personas,dc=nojoda,dc=es# si ubieran mas gerentes se siguen insertando como se muestra#uniquemember: cn=otro gerente,ou=personas,dc=nojoda,dc=es#uniquemember: cn=otro jefe,ou=personas,dc=nojoda,dc=es

Página 13

Page 14: Openldap Copia

Al ejecutar el comando se nos pregunta la contraseña del servidor de directorio (la contraseña se configuro en uno de los pasos utilizados en la reconfiguración del servidor openLDAP). En la siguien-te figura se muestra la ejecución del comando.

A continuación se detalla el comando utilizado:

• ldapadd: comando que permite adicionar nodos al árbol.

• -x: autenticación simple sin cifrar

• -D: define del nombre distinguido DN para acceder al servidor LDAP. Permite validar el usuario admin para poder ingresar nodos al árbol.

• -W: pregunta la contraseña del usuario admin del servidor de directorio.

• -f: indica el archivo ldif con información para vincular al árbol.

INSTALACIÓN DE UN CLIENTE LDAPExisten muchos clientes para el servicio ldap (puede buscar en google client ldap), el que utilizare-mos para nuestro ejercicio es Apache Directory Studio (http://directory.apache.org/studio/). Para po-der utilizar el cliente es necesario tener instalado Java. Instale el cliente en una máquina con Windows y que ya tenga instalado el JRE de Java. Al ejecutar el Apache Directory Server se muestra la ventana. La siguiente gráfica muestra el inicio del aplicativo.

root@server:~# ldapadd -x -D cn=admin,dc=nojoda,dc=es -W -f /tmp/nojoda.ldif

Página 14

Page 15: Openldap Copia

Para iniciar a utilizar el cliente de servidor de directorio hay crear una conexión con el servidor. Para crearla de clic en el menú File->New. En la ventana que aparece se escoge LDAP Connection que se encuentra en el ítem LDAP Browser. En la figura se muestra la opción.

Página 15

Page 16: Openldap Copia

Damos clic en el botón Next para continuar. En la próxima ventana debemos configurar la ubicación del servidor de directorio.

Página 16

Page 17: Openldap Copia

Ingrese un nombre para la conexión (puede ser cualquier nombre representativo para la empresa) y la dirección IP o el nombre de dominio (si tiene configurado el servidor DNS correctamente). Puede dar clic en el botón Check Network Parameter para verificar si el servidor de directorio está dis-ponible. Para continuar con la configuración se da clic en Next. La siguiente ventana permite ingre-sar el nombre distinguido para el usuario admin y su contraseña.

Página 17

Page 18: Openldap Copia

Ingrese los valores adecuados para su configuración. Puede dar clic en el botón Check Authenti-cation para verificar si el usuario y la contraseña son correcta. Para continuar con el proceso de clic en el botón Next. En la siguiente ventana indicamos el nodo raíz de nuestro árbol, en nuestro ejemplo la base es dc=nojoda,dc=es.

Página 18

Page 19: Openldap Copia

De clic en el botón Fetch Base DNs para que detecte de forma automática el nodo raíz. En la pró-xima figura se puede observar que ha detectado el nodo raíz del árbol. Demos clic en el botón OK para aceptar el nodo.

Página 19

Page 20: Openldap Copia

El resultado de aceptar el nodo raíz se muestra a continuación.

Página 20

Page 21: Openldap Copia

Para terminar el proceso de creación de la conexión de clic en Finish para terminar.

A continuación se muestra los datos para Simon Bolivar.

Página 21

Page 22: Openldap Copia

La anterior figura muestra los datos para el grupo de gerencia.

NOTA:

Adicione los demás usuarios de la empresa nojoda.

NOTA:

Instale el cliente phpldapadmin, el cual es un cliente LDAP web.

Página 22

Page 23: Openldap Copia

BÚSQUEDA DE INFORMACIÓN EN EL ÁRBOLUna de las actividades más utilizadas en el árbol de directorio es la búsqueda de elementos almace-nados en él. Utilizaremos para ello los comandos por consola y el Apache Directory Studio.

El comando para realizar búsqueda por línea de comandos es ldapsearch, el cual puede hallar información almacenada en el árbol. Esta utilidad abre una conexión con el servidor de directorio utilizando un nombre distinguido y una contraseña. La búsqueda puede comprender una hoja del árbol o la información que se almacena en toda una rama. Los resultados se muestran en formado ldif.

El formato de utilización del comando es:

ldapsearch [opciones del comando] [opciones de filtro] [opciones de atributos]

ldapsearch: comando de búsqueda

Opciones de comando: opciones del comando ldapsearch, en cualquier caso se colocan antes de las opciones de filtro.

Opciones de filtro: especifica los criterios de búsqueda al comando.

Opciones de atributo: estas opciones permiten limitar los resultados que arroja el comando ldapsearch.

OPCIONES DE COMANDOEl siguiente listado resume las opciones más importantes del comando ldapsearch.

OPCIÓN DESCRIPCIÓN

-b Especifica el punto de inicio de la búsqueda. Si deseamos listar todos las personas que hay en el árbol, la opción para -b sería “ou=people,dc=nojoda,dc=es”.

-D Especifica el DN del usuario del árbol que realiza la búsqueda. Si el usuario admin es que va realizar la búsqueda el comando sería “cn=admin,dc=nojoda,dc=es”. Si no se especifica esta opción se asume que la consulta se realiza por el usuario anonimo, el cual tiene restricciones para realizar búsqueda.

-h Especifica la dirección IP o el nombre de dominio donde se encuentra el servidor de directorio. Para indicar que el servidor está en la dirección ip 192.168.0.10, la opción sería -h 192.168.0.10.

-w Permite ingresar la contraseña del usuario que realiza la consulta. por ejemplo, si la contraseña el usuario admin es 12345, sería: -D “cn=admin,dc=nojoda,dc=es” -w 12345.

-W Permite solicitar la contraseña del usuario. Si desea que la contraseña no se vea en la línea, utilice esta opción.

Página 23

Page 24: Openldap Copia

A continuación se muestran algunos ejemplos sencillos de búsqueda en el árbol.

1. Buscar la información de Simon Bolivar.

En esta consulta especifica que se va a conectar al servidor de directorio que se encuentra en 192.168.0.10 y que se conectará como usuario admin y la búsqueda inicie desde el nodo raíz, bus-cara la coincidencia con Simon Bolivar, al final se pide la contraseña del usuario admin.

2. Listar todos las personas que haya en el árbol.

3. Listar todos los departamentos de la empresa.

4. Listar todos los nodos del árbol

5. Buscar a Simon Bolivar por su uid.

root@server:~# ldapsearch -h 192.168.0.10 -D "cn=admin,dc=nojoda,dc=es" -b "dc=nojoda,dc=es" "cn=Simon Bolivar" -W

root@server:~# ldapsearch -h 192.168.0.10 -D "cn=admin,dc=nojoda,dc=es" -b "ou-=personas,dc=nojoda,dc=es" -W

root@server:~# ldapsearch -h 192.168.0.10 -D "cn=admin,dc=nojoda,dc=es" -b "ou-=grupos,dc=nojoda,dc=es" -W

root@server:~# ldapsearch -h 192.168.0.10 -D "cn=admin,dc=nojoda,dc=es" -b "dc=nojoda,dc=es" -W

root@server:~# ldapsearch -h 192.168.0.10 -D "cn=admin,dc=nojoda,dc=es" -b "dc=nojoda,dc=es" uid=sbolivar -W

Página 24

Page 25: Openldap Copia

OPCIONES DE FILTROLos filtros permiten realizar búsquedas más especializadas, la siguiente tabla presenta las opciones que podemos tener con los filtros.

TIPO BÚSQUEDA OPERADOR DESCRIPCIÓN

igualdad = Recupera las entradas con los valores que son exactamente iguales, por ejemplo. cn= SImon Bolivar.

subcadena =cadena* Retorna los valores que corresponde a las coincidencias con-tenidas en la subcadena, por ejemplo, cn=Sim*. El asterisco indica cero o más caracteres.

mayor o igual a >= Retorna los valores que sean mayores o iguales a un criterio de comparación.

Menor o igual a <= Retorna los valores que sean menores o iguales a un criterio de comparación.

Presente =* Devuelve las entradas que contengan uno o más valores para el atributo especificado. por ejemplo. cn=*.

Los filtros se pueden combinar para realizar consultas complejas. Su uso se muestra en a continua-ción.

(operador-booleano(filtro1)(filtro2)(filtro3)...)

También se puede asociar los filtros para realizar consultas complejas.

(operador-booleano(filtro1))(operador-booleano(filtro2)(filtro3)...)

Los operadores booleanos que se puede tener son:

OPERADOR SÍMBOLO DESCRIPCIÓN

Y & Todos los filtros deben ser verdaderos para que la sentencia sea ver-dadera, por ejemplo, (&(filtro)(filtro)...)

O | Para que la sentencia sea verdadera basta con que uno de los filtros sea verdadero, por ejemplo, (|(filtro)(filtro)...)

Negación ! Niega la sentencia definida por un filtro. Por ejemplo, (!(filtro))

Ejemplo

1. Recupere todos los nodos que no sean Simon Bolivar.

root@server:~# ldapsearch -h 192.168.0.10 -D "cn=admin,dc=nojoda,dc=es" -b "dc=nojoda,dc=es" "(!(cn=Simon Bolivar))" -W

Página 25

Page 26: Openldap Copia

UTILIZACIÓN DEL SERVICIO DE DIRECTORIO COMO LIBRETA DE DIRECCIONESUna de las ventajas de utilizar el servicio de directorio es la centralización de la información de la empresa. En el próximo apartado se muestra como utilizar el lector de correo Thunderbird para car-gar la libreta de direcciones de contacto con los datos del servidor de directorio. Para realizar la si-guiente práctica instala el lector de correo Thunderbird.

Ejecute Thunderbird y de clic en el menu Herramientas->Libretas de direcciones. Se abri-rá una nueva ventana en la cual podemos configurar los parámetros para acceder al servidor de di-rectorio.

En la ventana seleccione Archivo->Nuevo->Directorio LDAP...

Al dar clic en Directorio LDAP, nos abre una ventana en la cual podemos ingresar los datos de confi-guración del servidor de directorio.

Página 26