Testowanie łączności i rozwiązywanie problemów

Ta funkcja jest dostępna w G Suite Enterprise, Cloud Identity Premium, G Suite Enterprise dla Szkół i Uczelni oraz G Suite dla Szkół i Uczelni.

Przed próbą połączenia klienta LDAP z usługą Bezpieczny LDAP możesz opcjonalnie wykonać szybki test łączności przy użyciu prostych narzędzi, takich jak ldapsearch, ADSI lub ldp.exe. Za pomocą tych narzędzi możesz też rozwiązywać problemy, jeśli podczas próby połączenia klienta LDAP z usługą wystąpią błędy.

W poniższych sekcjach opisano testy, które pozwolą Ci ustalić, czy występuje problem z konfiguracją po Twojej stronie. Omówiono w nich też typowe komunikaty o błędach i podano zalecenia dotyczące rozwiązywania tych problemów.

Ten artykuł zawiera następujące sekcje:

Uwaga: jeśli w trakcie tego procesu konieczne będzie skontaktowanie się z zespołem pomocy G Suite lub zespołem pomocy Cloud Identity Premium, pamiętaj o zapisaniu danych wyjściowych poleceń. Usuń wszelkie informacje umożliwiające identyfikację z danych wyjściowych przed udostępnieniem ich zespołowi pomocy.

Sprawdzanie łączności i uruchamianie zapytania LDAP

Po skonfigurowaniu usługi Bezpieczny LDAP w konsoli administracyjnej Google możesz użyć jednego z tych trzech prostych narzędzi do sprawdzenia łączności z tą usługą: ldapsearch, ADSI lub ldp.exe. Szczegółowe informacje i instrukcje znajdziesz w poniższych sekcjach.

Narzędzie ldapsearch

Za pomocą narzędzia ldapsearch możesz utworzyć w wierszu poleceń podstawowe zapytanie LDAP. Pomyślny wynik zapytania LDAP wskazuje, że klient LDAP, sesja TLS i połączenie TCP działają prawidłowo.

Aby przetestować łączność za pomocą narzędzia ldapsearch:

  1. Utwórz konfigurację LDAP i pobierz certyfikat, postępując zgodnie z instrukcjami w artykule 1. Dodaj klienty LDAP.

    Uwaga: aby uprościć środowisko testowe, upewnij się, że w jednostce organizacyjnej, dla której autoryzujesz dostęp klienta LDAP, istnieje co najmniej jedno konto użytkownika.
     
  2. Wykonaj zapytanie LDAP.

    W poniższym poleceniu pokazano, jak za pomocą narzędzia wiersza poleceń ldapsearch wykonać zapytanie dotyczące konkretnego użytkownika (więcej informacji: OpenLDAP lapsearch): 
     

    LDAPTLS_CERT={plik_crt} LDAPTLS_KEY={plik_key} ldapsearch -H ldaps://ldap.google.com:636 -b dc={domena},dc={domena} '(mail={adres_e-mail_użytkownika})'

    Zastąp następujące zmienne:

    {plik_crt}: nazwa pliku .crt;
    {plik_key}: nazwa pliku .key;
    {domena}: poszczególne części nazwy domeny, na przykład: example.com będzie mieć postać „dc=example,dc=com”;
    {adres_e-mail_użytkownika}: podstawowy adres e-mail użytkownika w domenie.

Używanie narzędzia ldapsearch z bezpiecznym tunelem

Jeśli wdrożenie wymaga zastosowania bezpiecznego tunelu, użyj tych poleceń:

ldapsearch -H ldap://{host_bezpiecznego_tunelu}:{port_bezpiecznego_tunelu} -b
dc={domena},dc={domena} '(mail={adres_e-mail_użytkownika})'

Zastąp zmienne związane z bezpiecznym tunelem:
{host_bezpiecznego_tunelu}: adres IP lub nazwa hosta komputera z uruchomionym bezpiecznym tunelem w Twojej sieci;
{port_bezpiecznego_tunelu}: port, na którym działa bezpieczny tunel – sprawdź konfigurację bezpiecznego tunelu.

