Servidor ldap

ldap es un sistema de autenticación que nos puede valer para centralizar la autenticación de los usuarios. Una vez creada ésta base de datos podemos llamar a los programas que requieran autenticación contactar con ésta base de datos centralizada.

Partimos como casi siempre con una Debian recién instalada y ahí instalamos slapd que es el servicio de ldap y ldap-utils que nos va a permitir gestionar la base de datos ldap.

# apt -y install slapd ldap-utils 

Durante la instalación nos va a pedir el password para el usuario admin (cn=admin,dc=capa8,dc=net).

En algunos manuales hacen referencia a tocar los ficheros de configuración. Dicha acción no es recomendable, para ello, lo recomendable es usar browsers de ldap como jxplorer con el que entraremos mas adelante o con las herramientas que trae ldap-utils.

De momento, para verificar que el servidor está funcionando, en el mismo servidor donde hemos instalado ldap, vamos a ejecutar el comando slapcat, que nos muestra el contenido de la base de datos ldap

# slapcat

Con el siguiente comando vamos a poder ver las entradas disponibles

# ldapsearch -x -h localhost

A continuación para configurar nuestro dominio vamos a reconfigurar slapd

# dpkg-reconfigure -plow slapd 
Omit ldap configuration: NO
DNS domain name: capa8.net
Organization name: Capa8
Administrator Password: password
Database backend to use: MDB
Do you want database to be removed when slapd is purged? NO
Move old database?: YES

Creación y configuración de Usuario, Grupos y U. Organizativas en LDAP.
Ahora vamos a crear todos los objetos de la base de datos, el objeto superior es Unidades Organizativas (OU), debajo van los Grupos (CN) y debajo los Usuarios (UID).

Vamos a crear la OU y un Grupo (CN) desde ficheros en local, almacenados por ejemplo en /root/ldap/.

# vi u_org.ldif 
dn: ou=People,dc=capa8,dc=net
objectClass: top
objectClass: organizationalUnit
ou: People

y lo añadimos a ldap mediante ldapadd

# ldapadd -x -D cn=admin,dc=capa8,dc=net -W -f u_org.ldif

A continuación el Grupo

# vi groups.ldif 
dn: cn=Users,ou=People,dc=capa8,dc=net
objectClass: top
objectClass: posixGroup
gidNumber: 2000
cn: Users

y lo añadimos a ldap mediante ldapadd

# ldapadd -x -D cn=admin,dc=capa8,dc=net -W -f groups.ldif

Si nos fijamos, en ningún momento nos ha pedido el password de usuario, ésto quiere decir que cualquier usuario con acceso anónimo puede ver toda la estructura del ldap, para securizarla vamos a hacer algo muy similar a lo que hemos hecho para añadir la OU y el CN

# vi anonymous_bind.ldif 
dn: cn=config
changetype: modify
add: olcDisallows
olcDisallows: bind_anon

dn: cn=config
changetype: modify
add: olcRequires
olcRequires: authc

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcRequires
olcRequires: authc 

y lo añadimos a ldap mediante ldapadd

# ldapadd -x -D cn=admin,dc=capa8,dc=net -W -f anonymous_bind.ldif

El resultado será que cuando hacemos la consulta en remoto ésta será la diferencia:

laura@melatonina:~$ ldapsearch -x -H ldap://10.90.226.89
ldap_bind: Inappropriate authentication (48)
	additional info: anonymous bind disallowed
laura@melatonina:~$ ldapsearch -x -H ldap://10.90.226.89 -D cn=admin,dc=capa8,dc=net -W
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# search result
search: 2
result: 32 No such object

# numResponses: 1

En el caso de querer usar algo mas amigable tenemos la opción de usar un explorador de ldap como jxplorer

# apt -y install jxplorer

En la siguiente captura un ejemplo de como tendríamos que conectarnos a éste servidor ldap de forma remota con autenticación.

A partir de aquí, recomiendo seguir éste manual para saber como añadir objetos en la base de datos ldap.

Para browsers de ldap via web está ldapadmin y algunos otros muy feúchos pero que supongo que hacen la función. Buscando por ahí he encontrado éste otro, futurice ldap user manager que no tiene mala pinta.

Y Ahora a crear usuarios, grupos e integrar la autenticación ldap en tus aplicaciones. Suerte! :)

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.