La utilidad ldapsearch es una de las herramientas importantes para el administrador del servidor LDAP (Lightweight Directory Access Protocol). Permite obtener cualquier dato que esté disponible en el directorio LDAP. Actualmente las implementaciones LDAP más comunes son OpenLDAP y Microsoft Active Directory.
La utilidad ldapsearch se utiliza actualmente principalmente en sistemas Linux. La utilidad Ldapsearch.exe estaba disponible en Windows 2000, pero en Windows Server 2003 fue reemplazada por la herramienta dsquery. Sin embargo, incluso ahora puedes usar la herramienta Ldapsearch en Windows, todo lo que necesitas hacer es descargar e instalar el cliente OpenLDAP para Windows (por defecto el ldapsearch se encuentra en el directorio C:OpenLDAPbin).
Considere la sintaxis de la herramienta ldapsearch:
ldapsearch [opciones] [filtro] [atributos]
- -n – mostrar las acciones que se realizarán, pero no ejecutarlas;
- -v – verboso, modo de operación detallado;
- -A – mostrar sólo atributos, sin valores;
- -L (-LL, -LLL) – formato de salida (-L – LDIFv1, -LL – deshabilitar visualización de comentarios, -LLL – deshabilitar visualización de versión LDIF).
- -x – usar autenticación simple, no SASL;
- -D – utiliza el nombre de usuario para conectarse al servidor;
- -w [contraseña] – especifica la contraseña en la línea de comandos cuando se ejecuta la consulta LDAP;
- -h – Dirección del servidor LDAP;
- -p – Puerto del servidor LDAP;
- -b – directorio de inicio de búsqueda;
- -s[base|un|sub] – searchScope:
- -l – límite de tiempo en el momento de la búsqueda;
- -z – límite de tamaño de los datos en el resultado de la búsqueda;
- -Z – usa el TLS.
LEER TAMBIÉN EL PAPEL DEL FSMO: Emulador PDC
Intentemos usar la utilidad ldapsearch en Linux Debian para probar la conectividad con un controlador de dominio de Active Directory (servidor LDAP de destino).
Configuración del dominio AD:
- AD nombre de dominio – theitbros.com;
- FQDN nombre del controlador de dominio – dc1.theitbros.com;
- El nombre de usuario AD que se usa para conectarse al LDAP: TestLDAPConnUsr y su contraseña – P@ssw0r6;
En primer lugar, asegúrate de que el cliente OpenLDAP está instalado en tu sistema:
dpkg -l | grep ldap
Busca la cuenta de LDAP ADUser1 en el contenedor con el nombre DN «OU=Usuarios,OU=Londres,OU=Reino Unido,DC=lositbros,DC=com».
Un servidor LDAP normalmente acepta conexiones entrantes en el puerto 389 usando protocolos TCP o UDP. Los servidores LDAP con SSL utilizan el puerto 636.
Para comprobar la conexión LDAP (puerto TCP 389), ejecute el comando:
ldapsearch -v -x -D "TestLDAPConnUsr@theitbros.com" -w "P@ssw0r6" -b "OU=Usuarios,OU=Londres,OU=Reino Unido,DC=theitbros,DC=com" -H "ldap://dc1.theitbros.com" sAMNombreDeCuenta= ADUsuario1
En este caso, las credenciales de usuario del ADUser1 se transfieren a través de la red en forma de texto claro, lo cual no es seguro.
Puedes conectarte al LDAP que utiliza el certificado SSL sobre el protocolo LDAPS protegido (puerto TCP 636). Para ello, crea un archivo con los certificados raíz de tu dominio CA en formato PEM y codificado en Base-64 (por ejemplo /etc/ssl/cert/itbroscert.pam) y especifica la ruta de este archivo en el archivo de configuración del cliente OpenLDAP (/etc/ldap/ldap.conf o /etc/openldap/ldap.conf),
#TLS_CACERT /etc/ssl/certs/ca-certificates.crt
TLS_CACERT /etc/ssl/certs/itbroscert.pam
Ahora ejecuta la consulta LDAPS:
ldapsearch -v -x -D "TestLDAPConnUsr@theitbros.com" -w "P@ssw0r6"
-b "OU=Usuarios,OU=Londres,OU=Reino Unido,DC=theitbros,DC=com" -H "ldaps://dc1.theitbros.com" sAMNombreDeCuenta= ADUsuario1
Si has introducido un nombre de usuario o una contraseña incorrectos para conectarte a LDAP, la utilidad volverá:
ldap_bind: Credenciales inválidas (49) información adicional: La unión simple falló: NT_STATUS_LOGON_FAILURE
Puede listar todos los usuarios en un directorio LDAP específico:
ldapsearch -xLLL -D "TestLDAPConnUsr@theitbros.com" -w "P@ssw0r6" -H "ldaps://dc1.theitbros.com" -b "OU=Usuarios,OU=Londres,OU=Reino Unido,DC=theitbros,DC=com"
Para buscar por nombre de usuario:
ldapsearch -W -x -- "TestLDAPConnUsr@theitbros.com" -b "OU=Usuarios,OU=Londres,OU=Reino Unido,DC=lositbros,DC=com" "(uid=usuario1)"
Para mostrar todas las cuentas de usuario excepto las de los usuarios discapacitados, utilice el comando
ldapsearch -x -D "TestLDAPConnUsr@theitbros.com" -b "dc=ejemplo,dc=com-H "ldaps://dc1.theitbros.com" -W $0027(&(proxyAddresses=smtp*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))$0027