Scenariusz z pomyślnym wynikiem polecenia ldapsearch

Pomyślne dane wyjściowe polecenia ldapsearch będą zawierać nazwę użytkownika wraz z adresem e-mail (określonym podczas tworzenia klienta LDAP) w formacie LDIF.

Przykład:

# 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:

Możliwe błędy

  • Klient lub biblioteka OpenLDAP zostały skompilowane bez obsługi SNI

    Klient LDAP (w tym przypadku OpenLDAP) musi obsługiwać SNI (Server Name Indication). Jeśli usługa SNI jest niedostępna, może pojawić się błąd podobny do następującego:

    SASL/EXTERNAL authentication started

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

    Zalecenia:
    • Jeśli używasz systemu macOS, mechanizm SASL jest domyślnie włączony i można go ominąć za pomocą opcji „-x”.
    • Dodaj opcję -d5 do polecenia ldapsearch i poszukaj w danych wyjściowych następującego wiersza:

      TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
       
  • Polecenie ldapsearch zwraca stan 0 (powodzenie), ale w danych wyjściowych nie ma żadnych użytkowników

    Określenie dla polecenia ldapsearch opcji -x (użycia uwierzytelniania SASL) z certyfikatami klienta powoduje pomyślne uwierzytelnienie, ale nie powoduje wyświetlenia listy użytkowników w domenie.

    Zalecenie: usuń opcję -x i spróbuj ponownie.

Narzędzie Edycja ADSI (Windows)
  1. Wykonaj kroki 1–11 podane w sekcji Narzędzie ldp.exe (Windows), aby zainstalować certyfikaty klienta.
  2. Otwórz Akcja > Połącz z…
  3. Wpisz następujące ustawienia połączenia:

    Nazwa: wpisz nazwę połączenia, na przykład Google LDAP.
    Punkt połączenia: „Wybierz lub wpisz nazwę wyróżniającą lub kontekst nazewnictwa”.
    Wpisz nazwę domeny w formacie nazwy wyróżniającej (na przykład dc=example,dc=com dla domeny example.com).

    Komputer: „Wybierz lub wpisz domenę albo serwer”
    ldap.google.com

    Użyj szyfrowania SSL: zaznaczone
     
  4. Kliknij Zaawansowane i wpisz następujące informacje:

    Określ poświadczenia: zaznaczone
    Nazwa użytkownika: nazwa użytkownika z danych logowania z konsoli administracyjnej
    Hasło: hasło z danych logowania z konsoli administracyjnej
    Numer portu: 636
    Protokół: LDAP
    Uwierzytelnianie prostego powiązania: zaznaczone
     
  5. Kliknij przycisk OK, a następnie kliknij przycisk OK jeszcze raz.
  6. Jeśli uda się nawiązać łączność, w prawym okienku zostanie wyświetlona zawartość katalogu w obszarze podstawowej nazwy wyróżniającej.
Narzędzie ldp.exe (Windows)
  1. Zainstaluj OpenSSL.
  2. Przekonwertuj plik certyfikatu i plik klucza na jeden plik w formacie PKCS12. W wierszu poleceń wpisz:

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

    Wpisz hasło, aby zaszyfrować plik wyjściowy.
     
  3. Otwórz Panel sterowania.
  4. W polu wyszukiwania wyszukaj „certyfikat” i kliknij Zarządzaj certyfikatami użytkowników.
  5. Otwórz Akcja > Wszystkie zadania > Importuj…
  6. Wybierz Bieżący użytkownik i kliknij Dalej.
  7. Kliknij Przeglądaj…
  8. Z listy typ pliku w prawym dolnym rogu okna wybierz Wymiana informacji osobistych (*.pfx;*.p12).
  9. Wybierz plik ldap-client.p12 z kroku 2, kliknij Otwórz, a następnie kliknij Dalej.
  10. Wpisz hasło z kroku 2 i kliknij Dalej.
  11. Wybierz magazyn certyfikatów Osobisty, kliknij Dalej, a następnie kliknij Zakończ.
  12. Uruchom Ldp.exe.
  13. Otwórz Połączenie > Połącz…
  14. Wpisz następujące dane połączenia:

    Serwer: ldap.google.com
    Port: 636
    Bez połączenia: niezaznaczone
    SSL: zaznaczone
     
  15. Kliknij OK.
  16. Otwórz Widok > Drzewo.
  17. Wpisz podstawową nazwę wyróżniającą. Jest to nazwa domeny w formacie nazwy wyróżniającej, na przykład dc=example,dc=com w przypadku domeny example.com.
  18. Kliknij OK.
  19. Jeśli uda się nawiązać łączność, w prawym okienku zostanie wyświetlona zawartość katalogu w obszarze podstawowej nazwy wyróżniającej.

