Suele pasar que nuestra pyme (red loca, biblioteca, etc) comience a crecer y ya se nos va de las manos andar creando usuarios locales en cada maquina o servicio que tengamos. En esta entrada les voy a mostrar como Instalar Openldap en un servidor con ubuntu 20.04 y de paso obviamente la Gestión de usuarios con Openldap como para que tengan una iniciación en el tema y después ir mejorando paso a paso con otras cuestiones como por ejemplo, asociar los usuarios a una nube etc etc. Los dejo entonces con este tutorial que denomine Gestión de usuarios con Openldap

Como siempre deberíamos saber que ldap viene de Lightweight Directory Access Protocol y es un protocolo estándar abierto por lo que muchas empresas tienen su propia implementacion, algunas de pago y otras gratuitas. En microsoft Windows Server podriamos realizar una implementación de Microsoft Active Directory y en cuanto a lo más usado y gratuito en nuestra comunidad nos basaremos en la implementacion de OpenLdap.

openldap

Vamos a comenzar con la instalación donde como siempre actualizamos y luego instalamos:

sudo apt update && sudo apt upgrade
sudo apt -y install slapd ldap-utils

En la siguiente imagen van a poder apreciar que la instalación es rapida y sencilla (yo ya tenia actualizado el sistema por eso no ejecuto el primer comando).

instalando openldap
instalando openldap

Durante el proceso de instalación nos piden que ingresemos una clave la cual debe ser MAS QUE SEGURA por que es desde donde vamos a administrar los usuarios de todo nuestro servicio. En mi caso como es un ejemplo virtualizado puse 1234

Ahora viene lo más complicado! así que vamos a ir conociendo que es esto de la Gestión de usuarios con Openldap

Un poco de teoria que no nos va a venir mal:

LDAP se basa en las entradas. Una entrada en un directorio LDAP representa una sola unidad o información y se identifica de forma única por lo que se llama un nombre distinguido ( DN ). Cada uno de los atributos de la entrada tiene un tipo y uno o más valores.

Nos vamos a encontrar con que las ENTRADAS tienen ATRIBUTOS asociados. Los tipos suelen ser CN para el nombre común o “Mail ” para la dirección de correo electrónico.

Los atributos mas utilizados:

  • uid (user id): Identificación única de la entrada en el árbol.
  • objectClass: Indica el tipo de objeto al que pertenece la entrada.
  • cn (common name): Nombre de la persona representada en el objeto.
  • givenname: Nombre de pila.
  • sn (surname): Apellido de la persona.
  • o (organization): Entidad a la que pertenece la persona.
  • u (organizational unit): El departamento en el que trabaja la persona.
  • mail: dirección de correo electrónico de la persona.

El primer comando que conoceremos es slapcat que nos muestra la configuración actual.

slapcat en openldap
comando slapcat

Vamos a revisar que ip tenemos en nuestro servidor usando el comando:

ip addr show
ip addr show
revisando configuración de la placa de red (también se puede usar ifconfig)

Nuestro dominio será luiszambrana.local por lo que una primer configuración sera editar el archivo /etc/hosts

sudo nano /etc/hosts
ldap editando hosts

como se ve en la imagen anterior agregamos la linea que empieza con la ip que descubrimos antes (la cual recomiendo que sea fija).

A continuación nos vamos a basar en la libreria libnss-ldap la cual nos da una interfaz para acceder y configurar distintas bases de datos utilizadas para almacenar cuentas de usuario.

sudo apt install -y libnss-ldap
configurando ldap
Pondremos la ip que venimos configurando
configurando ldap
Respetando el nombre que venimos usando completamos como se ve en la imagen anterior
configurando ldap
Creamos el usuario admin

Seguramente nos va a pedir la contraseña para admin, tratemos siempre de usar contraseñas fuertes. Yo uso 1234 como les indique antes por que estoy haciendo este tutorial.

configurando ldap
clave para ldap

Si llegaste aca vas muy bien y vas a poder lograr un buen servicio ldap en tu hogar, pyme etc, pero sobre todo estaras aprendiendo la configuración de un servicio de Gestión de usuarios con Openldap

A continuación activamos el modulo pam:

sudo pam-auth-update
modulo pam

