PDF de programación - BULMA: Configuración de un cliente y servidor OpenLDAP para autentificación

Imágen de pdf BULMA: Configuración de un cliente y servidor OpenLDAP para autentificación

BULMA: Configuración de un cliente y servidor OpenLDAP para autentificacióngráfica de visualizaciones

Publicado el 25 de Abril del 2018
505 visualizaciones desde el 25 de Abril del 2018
33,9 KB
6 paginas
Creado hace 19a (19/11/2004)
BULMA: Configuración de un cliente y servidor OpenLDAP para autentificación

Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores | Bergantells Usuaris de GNU/Linux de Mallorca i

Afegitons

Configuración de un cliente y servidor OpenLDAP para autentificación
(11206 lectures)

Per Carles Pina i Estany, cpina (http://pinux.info)
Creat el 07/03/2004 11:15 modificat el 07/03/2004 11:15

En este artículo veremos como instalar un servidor LDAP para autentificar a los clientes y también
como configurar los clientes LDAP para que se autentifiquen contra este servidor

Recordar que LDAP es un "Directorio Ligero", que puede servir tanto para autentificar a los clientes
como para recopilar otros tipos de información (desde colecciones de distribuciones Linux a resolver
nombres).

Versió en català disponible aquí

(1)

(Catux

(2))

Introducción

Usaremos la implementación OpenLDAP, que podemos encontrar en http://www.openldap.com(3). De todas formas
aquí nos basaremos en los paquetes Debian (sid, pero es parecido a todas) para hacerlo.

Como nota general, no soy un experto de LDAP sinó que he tenido que instalarlo un par de veces y esos son mis
apuntes para conseguirlo, espero que sean útiles a alguien.

Podemos ver a LDAP como una base de datos optimizada para hacer un número muy alto de lecturas y muy pocas
escrituras o modificaciones. Además está organizado de modo jerárquico.

Muchas veces (como en este artículo) se usa LDAP para guardar información de los usuarios. Podemos guardar lo
típico de login, UID, GID, contraseña, etc. y además añadirle una foto, teléfono de casa u otras informaciones qué
queramos. Recalcar que en este artículo guardaremos la información necesaria para un servidor de autentificación; no
para un servidor de ficheros. Si necesitamos un servidor de ficheros tendremos que usar NFS (o Coda, Intermezzo, etc.)

Instalación del servidor

En el servidor necesitaremos los paquetes libldap2 slapd. Podemos instalar también el paquete ldap−utils que nos
servirá para hacer ciertas pruebas.

Una vez instalado el servidor OpenLDAP iremos al directorio /etc/ldap y modificaremos el fichero slapd.conf. En este
fichero modificaremos al menos el suffix poniendo por ejemplo nuestro dominio (no hace falta que esté registrado, es
para referirnos a él desde LDAP). Lo pondremos con el formato suffix "dc=pinux,dc=info".

Añadiremos también:

rootdn "cn=admin,dc=pinux,dc=info" #para autentificar al administrador
rootpw secret #la contraseña

(la contraseña la podemos encriptar, al final del documento vemos como)

En el resto del fichero de configuración sólo tendremos que cambiar el cn= y el dc=pinux,dc=info donde veamos que
hace falta.

1/6

BULMA: Configuración de un cliente y servidor OpenLDAP para autentificación

En este momento podremos hacer un /etc/init.d/slapd restart para reiniciar el servidor LDAP.

Si ejecutamos slapcat nos tendría que dar información sobre nuestro LDAP (normalmente imprime por pantalla
todoo el LDAP, de momentos sólo veremos algo de estructura).

Alta, búsqueda y eliminación de usuarios

Ahora lo que tendremos que hacer es dar de alta a algunos usuarios para después poder usarlos en la autentificación.

Antes de dar de alta a los usuarios y grupos, tendremos que dar de alta al administrador, un usuario para "buscar" la
información sin privilegios y ya después algun usuario normal para verificar que nos funciona correctamente el
sistema.

La forma de dar de alta a usuarios (o datos en general) en LDAP suele ser mediante ficheros .ldif. Un fichero .ldif es un
fichero que contiene la información que vamos a añadir, para después añadirla a nuestro directorio.

antes de empezar a dar de alta a los usuarios crearemos la "estructura" mediante este fichero .ldif:

dn: ou=Group,dc=pinux,dc=info
objectClass: top
objectClass: organizationalUnit
ou: Group

dn: ou=People,dc=pinux,dc=info
objectClass: top
objectClass: organizationalUnit
ou: People

De esta forma tenemos a dos "Organization Units" que son los grupos (Groups) y los usuarios (People).

Vemos que estamos usando el objectClass: organizationalUnit, de esa forma LDAP ya sabe qué campos tendrás
nuestros usuarios/grupos. Para decirle a LDAP que inserte los datos del fichero .ldif en la base de datos ejecutaremos:

ldapadd −x −D 'cn=admin,dc=pinux,dc=info' −w secret −f fichero.ldif

Notas:






Con −x nos autentificamos de forma simple a LDAP sin usar SASL
Al −D le decimos el Distinguised Name, el mismo que le pusimos en el fichero de configuración
Al −w le pasaremos la contraseña. Con −W nos la pediría de forma interactiva
Al −f sirve para pasarle el fichero de configuración

Seguidamente, daremos de alta un usuario. Seguiremos el mismo esquema que hasta ahora, haciendo un fichero .ldif y
después ejecutando la utilidad ldapadd. El fichero .ldif para dar de alta a un usuario puede ser uno como este:

#
# New Tester user
#
dn: uid=tester,ou=People,dc=pinux,dc=info
objectClass: top
objectClass: account
objectClass: posixAccount
uid: tester
cn: Test User
userPassword: hola
gecos: Test User
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/tester
loginShell: /bin/bash

Y a continuación:

2/6

BULMA: Configuración de un cliente y servidor OpenLDAP para autentificación

ldapadd −x −D 'cn=admin,dc=pinux,dc=info' −w secret −f fichero.ldif

Ahora sí que podemos ejecutar slapcat y ver si el usuario tester está correctamente listado.

Al hacer un slapcat él mismo nos está haciendo un listado en format .ldif (lo podriamos aprovechar para lo que haga
falta).

Ya que estamos dando de alta a usuarios, aprovechamos y damos de alta a un grupo. Para hacerlo, crearemos un fichero
.ldif con este contenido:

#
# Testing Group#
dn: cn=testing,ou=Group,dc=pinux,dc=info
objectClass: top
objectClass: posixGroup
cn: testing
gidNumber: 2000

Ahora ya tenemos a un grupo con GID 2000.

También podemos aprovechar para hacer búsuqedas:

ldapsearch −x −b 'uid=tester,ou=People,dc=pinux,dc=info'

Y por último, si queremos eliminar un usuario podemos hacerlo de esa forma:

ldapdelete −x −D 'cn=admin,dc=pinux,dc=info' −w secret\
'cn=Local Root,ou=People,dc=pinux,dc=info'

Configurando un cliente LDAP

El objetivo de esta parte es poder hacer un slapcat desde una máquina que no sea el servidor y funcione
correctamente.

Para conseguir eso tendremos que intalar al menos los paquetes libldap2, ldap−utils.

Una vez instalados estos paquetes, editaremos el fichero /etc/ldap/ldap.conf. Este fichero es el de
configuración del cliente LDAP, no lo tenemos que confundir confundir con el fichero slapd.conf, que es de la
configuración del servidor.

El fichero podemos dejarlo así:

host 192.168.1.2
base dc=pinux,dc=info

De esa forma le decimos donde tiene que conectarse y el dc.

Ahora desde la máquina cliente podemos hacer uso del slapcat igual que antes. La configuración por defecto
permite la lectura de varios campos por "todo el mundo", así que aunque no veremos la contraseña podremos ver otra
información del usuario.

Configurando un cliente, parte nsswitch

Para esta parte necesitaremos instalar el paquete libnss−ldap.

Cuando trabajamos con el sistema (ls −l, p. ej.) normalmente vemos los nombres de los usuarios propietarios de los
ficheros. En cambio guardado en el disco hay el "número" (UID) del usuario.

Para que los programas sepan el nombre que corresponde a los UID's (y otras cosas, como grupos, hosts, etc.) hacen

3/6

BULMA: Configuración de un cliente y servidor OpenLDAP para autentificación

unas llamadas a funciones de la librería GLIBC, y es esta quien "averigua" la relación.

Es en el fichero /etc/nsswitch.conf donde le decimos al sistema de donde averiguar el propietario sabiendo el
UID. Normalmente contiene algo como:

passwd: compat
group: compat
shadow: compat

hosts: files dns
networks: files

Lo que más nos interesa es la parte de passwd, group y shadow. Ahora lo dejaremos así:

passwd: compat ldap
group: compat ldap
shadow: compat ldap

Por tanto cuando un programa le pide a la GLIBC "dime el nombre del usuario 1005", la GLIBC primero mira en
/etc/passwd y sinó hará la consula al servidor LDAP.

Para que el nsswitch pueda hacer las consultas en el LDAP tendremos el fichero /etc/libnss−ldap.conf algo
como:

host 192.168.1.2
base dc=pinux,dc=info

Es decir, la información necesaria para llegar a nuestro servidor LDAP y lanzar la consulta.
Si hacemos man libnss−ldap.conf veremos las opciones que podemos ponerle (p. ej. port, ldap_versions, etc.)

Entre otras cosas, a veces necesitaremos que se haga una conexión autentificada contra el servidor. Para eso se usará la
contraseña que encuentre en /etc/ldap.secret (tiene que estar con permisos 600, propietario y grupo root)

Configurando el cliente PAM

Para poder configurar el cliente PAM tendremos que instalar el paquete libpam−ldap Hay varios programas que
pueden usar (y usan por defecto) un método de autentificación "centralizado" y por módulos llamado PAM (Pluggable
Authentication Modules). Eso son unas librerias que los programas pueden soportar que sirven de "interfaz" contra
varios métodos de autentificación (p. ej. LDAP)

La configuración en Debian es en el directorio /etc/pam.d/ y tenemos un fichero de configuración por cada
servicio.

Si es necesario que la conexión sea con privilegios, se usará la contraseña que se encuentre en /etc/ldap.secret,
y que estará con permisos 600 (como el punto anterior).

Tener la contraseña para autentificarse es necesario, con la configuración por defeto del slapd.conf, cuando el
usuario root quiere cambiar la contraseña de otro usuario: si no es conexión autentificada, el servidor LDAP no le deja
cambiarla. De otra forma cualquier usuario podría cambiar la contraseña de cualquier otro, solo lanzando la consulta al
servidor LDAP.

Seguidamente, dejaremos el fichero /etc/pam_ldap.conf de forma parecida:

host 192.168.1.2
base dc=pinux,dc=info
ldap_version 3

rootbinddn
  • Links de descarga
http://lwp-l.com/pdf10667

Comentarios de: BULMA: Configuración de un cliente y servidor OpenLDAP para autentificación (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