Wykonywanie podstawowych testów łączności – w razie potrzeby

Jeśli nie możesz uzyskać pomyślnego wyniku w sekcji Sprawdzanie łączności i uruchamianie zapytania LDAP, postępuj zgodnie z instrukcjami w tej sekcji, aby przetestować łączność. Jeśli narzędzie ldapsearch nie zwraca danych oczekiwanego użytkownika i jednoznacznego wskazania, że podstawowa sesja TLS działa pomyślnie, za pomocą klienta OpenSSL sprawdź, czy warstwy sieciowe, na których polega OpenLDAP, działają zgodnie z oczekiwaniami.

Aby przeprowadzić podstawowe testy łączności:

  1. Zainstaluj narzędzie klienckie openssl odpowiednie do używanego systemu operacyjnego.

    W większości dystrybucji GNU/Linuksa używa się pakietu „openssl”. Zapoznaj się ze szczegółowymi informacjami dotyczącymi innych systemów operacyjnych.
     
  2.  Utwórz połączenie ręczne z usługą Bezpieczny LDAP za pomocą klienta openssl:

    openssl s_client -connect ldap.google.com:636

    Upewnij się, że negocjacje SSL powiodły się – będzie to potwierdzone przez obecność następującego wiersza na końcu danych wyjściowych openssl s_client: 

    Verify return code: 0 (ok)

Możliwe błędy

Klient/biblioteka OpenSSL nie obsługuje SNI (Server Name Indication)

W trakcie testu łączności mogą zostać zwrócone następujące dane wyjściowe:

Verify return code: 18 (self signed certificate)

Usługa Bezpieczny LDAP wymaga klienta TLS obsługującego i inicjującego sesję TLS za pomocą SNI (Server Name Indication). Jeśli klient TLS nie obsługuje SNI, serwer TLS (ldap.google.com) zwróci certyfikat podpisany samodzielnie, który nie przejdzie testów weryfikacji urzędu certyfikacji, aby wskazać, że wymagana jest usługa SNI.

Takie działanie można potwierdzić przez odszukanie w początkowej części danych wyjściowych klienta OpenSSL następującego wiersza:

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

Przyczyną tego błędu może być na przykład wersja OpenSSL bez obsługi usługi SNI lub aplikacja korzystająca z biblioteki OpenSSL z jawnie wyłączoną usługą SNI.

Odmowa nawiązania połączenia

Jeśli zostaną zwrócone następujące dane wyjściowe – gdzie {sygnatura_czasowa} to sygnatura czasowa UNIX w mikrosekundach – oznacza to, że połączenie TCP jest aktywnie odrzucane jeszcze przed rozpoczęciem negocjacji TLS:

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

Problem może powodować:

  • zapora sieciowa na poziomie aplikacji lub na poziomie systemu na komputerze lokalnym,
  • zapora sieciowa w tej samej sieci fizycznej lub sieci nadrzędnej.

Aby to zbadać, ustal za pomocą polecenia tcptraceroute, który host odrzuca połączenie, na przykład: tcptraceroute ldap.google.com 636.

Powiązane artykuły

Czy to było pomocne?
Jak możemy ją poprawić?