Saltar a contenido

154. LDAP

REVISAR: * Clientes para gestión LDAP (utiles ldap)
* phpLDAPAdmin * Webmin * Gosa : Proporciona interfaz para tareas de administración de usuarios y grupos . LLeva inactivo varios años y aparece un fork con algunos de sus derarrolladores en Fusiondirectory * FusionDirectory. Como open source puede usarse gratuitamente. También dispone de servicio y suscripciones. * Además está disponible una imagen docker con fuentes en github * Busqueda: https://devconnected.com/how-to-search-ldap-using-ldapsearch-examples/

154.1 Introducción

LDAP son las siglas de Protocolo Ligero de Acceso a Directorio.
Un directorio remoto es un conjunto de objetos que están organizados de forma jerárquica, tales como nombre claves direcciones, etc. Estos objetos estarán disponibles por una serie de cliente conectados mediante una red, normalmente interna o LAN, y proporcionarán las identidades y permisos para esos usuarios que los utilicen.

LDAP está basado en el protocolo X.500 para compartir directorios,
El puerto de conexión para el protocolo LDAP es el TCP 389, aunque por supuesto, se podrá modificar por el usuario y establecerlo en el que desee si así se lo indica al servidor.

154.2 Estructura base ldap

En un directorio LDAP podremos almacenar básicamente la misma información que en un Directorio Activo de Windows. El sistema está basado en la siguiente estructura:

  • Entradas, llamadas objetos en Active Directory. Estas entradas son colecciones de atributos con un Nombre Distinguido (DN) Este nombre se utiliza para dar un identificador único e irrepetible a una entrada del directorio. Una entrada puede ser el nombre de una organización y de ella colgarán unos atributos. También una persona puede ser una entrada.
  • Atributos: los cuales poseen un tipo identificador y los correspondientes valores. Los tipos se utilizan para identificar los nombres de atributos, por ejemplo “mail”, “name”, “jpegPhoto”, etc. Algunos de los atributos que pertenecen a una entrada debe ser obligatorios y otros opcionales.
  • LDIF: el Formato de Intercambio de Datos de LDAP es la representación en texto ASCII de las entradas LDAP. Este debe ser el formato de los archivos que se utilicen para importar información a un directorio LDAP. Cuando se escriba una línea en blanco, significará el final de una entrada.
[<id>]
dn: <distinguished name>
<attrtype>: <attrvalue>
<attrtype>: <attrvalue>
<attrtype>: <attrvalue>

154.3 Instalación ldap/openldap

154.3.1 Nativo en Linux

uUbuntu utiliza openldap , que llama simplemente ldap

Instalar paquetes:

sudo apt-get install slapd ldap-utils

Para reconfigurar y poner el dominio propio:

sudo dpkg-reconfigure slapd
Se contestan varis preguntas, por ejemplo , para indicar el dominio poner: ju.vikas.eu , etc

Para ver contenido creado slapcat

Para añadir la ase dn para usuarios y grupos, se crea un fichero users.ldif de texto:

# change to your own suffix for the field [dc=srv,dc=ies]
dn: ou=people,dc=ju,dc=vikas,dc=eu
objectClass: organizationalUnit
ou: people

dn: ou=groups,dc=srv,dc=ies
objectClass: organizationalUnit
ou: groups 
y se ejecuta el comando:
sudo ldapadd -D "cn=admin,dc=ju,dc=vikas,dc=eu" -W -H ldapi:/// -f users.ldif 

Obtendríamos una BD : ldap1.

154.3.1.1 Configuración

Desde version slapd 2.3 la configuración se realza como una rama más de ldap/ldif. Como ventaja frente al fichero que se usaba anteriormente es que no es necesario reiniciar el servicio.

En la instalación se crea esta rama con un usuario de administración sin contraseña y esto obliga a crear una antes de usarla (ver)

Pasos:
1. Indicamos la entrada para modificar 2. Parámetro a modificar 3. Nueva password

```title= contraseña inicial cc.ldif dn: olcDatabase={1}hdb,cn=config changetype: modify add : olcRootPW olcRootPW: {SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=

La contraseña encriptada la obtenemos con la utilidad slappasswd  

```sh
slappasswd 
New passwor: ...
por defecto utiliza SSHA Las siguientes veces es un cambio y se usa Replace en lugar de add

154.3.2 Imagen de docker

154.4 Apache Directory Studio