Luego sencillamente editaremos el archivo /etc/ldap.conf y tendremos que ver varias lineas comentadas pero estas que les muestro a continuación deberian estar sin comentar (#).

host 192.168.1.111 base 
dc=luiszambrana,dc=local 
uri ldapi://192.168.1.111/ 
rootbinddn cn=admin,dc=luiszambrana,dc=local 
ldap_version 3
bind_policy soft

A continuación ejecutamos:

sudo dpkg-reconfigure slapd

Si bien es bastante intuitivo puede que las primeras veces cueste, asi que vamos a ir contestando según la imagen:

ldap
respondemos NO
ldap
ponemos el nombre que venimos usando
ldap
lo mismo sin el .local
ldap
escribimos la contraseña
ldap
respondemos NO
ldap
Respondemos YES
ldap
concluye!
arbol ldap
arbol ldap

Como vemos en la imagen anterior nuestro “árbol ldap” esta formado en este caso por un DC que es local (podria ser .com.ar) por una entidad dc (luiszambrana), por unidades organizativas (grupos) y por los usuarios.

Editaremos la base para continuar con este ejemplo:

sudo nano ~/base.ldif
dn: ou=familia,dc=luiszambrana,dc=local
objectClass: organizationalUnit
ou: familia

dn: ou=invitados,dc=luiszambrana,dc=local
objectClass: organizationalUnit
ou: invitados
ldap
archivo base.ldif

Guardamos los cambios y ejecutamos:

 sudo ldapadd -x -D cn=admin,dc=luiszambrana,dc=local -W -f base.ldif

Nos pide la clave de ldap que pusimos anteriormente (yo puse 1234) y veremos la siguiente respuesta:

ldap
se añaden los cambios!

Ya creamos las unidades organizativas y a continuación crearemos los usuarios. Este trabajo suele ser muy arduo en pymes, instituciones donde las cosas se hacen por pedido verbal. Si sos sysadmin es importante que lo que vayas a hacer venga de alguien como RRHH. O sea, mi consejo es que la solicitud de alta y baja de usuarios la hagas argumentada en pedidos formales. Algunos piensan que es burocracia pero son los mismos que se borran cuando pasa algo y el unico responsable quien es???…..

Ejecutamos el comando:

sudo nano ~/usuario.ldif

Una plantilla que podes copiar es esta que sigue a continuación aunque se pueden agregar o quitar datos:

ldap
plantilla de usuario ldap

Guardamos los cambios y ejecutamos:

sudo ldapadd -x -D cn=admin,dc=luiszambrana,dc=local -W -f usuario.ldif
ldap
agregamos el usuario

A continuación veremos que con una simple busqueda de ldap podremos ver si esta correcto lo que venimos haciendo:

te dejo el comando de la imagen anterior:

ldapsearch -xLLL -b "dc=lzambrana,dc=local" uid=lzambrana sn givenName cn

Recordamos el primer comando que ejecutamos para ver todo sobre el ldap configurado:

sudo slapcat

Probalo!!!

Claramente es raro tener que hacer todo por consola, asi que si te parece tambien te muestro en este tutorial, laaaaargo, sobre Gestión de usuarios con Openldap como instalar un cliente web para hacer la gestion:

sudo apt-get install phpldapadmin -y

Recordamos que la ip utilizada por nuestro servidor (vos mira la tuya) era 192.168.1.111 entronces para entrar:

http://192.168.1.111/phpldapadmin/

Luego veremos:

ldap gestion de usuarios

Pulsamos sobre el login de la izquierda:

ldap

Claramente el aviso de que la conexion no esta encriptada basicamente por no usar SSL. Para mi es algo local asi que por ahora no me preocupa, pero, en otros tutoriales vamos a ver como mejorar todo esto.

ldap

Ya estamos adentro!!

IMPORTANTE:

Si a la derecha no te aparece correctamente tu dominio de ldap puede que algunos archivos no esten correctamente configurado. Como lo corregis? de esta manera:

sudo nano /usr/share/phpldapadmin/config/config.php

Esta linea:

$servers->setValue('server','base',array('dc=example,dc=com'));

la cambias por esto:

$servers->setValue('server','base',array('dc=luizambrana,dc=local'));

y esta otra linea:

$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');

la cambias por esta:

$servers->setValue('login','bind_id','cn=admin,dc=luiszambrana,dc=local');

Guardas el archivo y recargas la pagina!

ldap

Ya esta configurado ldap y ademas un cliente web para poder gestionar tus usuarios de manera grafica.

Si te gusta la entrada te agradeceria muchismo que la compartas en tus redes sociales ya que como verás no hay ningun tipo de publicidad en el blog que sustente este hobbie. Si ademas me queres ayudar con un cafesito te invito a hacer clic aca:

Invitame un café en cafecito.app
Print Friendly, PDF & Email
Share:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *