PDF de programación - Autenticación LDAP en GNU/Linux

Imágen de pdf Autenticación LDAP en GNU/Linux

Autenticación LDAP en GNU/Linuxgráfica de visualizaciones

Publicado el 1 de Febrero del 2019
541 visualizaciones desde el 1 de Febrero del 2019
293,7 KB
17 paginas
Creado hace 16a (12/01/2008)
Autenticación LDAP en GNU/Linux

Alberto Molina Coballes <[email protected]>

IES Gonzalo Nazareno. Dos Hermanas (Sevilla)

12 de enero de 2008

Resumen

En este documento se describen los pasos necesarios para configurar un equipo
GNU/Linux para gestionar de forma centralizada las cuentas de usuarios de una red
mediante un directorio LDAP. Todo el desarrollo se realiza utilizando OpenLDAP
2.3.30 sobre la rama estable de la distribución Debian GNU/Linux 4.0 (etch).

cAlberto Molina Coballes. Algunos derechos reservados.

Esta obra está bajo una licencia Attribution-ShareAlike 2.5 de Creative Com-

mons. Para ver una copia de esta licencia, visite:
http://creativecommons.org/licenses/by-sa/2.5/es/

1

Índice

1. Introducción

2. Instalación del servidor OpenLDAP

2.1. Estructura básica del directorio . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Definición de entradas destacadas . . . . . . . . . . . . . . . . . . . . . . . .

3

3
5
7

3. Configuración del cliente LDAP

3.1. Name Service Switch (nss) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1. Modificación de /etc/nsswitch.conf . . . . . . . . . . . . . . . . . . .
libnss-ldap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2.
. . . . . . . . . . . . . . . . . . .
3.2.1. Modificación de los ficheros common-* . . . . . . . . . . . . . . . . .
3.2.2.

7
8
8
8
9
9
libpam-ldap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2. Pluggable Authentication Module (PAM)

4.1.

4. Herramientas de gestión de usuarios

11
ldap-utils
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.1.
ldapsearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.2.
ldapadd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.3.
ldapdelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1.4.
ldapmodify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2.
ldapscripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3. Herramientas gráficas de administración LDAP . . . . . . . . . . . . . . . . 15

A. Autenticación clásica en UNIX (shadow passwords)

17

2

1.

Introducción

La forma clásica de autenticar un usuario en un sistema GNU/Linux —en UNIX en
general— es mediante la información existente en los ficheros passwd, shadow y group.
Para el lector interesado, en el apéndice A se da una descripción breve de los pasos que se
siguen para autenticar un usuario en un sistema UNIX mediante estos ficheros.
El método anterior funciona muy bien para lo que ha sido pensado, sin embargo no es
útil para tener un sistema centralizado de autenticación. Para estos casos normalmente
se utiliza un doble sistema de autenticación: mediante ficheros para los usuarios locales
del sistema —como el usuario root, los usuarios para los demonios, etc.— y mediante un
segundo método para los usuarios normales que pueden autenticarse en cualquier equipo
de la red —lo que podríamos denominar “usuarios de red”—. En este documento nos
centramos en explicar la forma de configurar un sistema para poder utilizar estos “usuarios
de red”, guardando la información en un directorio.
En entornos UNIX durante bastante tiempo se ha utilizado NIS para la autenticación
centralizada de usuarios en una red local, ya que se conoce muy bien y se configura de
forma sencilla; pero es una opción cada vez más en desuso por diferentes problemas que
presenta, en particular porque no funciona sobre TCP/IP —lo que limita su extensión a
una red local— y además no envía la información entre el cliente y el servidor de manera
cifrada —lo que puede provocar problemas de seguridad—.
En este manual presentamos la opción preferida actualmente para implementar un sistema
centralizado de autenticación, que es almacenar dicha información en un directorio LDAP.
Este método resulta más eficaz que NIS ya que:

Funciona sobre TCP/IP.

Es posible establecer la comunicación entre el cliente y el servidor de forma cifrada.

Permite guardar muchos otros datos de los usuarios —como direcciones de correo,
teléfonos, etc.— e incluso de otros objetos como impresoras u ordenadores.

Como es lógico tiene alguna contrapartida y esta es que es algo más complicado de im-
plantar que NIS.
En las siguientes secciones presentamos la configuración de un servidor OpenLDAP, típi-
camente se haría sobre un equipo de una red, y la configuración de un cliente, que sería
cualquiera de los otros equipos que quieran utilizar estos “usuarios de red”. En este docu-
mento no se van a explicar las características que tiene un directorio, ni el formato de los
ficheros que se utilizan para incluir las entradas (LDIF), para una lectura complementaria
sobre estos aspectos recomendamos la lectura de Introducción al Servicio de Directorio de
Rafael Calzada Pradas [1].

2.

Instalación del servidor OpenLDAP