web inicial: web

Programa java con GUI para administrar ldap

154.4.1 Nueva conexión.

Si se ha configurado como se indica en los apartados anteriores

  1. Indicar administrador: cn=admin,dc=ju,dc=vikas,dc=eu
  2. Puerto 389
  3. Autentificación user. cn=admin,dc=ju,dc=vikas,dc=eu
  4. Base dn dc=ju,dc=vikas,dc=eu

154.5 Consultas en ldap

Árboles: Es la organización jerarquizada de entradas. Por ejemplo, en una estructura de árbol podremos encontrar un país en la parte superior y como principal, y dentro de éste tendremos los distintos estados que conforma el país. Dentro de cada estado podremos enumerar los distritos, ciudadanos y direcciones de donde viven, y así sucesivamente.

dn: cn=Jose Castillo,dc=profesionalreview,dc=com
cn: Jose Castillo
givenName: Jose
sn: Castillo
telephoneNumber: +34 666 666 666
mail: usuario@profesionalreview.com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
Atributos de uso comun: * dn (domain name): nombre de entrada, pero no forma parte de la propia entrada. * dc: componente de dominio para identificar las partes del dominio donde se almacena el directorio LDAP. * cn (common name): nombre de atributo para identificar el nombre de usuario, por ejemplo * sn (surname): apellido del usuario * telephoneNumbre, mail…: identificar de nombre para el atributo teléfono y correo electrónico. * objectClass: distintas entradas para definir las propiedades de los atributos
* O (Organization): Entidad * U (Organization Unit): departamento * UID: User id

Un servidor LDAP, además de almacenar un árbol, puede contener subárboles que incluyen entradas específicas del dominio principal. Además, puede almacenar referencias a otros servidores de directorio para dividir el contenido si es necesario.

154.6 lddap. Gestión de usuarios UNIX

seguir este enlace local

¿Qué es PAM?
PAM (Pluggable Authentication Modules) establece una interfaz entre los programas de usuario y distintos métodos de autenticación. De esta forma, el método de autenticación se hace transparente para los programas.

154.6.1 ldapscripts

Hay muchas herramientas para la gestión de usuarios en ldap, aqui vemos para la terminal de comandos ldapscripts

Debemos instdalar :

sudo apt-get install ldapscripts
Editamos /etc/ldapscripts/ldapscripts.conf para dejarlos así:

SERVER=ldap://ju.vikas,eu
LDAPBINOPTS="-ZZ"
BINDDN='cn=admin,dc=ju,dc=vikas,dc=eu'
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
SUFFIX='dc=ju,dc=vikas,dc=eu'
GSUFFIX='ou=Groups'
USUFFIX='ou=People'
MSUFFIX='ou=Computers'

154.6.2 LDAP ACCOUNT MANAGER

Abreviado a LAM es una herramienta para la gestión de usuarios con ldap en unix.

154.7 Instalación ldap/openldap

154.7.1 Nativo en Linux

uUbuntu utiliza openldap , que llama simplemente ldap

Instalar paquetes:

sudo apt-get install slapd ldap-utils

Para reconfigurar y poner el dominio propio:

sudo dpkg-reconfigure slapd
Se contestan varis preguntas, por ejemplo , para indicar el dominio poner: ju.vikas.eu , etc

Para ver contenido creado slapcat

Para añadir la ase dn para usuarios y grupos, se crea un fichero users.ldif de texto:

```sh

155. change to your own suffix for the field [dc=srv,dc=ies]

dn: ou=people,dc=ju,dc=vikas,dc=eu objectClass: organizationalUnit ou: people

dn: ou=groups,dc=srv,dc=ies objectClass: organizationalUnit ou: groups

``` y se ejecuta el comando:

sudo ldapadd -D "cn=admin,dc=ju,dc=vikas,dc=eu" -W -H ldapi:/// -f users.ldif 

Obtendríamos una BD : ldap1.

155.0.1 Imagen de docker

155.1 Apache Directory Studio

Programa java con GUI para administrar ldap

155.1.1 Nueva conexión.

Si se ha configurado como se indica en los apartados anteriores

  1. Indicar administrador: cn=admin,dc=ju,dc=vikas,dc=eu
  2. Puerto 389
  3. Autentificación user. cn=admin,dc=ju,dc=vikas,dc=eu
  4. Base dn dc=ju,dc=vikas,dc=eu

155.2 Enlaces