Jak włączyć podpisywanie protokołu LDAP w systemie Windows Server

W tym artykule opisano sposób włączania logowania LDAP w systemach Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows 10 i Windows 11.

Dotyczy: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 11 — wszystkie wersje, Windows 10 — wszystkie wersje
Oryginalny numer KB: 935834

Podsumowanie

Można znacząco zwiększyć bezpieczeństwo serwera katalogów, konfigurując serwer tak, aby odrzucał powiązania LDAP z użyciem prostego uwierzytelniania i warstwy zabezpieczeń (SASL), które nie żądają podpisania (weryfikacji integralności) lub odrzucał proste powiązania LDAP wykonywane na połączeniu w postaci zwykłego tekstu (bez szyfrowania SSL/TLS). Powiązania SASL mogą obejmować protokoły, takie jak Negotiate, Kerberos, NTLM i Digest.

Niepodpisany ruch sieciowy jest podatny na ataki powtarzania. W przypadku takich ataków intruz przechwytuje próbę uwierzytelnienia i wystawienie biletu. Intruz może ponownie użyć biletu, aby personifikować uprawnionego użytkownika. Ponadto niepodpisany ruch sieciowy jest podatny na ataki typu man-in-the-middle (MIM), w których intruz przechwytuje pakiety między klientem a serwerem, zmienia pakiety, a następnie przekazuje je do serwera. Jeśli dzieje się to na serwerze LDAP, osoba atakująca może spowodować, że serwer podejmie decyzje oparte na sfałszowanych żądaniach od klienta LDAP.

Jak odnajdywać klienty, które nie używają opcji Wymagaj podpisywania

Po wprowadzeniu tej zmiany konfiguracji klienty korzystające z niepodpisanych powiązań SASL (Negotiate, Kerberos, NTLM lub Digest) LDAP lub na prostych powiązaniach LDAP za pośrednictwem połączenia bez protokołu SSL/TLS przestają działać. Aby ułatwić identyfikację tych klientów, serwer katalogów Active Directory Domain Services (AD DS) lub Lightweight Directory Server (LDS) rejestruje sumaryczne zdarzenie o identyfikatorze 2887 raz na 24 godziny, aby wskazać, ile takich powiązań miało miejsce. Zalecamy skonfigurowanie tych klientów, aby nie korzystały z takich powiązań. Jeśli takie zdarzenia nie będą obserwowane przez dłuższy czas, zalecamy skonfigurowanie serwera w celu odrzucenia takich powiązań.

Jeśli potrzebujesz więcej informacji na temat identyfikowania takich klientów, możesz skonfigurować serwer katalogów w celu udostępnienia bardziej szczegółowych dzienników. To dodatkowe rejestrowanie spowoduje zarejestrowanie identyfikatora zdarzenia 2889, gdy klient spróbuje utworzyć niepodpisane powiązanie LDAP. Wpis dziennika zawiera adres IP klienta i tożsamość, których klient próbował użyć do uwierzytelnienia. Możesz włączyć to dodatkowe rejestrowanie, ustawiając ustawienie diagnostyczne 16 zdarzeń interfejsu LDAP na 2 (podstawowe). Aby uzyskać więcej informacji o sposobie zmiany ustawień diagnostycznych, zobacz Jak skonfigurować rejestrowanie zdarzeń diagnostycznych usługi Active Directory i LDS.

Jeśli serwer katalogów jest skonfigurowany do odrzucania niepodpisanych powiązań SASL LDAP lub prostych powiązań LDAP za pośrednictwem połączenia innego niż SSL/TLS, serwer katalogów rejestruje sumaryczne zdarzenie o identyfikatorze 2888 raz na 24 godziny, gdy wystąpią takie próby powiązania.

Jak skonfigurować katalog w taki sposób, aby wymagał podpisywania serwera LDAP dla usług AD DS

Aby uzyskać informacje o możliwych wpływach zmiany ustawień zabezpieczeń, zobacz Problemy z klientem, usługą i programem mogą wystąpić w przypadku zmiany ustawień zabezpieczeń i przypisań praw użytkownika.