El equipo en el que va a realizarse la instalación tiene definido correctamente su FQDN y
es ldap.gonzalonazareno.org. Esto no es imprescindible para realizar la configuración
correcta del servidor LDAP, pero sí recomendable. Para combrobar si el FQDN de un
equipo está bien definido hay que ejecutar:

3

hostname --fqdn

En primer lugar debemos instalar el paquete slapd y todas sus dependencias:

aptitude install slapd

A continuación —dependiendo de la configuración del paquete debconf— nos pedirá lo
siguiente:

Contraseña del Administrador del directorio

y creará un directorio con dos entradas, en nuestro caso:

dn: dc=ldap,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: IES Gonzalo Nazareno
dc: ldap
structuralObjectClass: organization
entryUUID: 8376c53e-4815-102c-97c9-d7aec873b177
creatorsName:
modifiersName:
createTimestamp: 20071226154648Z
modifyTimestamp: 20071226154648Z
entryCSN: 20071226154648Z#000000#00#000000

dn: cn=admin,dc=ldap,dc=gonzalonazareno,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e2NyeXB0fUNpTkxkYi9IZ0l6WU0=
structuralObjectClass: organizationalRole
entryUUID: 83773ad2-4815-102c-97ca-d7aec873b177
creatorsName:
modifiersName:
createTimestamp: 20071226154648Z
modifyTimestamp: 20071226154648Z
entryCSN: 20071226154648Z#000001#00#000000

En la salida anterior podemos ver dos entradas en formato LDIF, identificadas cada una
con un Distinguished Name (dn) que es único para cada entrada y una serie de atributos.
La salida anterior la hemos obtenido con la instrucción slapcat que está incluída en el
paquete slapd y que nos muestra los objetos del directorio desde el propio equipo sin
necesidad de establecer una conexión LDAP propiamente.
En caso de que la base del directorio no esté correctamente definida —que será lo más
habitual—, podríamos configurar de nuevo el directorio con:

4

dpkg-reconfigure slapd

En este caso nos preguntará más detalles de la configuración, en concreto:

Nombre de dominio DNS: ldap.gonzalonazareno.org

Nombre de la Organización: IES Gonzalo Nazareno

Contraseña del administrador

Motor de base de datos a utilizar: BDB

¿Permitir el protocolo LDAPv2?: No (salvo que sea necesario)

En caso de que esto no fuese suficiente —como ocurre en algunas versiones de Ubuntu—
podríamos ir al directorio /var/lib/ldap y borrar todo su contenido y a continuación
crear los dos objetos iniciales de la base a partir de un fichero LDIF.
Ya por último, recordar que todos los valores que hemos introducido y otros para los que
se asumen los valores, se guardan en el fichero /etc/ldap/slapd.conf

2.1. Estructura básica del directorio

La estructura del árbol del directorio variará en función de la información que queramos
almacenar y de la complejidad de ésta; en nuestro caso vamos utilizar el directorio como
sistema de autenticación en una red local y por tanto, queremos almacenar información
de los usuarios y los grupos a los que pertenecen. En estos casos habitualmente se utiliza
una estructura del estilo a la que aparece en la figura 1.

Figura 1: Esquema básico del árbol LDAP.

Como puede verse en la figura, se han creado dos unidades organizativas (ou) llamadas
People y Group donde obviamente se incluirán las entradas de los usuarios y los grupos
respectivamente, además de un objeto en cada unidad organizativa —el usuario pruebau y
el grupo pruebag—. En el caso de que quisiéramos almacenar información de otros objetos
como impresoras, ordenadores, etc. deberíamos añadir nuevas unidades organizativas.
Para añadir las entradas anteriores, debemos crear un fichero en formato LDIF —lo de-
nominaremos base.ldif— con el siguiente contenido1:

1Para crear el contenido del atributo userPassword hemos utilizado slappasswd -h {MD5}

5

dn: ou=People,dc=ldap,dc=gonzalonazareno,dc=org
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=ldap,dc=gonzalonazareno,dc=org
ou: Group
objectClass: top
objectClass: organizationalUnit

dn: cn=pruebag,ou=Group,dc=ldap,dc=gonzalonazareno,dc=org
objectClass: posixGroup
objectClass: top
cn: pruebag
gidNumber: 2000

dn: uid=pruebau,ou=People,dc=ldap,dc=gonzalonazareno,dc=org
uid: pruebau
cn: Usuario de prueba
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {MD5}qPXxZ/RPSWTmyZje6CcRDA==
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/pruebau
gecos: Usuario de prueba
host: *

Puesto que todavía no hemos visto las herramientas del cliente LDAP, lo haremos con
slapadd, para lo que debemos parar antes el demonio slapd:

/etc/init.d/slapd stop

y añadir las dos nuevas entradas con:

slapadd -l base.ldif

si no se ha producido ningún error, podremos ver las nuevas entradas utilizando slapcat.
Puesto que no existe el directorio home del usuario pruebau, tendremos que crearlo y darle
el propietario adecuado:
  • Links de descarga
http://lwp-l.com/pdf15036

Comentarios de: Autenticación LDAP en GNU/Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad