Teste e solução de problemas de conectividade

Este recurso está disponível no G Suite Enterprise, no Cloud Identity Premium, no G Suite Enterprise for Education e no G Suite for Education.

Antes de tentar conectar seu cliente LDAP ao serviço LDAP seguro, você tem a opção de fazer um teste rápido de conectividade usando ferramentas simples, como ldapsearch, ADSI ou ldp.exe. Você pode usá-las para resolver problemas, como erros na tentativa de conexão do seu cliente LDAP ao serviço.

Os testes descritos nas seções abaixo mostram possíveis problemas de configuração, mensagens de erro comuns e recomendações para corrigir esses problemas.

Este artigo contém as seguintes seções:

Observação: se você precisar entrar em contato com o suporte do G Suite ou com o suporte do Cloud Identity Premium durante este processo, salve os resultados dos comandos. Remova todas as informações de identificação pessoal do resultado antes de compartilhá-lo com a equipe de suporte.

Verificar a conectividade e fazer uma consulta LDAP

Após configurar o serviço LDAP seguro no Google Admin Console, você poderá usar uma destas três ferramentas simples para verificar a conectividade com esse serviço: ldapsearch, ADSI ou ldp.exe. Veja mais detalhes e instruções nas seções abaixo.

ldapsearch

Use o utilitário ldapsearch em uma linha de comando para fazer uma consulta LDAP básica. Quando uma consulta LDAP é executada corretamente, isso indica que tanto o cliente LDAP quanto a sessão TLS e a conexão TCP subjacentes estão funcionando conforme o esperado.

Para testar a conectividade com o ldapsearch:

  1. Crie uma configuração LDAP e siga as instruções em 1. Adicionar clientes LDAP.

    Observação: para simplificar o ambiente de teste, confirme que há pelo menos um usuário na unidade organizacional que terá acesso ao cliente LDAP.
     
  2. Faça uma consulta LDAP.

    O comando a seguir mostra como usar a ferramenta de linha de comando ldapsearch para consultar um usuário específico. Veja mais detalhes em OpenLDAP lapsearch
     

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

    Substitua os seguintes marcadores:

    {crt_file}: o nome do arquivo .crt
    {key_file}: o nome do arquivo .key
    {domain}: cada parte do nome de domínio, por exemplo: example.com seria "dc=example,dc=com"
    {user_email}: o endereço de e-mail primário de um usuário no domínio

Usar a ferramenta ldapsearch com o stunnel

Se sua implantação exigir o stunnel, utilize os seguintes comandos:

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

Substitua os marcadores específicos do stunnel:
{stunnel_host}: o endereço IP ou o nome do host do computador que executa o stunnel na sua rede.
{stunnel_port}: a porta onde o stunnel é executado. Verifique a configuração do seu stunnel.

Comando ldapsearch executado corretamente

Quando executado corretamente, o comando ldapsearch lista o usuário com o e-mail (conforme especificado ao criar o cliente LDAP) no formato LDIF.

Exemplo:

# 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, Groups, example.com
dn: cn=admin-group,ou=Groups,dc=example,dc=com
objectClass: top
objectClass: groupOfNames
objectClass: posixGroup
cn: admin-group
displayName: admin-group
description:
gidNumber: 12345
member: uid=admin,ou=Users,dc=example,dc=com
memberUid: admin
googleAdminCreated: FALSE


# example-user, Users, example.com
dn: uid=example-user,ou=Users,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:

Erros possíveis

  • Cliente e/ou biblioteca OpenLDAP compilados sem SNI

    O cliente LDAP (neste caso, o OpenLDAP) precisa permitir a indicação de nome de servidor (SNI, na sigla em inglês). Se o SNI não estiver disponível, você talvez veja um erro parecido com este:

    SASL/EXTERNAL authentication started

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

    Recomendação:
    • Se você usa o MacOS, o SASL será ativado por padrão e poderá ser ignorado com a opção "-x".
    • Adicione a opção -d5 ao ldapsearch e verifique se esta linha aparece no resultado:

      TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
       
  • O ldapsearch retorna o status 0 (sucesso), mas sem usuários

    Especificar a opção -x do ldapsearch (que usa a autenticação SASL) com certificados de cliente concluírá a autenticação, mas nenhum usuário no domínio será listado.

    Recomendação: remova a opção -x e tente novamente

ADSI Edit (Windows)
  1. Siga as etapas de 1 a 11 em ldp.exe (Windows) para instalar os certificados do cliente.
  2. Acesse Action > Connect to….
  3. Digite as seguintes configurações de conexão:

    Name: digite um nome para sua conexão, como LDAP do Google.
    Connection Point: "Select or type a Distinguished Name or Naming Context".
    Digite seu nome de domínio no formato DN (por exemplo, dc=example,dc=com para example.com).

    Computer: "Select or type a domain or server".
    ldap.google.com

    Use SSL-based Encryption: marcado
     
  4. Clique em Advanced... e digite os seguintes detalhes:

    Specify credentials: marcado
    Username: o nome de usuário da credencial de acesso no Admin Console
    Password: a senha da credencial de acesso no Admin Console
    Port Number: 636
    Protocol: LDAP
    Simple bind authentication: marcado
     
  5. Clique em OK e em OK novamente.
  6. Se a conectividade ocorrer, o conteúdo do diretório no DN de base será exibido no painel direito.
ldp.exe (Windows)
  1. Instale o OpenSSL.
  2. Converta os arquivos de certificado e de chave em um arquivo no formato PKCS12. Em um prompt de comando, digite o seguinte:

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

    Digite uma senha para criptografar o arquivo de saída.
     
  3. Acesse o Painel de Controle.
  4. Na caixa de pesquisa, pesquise "certificado" e clique em Manage user certificates.
  5. Acesse Action > All Tasks > Import….
  6. Selecione Current User e clique em Next.
  7. Clique em Browse….
  8. Na lista suspensa file type, no canto inferior direito da caixa de diálogo, selecione Personal Information Exchange (*.pfx;*.p12).
  9. Selecione o arquivo ldap-client.p12 da etapa 2, clique em Open e depois clique em Next .
  10. Digite a senha da etapa 2 e clique em Next.
  11. Selecione o armazenamento de certificado Personal, clique em Next e em Finish.
  12. Execute Ldp.exe.
  13. Acesse Connection > Connect....
  14. Digite os seguintes detalhes de conexão:

    Server: ldap.google.com
    Port: 636
    Connectionless: desmarcado
    SSL: marcado
     
  15. Clique em OK.
  16. Acesse View > Tree.
  17. Digite o DN de base. Esse é seu nome de domínio no formato DN (por exemplo, dc=example,dc=com para example.com).
  18. Clique em OK.
  19. Se a conectividade ocorrer, o conteúdo do diretório no DN de base será exibido no painel direito.

Se necessário, faça um teste básico da conectividade

Se você não conseguir um resultado em Verificar a conectividade e fazer uma consulta LDAP, siga as instruções nesta seção para testar a conectividade. Se ldapsearch não retornar o usuário esperado nem mostrar uma indicação clara de que a sessão TLS subjacente foi estabelecida, use o cliente OpenSSL para confirmar que as camadas de rede usadas pelo OpenLDAP estão funcionando como esperado.

Para fazer testes básicos de conectividade:

  1. Instale o utilitário de cliente openssl para seu sistema operacional.

    A maioria das distribuições do GNU/Linux usam o nome de pacote "openssl". Veja detalhes de outros sistemas operacionais.
     
  2.  Faça uma conexão manual com o serviço LDAP seguro usando o cliente openssl:

    openssl s_client -connect ldap.google.com:636

    Para confirmar a negociação do SSL, verifique se a seguinte linha aparece no final do resultado do openssl s_client: 

    Verify return code: 0 (ok)

Erros possíveis

O cliente/a biblioteca OpenSSL não permite o SNI

O teste de conectividade pode retornar este resultado:

Verify return code: 18 (self signed certificate)

O serviço LDAP seguro exige um cliente TLS que permita e inicie uma sessão TLS usando o SNI. Se o cliente TLS não permitir o SNI, o servidor TLS (ldap.google.com) retornará um certificado autoassinado que não passará nas verificações de validação da autoridade de certificação para indicar que o SNI é necessário.

Para confirmar esse comportamento, verifique se a linha abaixo aparece no início do resultado do cliente OpenSSL:

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

Esse erro pode ser causado por uma versão do OpenSSL que não permite o SNI ou um app que usa a biblioteca OpenSSL com o SNI explicitamente desativado.

Conexão recusada

O resultado a seguir, em que {timestamp} é um carimbo de data/hora UNIX em microssegundos, indica que a conexão TCP está sendo recusada antes do início da negociação do 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

Isso pode ser causado por:

  • um firewall de app ou de sistema no computador local;
  • um firewall na mesma rede física ou rede de upstream.

Se você quiser investigar, use tcptraceroute para saber qual host está recusando a conexão, por exemplo, tcptraceroute ldap.google.com 636.

Artigos relacionados

Isso foi útil?
Como podemos melhorá-lo?