Używanie zasad grupy

Jak ustawić wymaganie dotyczące podpisywania serwera LDAP

  1. Wybierz polecenie Start>Uruchom, wpisz polecenie mmc.exe, a następnie kliknij przycisk OK.
  2. Wybierz pozycję Plik>Dodaj/usuń przystawkę, wybierz pozycję Edytor zarządzania zasadami grupy, a następnie wybierz pozycję Dodaj.
  3. Wybierz Obiekt zasady grupy>Przeglądaj.
  4. W oknie dialogowym Przeglądanie obiektu zasady grupy wybierz pozycję Domyślne zasady kontrolera domeny w obszarze Domeny, jednostki organizacyjne i połączone obiekty zasady grupy, a następnie wybierz przycisk OK.
  5. Wybierz Zakończ.
  6. Wybierz przycisk OK.
  7. Wybierz pozycję Domyślne zasady kontrolera domeny>>Konfiguracja komputera>ZasadyUstawienia systemu Windows>Ustawienia zabezpieczeń>Zasady lokalne, a następnie wybierz pozycję Opcje zabezpieczeń.
  8. Kliknij prawym przyciskiem myszy pozycję Kontroler domeny: wymagania dotyczące podpisywania serwera LDAP, a następnie wybierz pozycję Właściwości.
  9. W oknie dialogowym Kontroler domeny: wymagania dotyczące podpisywania serwera LDAP — właściwości włącz opcję Zdefiniuj to ustawienie zasad, wybierz pozycję Wymagaj logowania na liście Zdefiniuj to ustawienie zasad, a następnie wybierz przycisk OK.
  10. W oknie dialogowym Potwierdź zmianę ustawienia kliknij przycisk Tak.

Jak ustawić wymaganie dotyczące podpisywania protokołu LDAP klienta przy użyciu lokalnych zasad komputera

  1. Wybierz polecenie Start>Uruchom, wpisz polecenie mmc.exe, a następnie kliknij przycisk OK.
  2. Wybierz pozycję Plik>Dodaj/usuń przystawki.
  3. W oknie dialogowym Dodawanie lub usuwanie przystawek wybierz pozycję Edytor obiektów zasad grupy, a następnie wybierz pozycję Dodaj.
  4. Wybierz Zakończ.
  5. Wybierz przycisk OK.
  6. Wybierz pozycję Zasady komputera lokalnego>Konfiguracja komputera>Zasady>Ustawienia systemu Windows>Ustawienia zabezpieczeń>Zasady lokalne, a następnie wybierz pozycję Opcje zabezpieczeń.
  7. Kliknij prawym przyciskiem myszy pozycję Zabezpieczenia sieci: wymagania dotyczące podpisywania klienta LDAP, a następnie wybierz pozycję Właściwości.
  8. W oknie dialogowym Zabezpieczenia sieci: wymagania dotyczące podpisywania klienta LDAP Właściwości wybierz pozycję Wymagaj logowania na liście, a następnie wybierz przycisk OK.
  9. W oknie dialogowym Potwierdź zmianę ustawienia kliknij przycisk Tak.

Jak ustawić wymaganie dotyczące podpisywania protokołu LDAP klienta przy użyciu domeny zasady grupy Object

  1. Wybierz polecenie Start>Uruchom, wpisz polecenie mmc.exe, a następnie kliknij przycisk OK.
  2. Wybierz pozycję Plik>Dodaj/usuń przystawki.
  3. W oknie dialogowym Dodawanie lub usuwanie przystawek wybierz pozycję Edytor obiektów zasad grupy, a następnie wybierz pozycję Dodaj.
  4. Wybierz pozycję Przeglądaj, a następnie wybierz pozycję Domyślne zasady domeny (lub obiekt zasady grupy, dla którego chcesz włączyć podpisywanie protokołu LDAP klienta).
  5. Wybierz przycisk OK.
  6. Wybierz Zakończ.
  7. Wybierz pozycję Zamknij.
  8. Wybierz przycisk OK.
  9. Wybierz pozycję Domyślne zasady domeny>Konfiguracja komputera>Ustawienia systemu Windows>Ustawienia zabezpieczeń>Zasady lokalne, a następnie wybierz pozycję Opcje zabezpieczeń.
  10. W oknie dialogowym Zabezpieczenia sieci: wymagania dotyczące podpisywania klienta LDAP Właściwości wybierz pozycję Wymagaj logowania na liście, a następnie wybierz przycisk OK.
  11. W oknie dialogowym Potwierdź zmianę ustawienia kliknij przycisk Tak.

Jak ustawić wymaganie dotyczące podpisywania protokołu LDAP klienta przy użyciu kluczy rejestru

Ważna

Należy rozważnie wykonywać czynności podane w tej sekcji. Niepoprawne zmodyfikowanie rejestru może być przyczyną poważnych problemów. Przed zmodyfikowaniem rejestru należy utworzyć jego kopię zapasową, aby móc przywrócić rejestr na wypadek problemów.

Domyślnie w przypadku usług Active Directory Lightweight Directory Services (AD LDS) klucz rejestru jest niedostępny. W związku z tym należy utworzyć wpis rejestru LDAPServerIntegrity typu REG_DWORD w następującym podkluczu rejestru:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<InstanceName>\Parameters

Uwaga

Symbol zastępczy <InstanceName> reprezentuje nazwę wystąpienia usług AD LDS, które chcesz zmienić.

Wpis rejestru ma następujące możliwe wartości:

  • 0: Podpisywanie jest wyłączone.
  • 2: Podpisywanie jest włączone.

Zmiana tej wartości powoduje natychmiastowe zastosowanie nowej wartości. Nie trzeba ponownie uruchamiać komputera.

Jak zweryfikować zmiany konfiguracji

  1. Zaloguj się do komputera z zainstalowanymi narzędziami Administracja usług AD DS.

  2. Wybierz polecenie Start>Uruchom, wpisz polecenie ldp.exe, a następnie kliknij przycisk OK.

  3. Wybierz pozycję Połączenie>Połącz.

  4. W obszarze Serwer i Port wpisz nazwę serwera i port inny niż SSL/TLS serwera katalogowego, a następnie wybierz przycisk OK.

    Uwaga

    W przypadku kontrolera domeny usługi Active Directory odpowiedni port to 389.

  5. Po nawiązaniu połączenia wybierz pozycję Połączenie>Powiązanie.

  6. W obszarze Typ powiązania wybierz pozycję Proste powiązanie.

  7. Wpisz swoją nazwę użytkownika i hasło, a następnie wybierz pozycję OK.

    Jeśli zostanie wyświetlony następujący komunikat o błędzie, serwer katalogów został pomyślnie skonfigurowany:

    Ldap_simple_bind_s() nie powiodło się: wymagane jest silne uwierzytelnianie

Dokumentacja zdarzeń dla wymagań dotyczących podpisywania protokołu LDAP

Identyfikator zdarzenia 2886

Po uruchomieniu usług DS jest rejestrowany identyfikator zdarzenia 2886, aby przypomnieć administratorom, aby włączyli wymagania dotyczące podpisywania:

Log Name:      Directory Service
Source:        Microsoft-Windows-ActiveDirectory_DomainService
Event ID:      2886
Task Category: LDAP Interface
Level:         Warning
Keywords:      Classic
Description:
The security of this directory server can be significantly enhanced by configuring the server to reject SASL (Negotiate, Kerberos, NTLM, or Digest) LDAP binds that do not request signing (integrity verification) and LDAP simple binds that are performed on a clear text (non-SSL/TLS-encrypted) connection. Even if no clients are using such binds, configuring the server to reject them will improve the security of this server. 
 
Some clients may currently be relying on unsigned SASL binds or LDAP simple binds over a non-SSL/TLS connection, and will stop working if this configuration change is made. To assist in identifying these clients, if such binds occur this directory server will log a summary event once every 24 hours indicating how many such binds occurred. You are encouraged to configure those clients to not use such binds. Once no such events are observed for an extended period, it is recommended that you configure the server to reject such binds. 
 
