Pruebas de conectividad y solución de problemas

Esta función está disponible en G Suite Enterprise, Cloud Identity Premium, G Suite Enterprise para Centros Educativos y G Suite para Centros Educativos.

Antes de intentar conectar el cliente LDAP al servicio LDAP seguro, puedes hacer una prueba de conectividad opcional con herramientas como ldapsearch, ADSI o ldp.exe. Estas herramientas también sirven para solucionar problemas en el caso de que surjan errores al intentar conectar tu cliente LDAP al servicio.

Con las pruebas descritas en este artículo, puedes saber si tienes un problema de configuración, ver los mensajes de error más habituales y consultar recomendaciones sobre cómo resolver dichos problemas.

Este artículo contiene las siguientes secciones:

Nota: Si durante este proceso necesitas ponerte en contacto con el equipo de asistencia de G Suite o con el de Cloud Identity Premium, recuerda guardar el resultado de los comandos. Asegúrate de quitar cualquier tipo de información personal identificable de los resultados antes de compartirlos con el equipo de asistencia.

Verificar la conectividad y hacer consultas LDAP

Una vez que hayas configurado el servicio LDAP seguro en la consola de administración de Google, puedes utilizar cualquiera de las herramientas ldapsearch, ADSI o ldp.exe para verificar la conectividad con dicho servicio. Para obtener más información e instrucciones, consulta las secciones de este artículo.

ldapsearch

Desde una línea de comandos, con la herramienta ldapsearch puedes hacer una consulta LDAP básica. Si el resultado es positivo, significa que el cliente LDAP y las sesiones TLS subyacentes, además de las conexiones TCP, están funcionando correctamente.

Para probar la conectividad con ldapsearch:

  1. Crea una configuración LDAP y descarga el certificado siguiendo las instrucciones de la sección 1. Añadir clientes LDAP.

    Nota: Para simplificar el entorno de prueba, asegúrate de que haya al menos un usuario en la unidad organizativa a la que has autorizado el acceso al cliente LDAP.
     
  2. Haz una consulta LDAP.

    Consulta la página sobre ldapsearch de OpenLDAP para obtener más información sobre cómo hacer una consulta acerca de un usuario particular. A continuación tienes un ejemplo de cómo se puede emplear la herramienta de línea de comandos ldapsearch
     

    LDAPTLS_CERT={crt_file} LDAPTLS_KEY={key_file} ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} '(mail={user_email})'

    Sustituye los siguientes marcadores de posición:

    {crt_file}: nombre del archivo .crt
    {key_file}: nombre del archivo .key
    {domain}: cada parte del nombre de dominio (por ejemplo: example.com es "dc=example,dc=com")
    {user_email}: dirección de correo electrónico principal de un usuario del dominio

Utilizar ldapsearch con Stunnel

Si tu implementación requiere que utilices Stunnel, emplea este comando:

ldapsearch -H ldap://{stunnel_host}:{stunnel_port} -b
dc={domain},dc={domain} '(mail={user_email})'

Sustituye los marcadores de posición de Stunnel:
{stunnel_host}: dirección IP o nombre de host del equipo que ejecuta Stunnel en tu red.
{stunnel_port}: puerto en el que se ejecuta Stunnel. Comprueba la configuración.

Comando ldapsearch ejecutado correctamente

Si el comando ldapsearch devuelve un resultado positivo, se mostrará en formato LDIF el usuario con el correo electrónico que especificaste al crear el cliente LDAP.

Por ejemplo:

# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# example.com
dn: dc=example,dc=com
objectClass: top
objectClass: domain
objectClass: dcObject
dc: example

# admin-group, Grupos, example.com
dn: cn=admin-group,ou=Grupos,dc=example,dc=com
objectClass: top
objectClass: groupOfNames
objectClass: posixGroup
cn: admin-group
displayName: admin-group
description:
gidNumber: 12345
member: uid=admin,ou=Usuarios,dc=example,dc=com
memberUid: admin
googleAdminCreated: FALSE


# example-user, Usuarios, example.com
dn: uid=example-user,ou=Usuarios,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
uid: example-user
googleUid: example-user
posixUid: example-user
cn: example-user
cn: FirstName LastName
sn: FirstName
displayName: FirstName LastName
givenName: FirstName
mail: example-user@example.com
uidNumber: 12345
gidNumber: 12345
homeDirectory: /home/example-user
loginShell: /bin/bash
gecos:

Posibles errores

  • El cliente o la biblioteca de OpenLDAP se compilan sin compatibilidad SNI

    El indicador del nombre del servidor (SNI) es necesario para permitir la compatibilidad con el cliente LDAP (OpenLDAP, en este caso). Si no está disponible, aparecerá un error similar al siguiente:

    SASL/EXTERNAL authentication started

    ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
     additional info: SASL(-4): no mechanism available:

    Recomendación:
    • Si utilizas macOS, el método SASL está habilitado de forma predeterminada y se puede omitir con la opción "-x".
    • Añade la opción -d5 a ldapsearch. A continuación, comprueba el resultado de la siguiente línea:

      TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
       
  • ldapsearch se ejecuta correctamente y devuelve el estado 0 como resultado, pero ningún usuario

    Si especificas la opción de ldapsearch -x (utiliza la autenticación SASL) con certificados de cliente, se autenticará correctamente, pero no se generará una lista de los usuarios del dominio.

    Recomendación: Elimina la opción -x e inténtalo de nuevo.

ADSI Edit (Windows)
  1. Sigue los 11 primeros pasos de la sección ldp.exe (Windows) para instalar los certificados de cliente.
  2. Ve a Action > Connect to (Acción > Conectar a).
  3. Introduce estos ajustes de conexión:

    Name (Nombre): da un nombre a la conexión, como Google LDAP.
    Connection Point (Punto de conexión): selecciona o introduce un nombre completo o contexto de nombre.
    Introduce el nombre de tu dominio en formato DN. Por ejemplo, dc=example,dc=com si tu dominio fuera example.com.

    Computer (Equipo): selecciona o escribe un dominio o servidor.
    ldap.google.com

    Use SSL-based Encryption (Usar cifrado SSL): marca esta opción.
     
  4. Haz clic en Advanced (Opciones avanzadas) e introduce los siguientes datos:

    Specify credentials (Especificar credenciales): marca esta opción
    Username (Nombre de usuario): nombre de usuario de acceso generado en la consola de administración
    Password (Contraseña): contraseña de acceso generada en la consola de administración
    Port Number (Número de puerto): 636
    Protocol (Protocolo): LDAP
    Simple bind authentication (Autenticación de enlace simple): marca esta opción
     
  5. Haz clic en Aceptar y, a continuación, vuelve a hacer clic en Aceptar.
  6. Si se conecta correctamente, se mostrará el contenido del directorio de la base DN en el panel derecho.
ldp.exe (Windows)
  1. Instala OpenSSL.
  2. Convierte los archivos .cert y .key en un archivo con formato PKCS12. En la línea de comandos, introduce la siguiente información:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    Introduce una contraseña para cifrar el archivo de salida.
     
  3. Ve al panel de control.
  4. En el cuadro de búsqueda, introduce "certificado" y haz clic en Manage user certificates (Administrar certificados de usuario).
  5. Ve a Action > All Tasks > Import (Acción > Todas las tareas > Importar).
  6. Selecciona Current User (Usuario actual) y haz clic en Next (Siguiente).
  7. Haz clic en Browse (Examinar).
  8. En el menú desplegable para elegir el tipo de archivo, situado en la esquina inferior derecha del cuadro de diálogo, selecciona Personal Information Exchange (*.pfx;*.p12), es decir, "Intercambio de información personal (*.pfx;*.p12)".
  9. Selecciona el archivo ldap-client.p12 del paso 2, haz clic en Open (Abrir) y, después, en Next (Siguiente).
  10. Introduce la contraseña del paso 2 y haz clic en Next.
  11. Selecciona el almacén de certificados Personal, haz clic en Next y, después, en Finish (Finalizar).
  12. Ejecuta Ldp.exe.
  13. Ve a Connection > Connect (Conexión > Conectar).
  14. Introduce los siguientes datos:

    Server (Servidor): ldap.google.com
    Port (Puerto): 636
    Connectionless (Sin conexión): desmarca esta opción.
    SSL: marca esta opción.
     
  15. Haz clic en OK (Aceptar).
  16. Ve a View > Tree (Ver > Árbol).
  17. Introduce el nombre de dominio base; es decir, el nombre del dominio en formato DN. Por ejemplo, dc=example,dc=com si tu dominio fuera example.com.
  18. Haz clic en Aceptar.
  19. Si se conecta correctamente, se mostrará el contenido del directorio de la base DN en el panel derecho.

Hacer pruebas de conectividad básicas si es necesario

Si no te funciona lo descrito en el apartado Verificar la conectividad y hacer consultas LDAP, sigue las instrucciones de las pruebas de conectividad que encontrarás en esta sección. Si ldapsearch no devuelve el usuario esperado ni indica de forma clara que la sesión TLS subyacente se ha ejecutado correctamente, verifica con el cliente OpenSSL que las capas de red en las que se basa OpenLDAP funcionan como sería de esperar.

Para hacer pruebas de conectividad básicas, sigue estos pasos:

  1. Instala la utilidad de cliente OpenSSL correspondiente a tu sistema operativo.

    La mayor parte de las distribuciones GNU/Linux usan el nombre del paquete "openssl". Consulta información detallada sobre otros sistemas operativos.
     
  2.  Establece una conexión manual con el servicio LDAP seguro mediante el cliente OpenSSL:

    openssl s_client -connect ldap.google.com:636

    La presencia de la siguiente línea al final de la salida de openssl s_client indica que la negociación SSL ha sido positiva: 

    Verify return code: 0 (ok)

Posibles errores

El cliente o biblioteca de OpenSSL no es compatible con SNI (indicador del nombre del servidor)

Durante la prueba de conectividad, se puede devolver el siguiente resultado:

Verify return code: 18 (self signed certificate)

El servicio LDAP seguro requiere un cliente TLS que sea compatible e inicie una sesión TLS mediante SNI. Si ese cliente no es compatible con la SNI, el servidor TLS (ldap.google.com) devuelve un certificado con firma automática que no superará las comprobaciones de validación de una autoridad de certificación (CA) para indicar que requiere la SNI.

Este comportamiento se puede confirmar si, en los resultados del cliente OpenSSL, aparece esta línea cerca del inicio:

depth=0 OU = "No SNI provided; please fix your client.", CN = invalid2.invalid

Este error puede producirse si tienes una versión de OpenSSL que no es compatible con la SNI o una aplicación que utiliza la biblioteca de OpenSSL y tiene la SNI inhabilitada.

Conexión rechazada

Si se da el siguiente resultado, donde {timestamp} es una marca de tiempo de UNIX en microsegundos, significa que la conexión TCP se rechaza de forma activa antes de que pueda iniciarse la negociación TLS:

{timestamp}:error:0200206F:system library:connect:Connection refused:crypto/bio/b_sock2.c:110:
{timestamp}:error:2008A067:BIO routines:BIO_connect:connect error:crypto/bio/b_sock2.c:111:connect:errno=111

Este rechazo pueden producirlo varios elementos:

  • Un cortafuegos del equipo local a nivel de aplicación o de sistema
  • Un cortafuegos de la misma red física o de la red de subida

Para determinar qué host rechaza la conexión, puedes utilizar tcptraceroute (por ejemplo, tcptraceroute ldap.google.com 636).

Artículos relacionados

¿Te ha resultado útil esta información?
¿Cómo podemos mejorar esta página?