Herramientas de usuario

Herramientas del sitio


informatica:certificaciones:lpic:lpic-2:210_network_client_management:210.3_ldap_client_usage

210.3 LDAP client usage

Pertenece a Topic 210: Network Client Management

  • Weight: 2
  • Description: Candidates should be able to perform queries and updates to an LDAP server. Also included is importing and adding items, as well as adding and managing users.
  • Key Knowledge Areas:
    • LDAP utilities for data management and queries
    • Change user passwords
    • Querying the LDAP directory
  • Terms and Utilities:
    • ldapsearch
    • ldappasswd
    • ldapadd
    • ldapdelete

LDAP

LDAP (Lightweight Directory Access Protocol) permite mantener un directorio con elementos clasificados. Para lo que se utiliza fundamentalmente es para almacenar usuarios con sus características de cara a la autenticación. El Directorio Activo de Windows se basa en este protocolo.

Se trata de generar elementos, meternos en categorías, unirlos a grupos… Y luego poder hacer consultas contra ese servidor LDAP (autenticación, información…)

Herramientas

En Linux hay herramientas por línea de comandos que permiten realizar operaciones en los servidores LDAP. Estas herramientas generalmente las proporciona el paquete ldap-utils (Debian) y openldap-clients (RedHat).

ldapsearch

Comando que permite efectuar peticiones a un directorio LDAP y recuperar el resultado en formato LDIF.

Sintaxis:

ldapsearch -x -D <dn_admin> -W -h <ip_servidor> -b <contexto> -s sub <atributo>=<valor>
  • -x: utilizar una autenticación simple (caso general).
  • -b <contexto>: realizar la búsqueda a partir del DN del contenedor del contexto.
  • -D <dn_admin>: realiza la autenticación con el nombre distinguido dn_admin.
  • -W: solicitar interactivamente la contraseña. Puede reemplazarse por -w seguido de la contraseña sin cifrar en la línea de comandos.
  • -h <ip_servidor>: el comando va dirigido al servidor cuya dirección es ip_servidor
  • -s sub: realiza una búsqueda recursiva en todos los niveles por debajo del contexto de búsqueda.
  • <atributo>: el nombre del atributo que será el criterio de búsqueda.
  • <valor>: el valor del atributo buscado. El carácter * representa cualquier valor existente.

Ejemplo:

usuario@ubuntu:~$ ldapsearch -x -D cn=admin,dc=example,dc=com -W -h 172.17.7.20 -b ou=usuarios,dc=example,dc=com -s sub telephoneNumber=91*

Iniciamos con el usuario admin conectándonos al servidor LDAP en example.com (172.17.7.20) y dentro de la unidad organizativa usuarios estamos pidiendo todos los números de teléfono.

# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: telephoneNumber=91*
# requesting: ALL
#
# toto, madrid, example.example
dn: cn=toto,ou=madrid,dc=example,dc=net
objectClass: person
cn: toto
sn: toto
telephoneNumber: 9123456789
# tutu, madrid, example.com
dn: cn=tutu,ou=madrid,dc=example,dc=com
objectClass: person
cn: tutu
sn: tutu
telephoneNumber: 9178945632
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2

ldapadd

Comando que lee el contenido de un archivo LDIF que contiene los datos que se modificarán y los añade al directorio.

ldapadd -x -D <dn_admin> -W -h <ip_servidor> -f <archivo_ldif>
Parámetros Descripción
-x Utilizar una autentificación simple (caso general).
-D dn_admin Realiza la autentificación con el nombre distinguido dn_admin.
-W Solicitar interactivamente la contraseña. Puede reemplazarse por -w (minúscula) seguido de la contraseña sin encriptar en la línea de comandos.
-h ip_servidor El comando va dirigido al servidor cuya dirección es ip_servidor.
-f archivo_ldif Añade los objetos especificados en el archivo archivo_ldif.

El archivo_ldif es un fichero de texto que puede ser de la siguiente manera (ejemplo de user.ldif):

dn: cn=Jesus,ou=usuarios,dc=example,dc=com
objectClass: person
cn: Jesus
sn: Jesus
telephoneNumber: 987654321

Si queremos añadir un usuario:

ldapadd -D cn=admin,dc=example,dc=com -W -h 172.17.7.20 -f user.ldif

ldapmodify

Comando que modifica objetos existentes, también se usa con un archivo LDIF como argumento y sus parámetros de uso son los mismos que los del comando ldapadd.

ldapmodify -D <dn_admin> -W -h <ip_servidor> -f <archivo_ldif>

Ejemplo de fichero change.ldif:

dn: cn=Jesus,ou=usuarios,dc=example,dc=com
changetype: modify
replace: telephoneNumber
telephoneNumber: 987654344

Modificamos el usuario:

ldapmodify -D cn=admin,dc=example,dc=com -W -h 172.17.7.20 -f change.ldif

ldapdelete

Comando que elimina objetos existentes, puede emplearse directamente sin usar un archivo LDIF.

root@server# ldapdelete -x -D cn=admin,dc=example,dc=com -W -h 172.17.7.20 cn=Jesus,ou=usuarios,dc=example,dc=com

cn=Jesus,ou=usuarios,dc=example,dc=com es el Distinguished Name (DN) del usuario.

ldappasswd

Comando permite asignar una contraseña encriptada a un objeto usuario existente en el directorio.

ldappasswd -x -D <dn_admin> -W -h <ip_servidor> -s <contraseña> <dn_usuario>
  • -s <contraseña>: la contraseña que se desea asignar al nuevo usuario. Puede reemplazarse por -S para introducir interactivamente la nueva contraseña. Ojo, primero se pide siempre la contraseña del administrador del LDAP.

Ejemplo:

root@server# ldappasswd -x -D cn=admin,dc=example,dc=com -W -h 172.17.7.20 -s patata1234 cn=Jesus,ou=usuarios,dc=example,dc=com

Configuración

Cada una de las utilidades por línea de comandos puede encontrar algunos elementos de configuración en el archivo /etc/ldap/ldap.conf:

BASE <contexto>
HOST <ip_servidor>
  • BASE <contexto>: realiza las búsquedas a partir del DN del contenedor contexto (dc=example,dc=com)
  • HOST <ip_servidor>: las peticiones se dirigen al servidor cuya dirección es ip_servidor

También se puede declarar el contexto base de LDAP mediante la variable global LDAPBASE.

Con cualquiera de esas dos posibilidades, no tendremos que estar introduciendo siempre el contexto e IP del servidor LDAP en todas las consultas.

informatica/certificaciones/lpic/lpic-2/210_network_client_management/210.3_ldap_client_usage.txt · Última modificación: por tempwin