For more details and information on how to make this configuration change to the server, please see http://go.microsoft.com/fwlink/?LinkID=87923. 
 
You can enable additional logging to log an event each time a client makes such a bind, including information on which client made the bind. To do so, please raise the setting for the "LDAP Interface Events" event logging category to level 2 or higher.

Identyfikator zdarzenia 2887

Gdy klient problemu zostanie wykryty, ale jest dozwolony, rejestrowane jest zdarzenie sumaryczne (identyfikator zdarzenia 2887) z ostatnich 24 godzin:

Log Name:      Directory Service
Source:        Microsoft-Windows-ActiveDirectory_DomainService
Event ID:      2887
Task Category: LDAP Interface
Level:         Warning
Keywords:      Classic
Description:
During the previous 24 hour period, some clients attempted to perform LDAP binds that were either:
(1) A SASL (Negotiate, Kerberos, NTLM, or Digest) LDAP bind that did not request signing (integrity validation), or
(2) A LDAP simple bind that was performed on a clear text (non-SSL/TLS-encrypted) connection

This directory server is not currently configured to reject such binds. The security of this directory server can be significantly enhanced by configuring the server to reject such binds. For more details and information on how to make this configuration change to the server, please see http://go.microsoft.com/fwlink/?LinkID=87923.

Summary information on the number of these binds received within the past 24 hours is below.

You can enable additional logging to log an event each time a client makes such a bind, including information on which client made the bind. To do so, please raise the setting for the "LDAP Interface Events" event logging category to level 2 or higher.

Number of simple binds performed without SSL/TLS: <count of binds>
Number of Negotiate/Kerberos/NTLM/Digest binds performed without signing: <count of binds>

Identyfikator zdarzenia 2888

Po odrzuceniu klienta problemu rejestrowane jest zdarzenie sumaryczne (identyfikator zdarzenia 2888) z ostatnich 24 godzin:

Log Name:      Directory Service
Source:        Microsoft-Windows-ActiveDirectory_DomainService
Event ID:      2888
Task Category: LDAP Interface
Level:         Information
Keywords:      Classic
Description:
During the previous 24 hour period, some clients attempted to perform LDAP binds that were either:
(1) A SASL (Negotiate, Kerberos, NTLM, or Digest) LDAP bind that did not request signing (integrity validation), or
(2) A LDAP simple bind that was performed on a clear text (non-SSL/TLS-encrypted) connection

This directory server is configured to reject such binds.  This is the recommended configuration setting, and significantly enhances the security of this server. For more details, please see http://go.microsoft.com/fwlink/?LinkID=87923.

Summary information on the number of such binds received within the past 24 hours is below.

You can enable additional logging to log an event each time a client makes such a bind, including information on which client made the bind. To do so, please raise the setting for the "LDAP Interface Events" event logging category to level 2 or higher.

Number of simple binds rejected because they were performed without SSL/TLS: <count of binds>
Number of Negotiate/Kerberos/NTLM/Digest binds rejected because they were performed without signing: <count of binds>

Identyfikator zdarzenia 2889

Gdy klient problemu próbuje nawiązać połączenie, jest rejestrowany identyfikator zdarzenia 2889:

Log Name:      Directory Service
Source:        Microsoft-Windows-ActiveDirectory_DomainService
Event ID:      2889
Task Category: LDAP Interface
Level:         Information
Keywords:      Classic
Description:
The following client performed a SASL (Negotiate/Kerberos/NTLM/Digest) LDAP bind without requesting signing (integrity verification), or performed a simple bind over a clear text (non-SSL/TLS-encrypted) LDAP connection. 
 
Client IP address:
<IP address>:<TCP port>
Identity the client attempted to authenticate as:
contoso\<username>
Binding Type:
0 – Simple Bind that does not support signing
1 – SASL Bind that does not use signing

Informacje