Wymuszanie protokołu TLS 1.2 dla programu Operations Manager
W tym artykule opisano sposób zezwalania programowi System Center Operations Manager na korzystanie z protokołu Transport Layer Security (TLS) 1.2.
Uwaga
Program Operations Manager używa protokołu skonfigurowanego na poziomie systemu operacyjnego. Jeśli na przykład wszystkie protokoły są włączone, program Operations Manager wybiera jeden z trzech protokołów w następującej kolejności preferencji:
- Protokół TLS w wersji 1.0
- TLS w wersji 1.1
- PROTOKÓŁ TLS w wersji 1.2
Dostawca SSP Schannel następnie wybiera najbardziej odpowiedni protokół uwierzytelniania obsługiwany przez klienta i serwer.
Wykonaj następujące kroki, aby zaimplementować protokół TLS w wersji 1.2 w programie Operations Manager:
Uwaga
Sterownik Microsoft OLE DB 18 dla programu SQL Server (zalecane) jest obsługiwany w programie Operations Manager 2016 UR9 lub nowszym.
Zainstaluj program SQL Server 2012 Native Client 11.0 lub sterownik Microsoft OLE DB (x64) na wszystkich serwerach zarządzania i serwerze konsoli sieci Web.
Zainstaluj sterownik Microsoft ODBC (x64) na wszystkich serwerach zarządzania i serwerze konsoli sieci Web.
Zainstaluj wymaganą aktualizację programu SQL Server, która obsługuje protokół TLS 1.2.
Zainstaluj co najmniej pakiet zbiorczy aktualizacji 4 dla programu Operations Manager 2016 we wszystkich składnikach.
Upewnij się, że wszystkie serwery mają zainstalowany minimalny program .NET Framework 4.6 jako zgodny z wersją systemu operacyjnego: wersje i zależności programu .NET Framework
- Nie instaluj programu .NET Framework 4.8, ponieważ istnieją znane niezgodności z programem Operations Manager 2016.
Skonfiguruj system Windows tak, aby używał tylko protokołu TLS 1.2.
Skonfiguruj program .NET Framework, aby domyślnie korzystać z wyższych poziomów kryptografii.
Skonfiguruj usługi Audit Collection Services, jeśli są zainstalowane.
Zainstaluj sterownik MICROSOFT OLE DB dla programu SQL w wersji 18.7.4 na wszystkich serwerach zarządzania i serwerze konsoli sieci Web.
Zainstaluj sterownik MICROSOFT ODBC dla programu SQL w wersji 17.10.6 na wszystkich serwerach zarządzania i serwerze konsoli sieci Web.
Skonfiguruj system Windows tak, aby używał tylko protokołu TLS 1.2.
Skonfiguruj program .NET Framework, aby domyślnie korzystać z wyższych poziomów kryptografii.
Skonfiguruj usługi Audit Collection Services, jeśli są zainstalowane.
Uwaga
W przypadku korzystania z szyfrowania połączeń z programem SQL Server zainstaluj następujące wersje sterowników:
- Sterownik MICROSOFT OLE DB 19: https://aka.ms/downloadmsoledbsql
- Sterownik Microsoft ODBC 18: https://aka.ms/downloadmsodbcsql
Więcej informacji na temat konfigurowania szyfrowania połączeń SQL można znaleźć tutaj: Konfigurowanie aparatu bazy danych programu SQL Server pod kątem szyfrowania połączeń
Program Operations Manager generuje certyfikaty SHA1 i SHA2 z podpisem własnym, które są wymagane do włączenia protokołu TLS 1.2. Jeśli są używane certyfikaty podpisane przez urząd certyfikacji, upewnij się, że certyfikaty są sha1 lub SHA2.
Uwaga
Jeśli zasady zabezpieczeń ograniczają protokół TLS 1.0 i 1.1, instalowanie nowej roli programu Operations Manager 2016 kończy się niepowodzeniem, ponieważ nośnik instalacyjny nie zawiera aktualizacji obsługujących protokół TLS 1.2. Aby kontynuować konfigurowanie nowej roli, włącz protokół TLS 1.0 w systemie, zastosuj Aktualizacja zbiorcza 4, a następnie ponownie wyłącz protokół TLS 1.0 w systemie.
Konfigurowanie systemu operacyjnego Windows do używania tylko protokołu TLS 1.2
Użyj jednej z następujących metod, aby skonfigurować system Windows do używania tylko protokołu TLS 1.2.
Metoda 1. Ręczne modyfikowanie rejestru
Ważne
Należy rozważnie wykonywać czynności podane w tej sekcji. Poważne problemy mogą wystąpić, jeśli rejestr jest niepoprawnie modyfikowany. Przed wprowadzeniem zmian wykonaj kopię zapasową rejestrów w przypadku wystąpienia problemów.
Aby uzyskać więcej informacji, zobacz: Jak utworzyć kopię zapasową i przywrócić rejestr w systemie Windows
Wykonaj poniższe kroki, aby zmodyfikować protokoły SChannel dla całego systemu. Zalecamy jawne włączenie protokołu TLS 1.2.
Uwaga
Wprowadzanie tych zmian rejestru nie ma wpływu na użycie protokołów Kerberos ani NTLM.
Zaloguj się na komputerze przy użyciu konta z lokalnymi poświadczeniami administracyjnymi.
Uruchom Edytor rejestru, wybierając i trzymając przycisk Start, wprowadź ciąg regedit w polu tekstowym Uruchom i wybierz przycisk OK.
Odszukaj następujący podklucz rejestru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
Utwórz podklucz w obszarze Protokoły dla:
- SSL 2.0
- SSL 3.0
- TLS 1.0
- TLS 1.1
- TLS 1.2
Utwórz podklucz klienta i serwera pod każdy utworzony wcześniej podklucz wersji protokołu. Na przykład podklucz protokołu TLS 1.0 będzie
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server
Aby wyłączyć protokół, utwórz następujące wartości DWORD dla Server i Client:
- Włączone [Wartość = 0]
- DisabledByDefault [Wartość = 1]
Aby jawnie włączyć protokół TLS 1.2 (domyślnie jest włączony), utwórz następujące klucze rejestru:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
Następnie utwórz następujące wartości DWORD w obszarze Serwer i klient:
- Włączone [Wartość = 1]
- DisabledByDefault [Wartość = 0]
Zamknij Edytor rejestru.
Metoda 2. Modyfikowanie rejestru za pomocą programu PowerShell
Uruchom następujący skrypt programu Windows PowerShell jako administrator, aby skonfigurować system operacyjny Windows do korzystania z protokołu TLS 1.2:
$ProtocolList = @("SSL 2.0", "SSL 3.0", "TLS 1.0", "TLS 1.1", "TLS 1.2")
$ProtocolSubKeyList = @("Client", "Server")
$DisabledByDefault = "DisabledByDefault"
$registryPath = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\"
foreach ($Protocol in $ProtocolList)
{
foreach ($key in $ProtocolSubKeyList)
{
$currentRegPath = $registryPath + $Protocol + "\" + $key
Write-Output "Current Registry Path: `"$currentRegPath`""
if (!(Test-Path $currentRegPath))
{
Write-Output " `'$key`' not found: Creating new Registry Key"
New-Item -Path $currentRegPath -Force | out-Null
}
if ($Protocol -eq "TLS 1.2")
{
Write-Output " Explicitly enable TLS 1.2 (default is enabled)"
New-ItemProperty -Path $currentRegPath -Name $DisabledByDefault -Value "0" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $currentRegPath -Name 'Enabled' -Value "1" -PropertyType DWORD -Force | Out-Null
}
else
{
Write-Output " Disabling - $Protocol"
New-ItemProperty -Path $currentRegPath -Name $DisabledByDefault -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $currentRegPath -Name 'Enabled' -Value "0" -PropertyType DWORD -Force | Out-Null
}
Write-Output " "
}
Konfigurowanie programu .NET Framework do używania wyższych poziomów kryptografii
Program .NET Framework zwykle wymaga, aby aplikacja zdefiniowała protokół TLS, który ma być używany do komunikacji. W przypadku programu Operations Manager musimy jednak poinformować cały system .NET Framework o tym, który protokół ma być używany.
Po zakończeniu konfiguracji wszystkich wymagań wstępnych programu Operations Manager wykonaj następujące kroki na wszystkich serwerach programu Operations Manager i na wszystkich agentach systemu Windows.
Ważne
Należy rozważnie wykonywać czynności podane w tej sekcji. Poważne problemy mogą wystąpić, jeśli rejestr jest niepoprawnie modyfikowany. Przed wprowadzeniem zmian wykonaj kopię zapasową rejestrów w przypadku wystąpienia problemów.
Aby uzyskać więcej informacji, zobacz: Jak utworzyć kopię zapasową i przywrócić rejestr w systemie Windows
Wymagania wstępne dotyczące systemu Windows Server 2012/2012 R2
Dodatkowe zmiany są wymagane w systemie Windows Server 2012/2012 R2 do korzystania z protokołu TLS 1.2 za pośrednictwem protokołu HTTP na potrzeby monitorowania systemu UNIX/LINUX. Aby umożliwić protokół TLS 1.2 jako domyślny protokół zabezpieczeń w WinHTTP w systemie Windows, należy wprowadzić następujące zmiany zgodnie z Aktualizacja, aby włączyć TLS 1.1 i TLS 1.2 jako domyślne protokoły zabezpieczeń w WinHTTP w systemie Windows.
- Zainstaluj KB3140245 na serwerach zarządzania/serwerach bram w puli zasobów systemu UNIX/LINUX.
- Wykonaj kopie zapasowe rejestrów systemu, które są modyfikowane zgodnie z opisem w artykule bazy wiedzy.
- Pobierz i uruchom narzędzie Easy Fix na serwerach/bramach zarządzania w puli zasobów UNIX/LINUX.
- Uruchom ponownie serwery.
Metoda 1. Ręczne modyfikowanie rejestru
- Otwórz Edytor rejestru
- Znajdź następujący podklucz rejestru:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727
- Utwórz następujące pary wartości DWORD:
- SchUseStrongCrypto [Wartość = 1]
- SystemDefaultTlsVersions [Wartość = 1]
- Utwórz następujące pary wartości DWORD:
- Znajdź następujący podklucz rejestru:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727
- Utwórz następujące pary wartości DWORD:
- SchUseStrongCrypto [Wartość = 1]
- SystemDefaultTlsVersions [Wartość = 1]
- Utwórz następujące pary wartości DWORD:
- Znajdź następujący podklucz rejestru:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
- Utwórz następujące pary wartości DWORD:
- SchUseStrongCrypto [Wartość = 1]
- SystemDefaultTlsVersions [Wartość = 1]
- Utwórz następujące pary wartości DWORD:
- Znajdź następujący podklucz rejestru:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
- Utwórz następujące pary wartości DWORD:
- SchUseStrongCrypto [Wartość = 1]
- SystemDefaultTlsVersions [Wartość = 1]
- Utwórz następujące pary wartości DWORD:
- Uruchom ponownie system, aby ustawienia zaczęły obowiązywać.
Metoda 2. Modyfikowanie rejestru za pomocą programu PowerShell
Uruchom następujący skrypt programu Windows PowerShell w trybie administratora, aby automatycznie skonfigurować program .NET Framework, aby zapobiec dziedziczeniu struktury zależności protokołu TLS 1.0:
# Allow .NET Framework to use higher levels of Cryptography
$NetRegistryPath1 = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727"
New-ItemProperty -Path $NetRegistryPath1 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath1 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
$NetRegistryPath2 = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319"
New-ItemProperty -Path $NetRegistryPath2 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath2 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
$NetRegistryPath3 = "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727"
New-ItemProperty -Path $NetRegistryPath3 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath3 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
$NetRegistryPath4 = "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319"
New-ItemProperty -Path $NetRegistryPath4 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath4 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
Ustawienia dodatkowe
Po zastosowaniu pakietu zbiorczego aktualizacji 4 upewnij się, że importujesz pakiety zarządzania zawarte w tym pakiecie zbiorczym, znajdujące się w następującym katalogu: %ProgramFiles%\Microsoft System Center 2016\Operations Manager\Server\Management Packs for Update Rollups
.
Jeśli monitorujesz obsługiwaną wersję serwerów Linux za pomocą programu Operations Manager, postępuj zgodnie z instrukcjami na odpowiedniej stronie internetowej dla dystrybucji Linux, aby skonfigurować TLS 1.2.
Usługi zbierania danych do audytu
W przypadku usług Audit Collection Services (ACS) należy wprowadzić dodatkowe zmiany w rejestrze na serwerze modułu zbierającego ACS. Usługa ACS używa nazwy źródła danych ODBC (DSN) do nawiązywania połączeń z bazą danych. Upewnij się, że ustawienia DSN zostały zaktualizowane, aby były funkcjonalne dla protokołu TLS 1.2.
- Zaloguj się na komputerze przy użyciu konta z lokalnymi poświadczeniami administracyjnymi.
- Uruchom Edytor rejestru, wybierając i trzymając przycisk Start, wprowadź ciąg regedit w polu tekstowym Uruchom i wybierz przycisk OK.
- Znajdź następujący podklucz ODBC dla programu OpsMgrAC:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC
.-
Należy pamiętać, że domyślna nazwa DSN to
OpsMgrAC
.
-
Należy pamiętać, że domyślna nazwa DSN to
- W podkluczu Źródła danych ODBC wybierz nazwę DSN OpsMgrAC. Zawiera on nazwę sterownika ODBC, który ma być używany na potrzeby połączenia z bazą danych. Jeśli zainstalowano sterownik ODBC 11.0, zmień tę nazwę na sterownik ODBC 11 dla programu SQL Serverlub jeśli zainstalowano sterownik ODBC 13.0, zmień tę nazwę na sterownika ODBC 13 dla programu SQL Server.
- W podkluczu OpsMgrAC zaktualizuj sterownik dla zainstalowanej wersji ODBC.
- Jeśli zainstalowano sterownik ODBC 11.0, zmień wpis Sterownik na
%WINDIR%\system32\msodbcsql11.dll
. - Jeśli zainstalowano ODBC 13.0, zmień wpis Sterownik na
%WINDIR%\system32\msodbcsql13.dll
. - Jeśli zainstalowano ODBC 17.0, zmień wpis dla sterownika na
%WINDIR%\system32\msodbcsql17.dll
. - Jeśli zainstalowano ODBC 18.0, zmień wpis Driver na
%WINDIR%\system32\msodbcsql18.dll
.
- Jeśli zainstalowano sterownik ODBC 11.0, zmień wpis Sterownik na
Plik rejestru
Alternatywnie utwórz i zapisz następujący plik .reg w Notatniku lub innym edytorze tekstów. Aby uruchomić zapisany plik .reg , kliknij dwukrotnie plik.
W przypadku wersji ODBC 11.0, 13.0, 17.x lub 18.x. Utwórz następujący plik ODBC.reg i (zastąp używaną wersją ODBC):
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources] "OpsMgrAC"="ODBC Driver 18 for SQL Server" [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC] "Driver"="%WINDIR%\system32\msodbcsql18.dll"
PowerShell
Alternatywnie uruchom następujące polecenia programu PowerShell, aby zautomatyzować zmianę.
W przypadku odBC 11.0 uruchom następujące polecenia programu PowerShell:
New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC" -Name "Driver" -Value "%WINDIR%\system32\msodbcsql11.dll" -PropertyType STRING -Force | Out-Null New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" -Name "OpsMgrAC" -Value "ODBC Driver 11 for SQL Server" -PropertyType STRING -Force | Out-Null
W przypadku programu ODBC 13.0 uruchom następujące polecenia programu PowerShell:
New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC" -Name "Driver" -Value "%WINDIR%\system32\msodbcsql13.dll" -PropertyType STRING -Force | Out-Null New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" -Name "OpsMgrAC" -Value "ODBC Driver 13 for SQL Server" -PropertyType STRING -Force | Out-Null
Usługi Zbierania Audytów
W przypadku usług Audit Collection Services (ACS) należy wprowadzić dodatkowe zmiany w rejestrze na serwerze modułu zbierającego ACS. Usługa ACS używa nazwy źródła danych ODBC (DSN) do nawiązywania połączeń z bazą danych. Upewnij się, że ustawienia DSN zostały zaktualizowane, aby były funkcjonalne dla protokołu TLS 1.2.
Zaloguj się na komputerze przy użyciu konta z lokalnymi poświadczeniami administracyjnymi.
Uruchom Edytor rejestru, wybierając i trzymając przycisk Start, wprowadź ciąg regedit w polu tekstowym Uruchom i wybierz przycisk OK.
Znajdź następujący podklucz ODBC dla programu OpsMgrAC:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC
.Uwaga
Domyślną nazwą DSN jest OpsMgrAC.
W podkluczu Źródła danych ODBC wybierz nazwę DSN OpsMgrAC. Zawiera on nazwę sterownika ODBC, który ma być używany na potrzeby połączenia z bazą danych. Jeśli zainstalowano sterownik ODBC 17, zmień tę nazwę na sterownik ODBC 17 dla serwera SQL Server.
W podkluczu OpsMgrAC zaktualizuj sterownik dla zainstalowanej wersji ODBC.
- Jeśli na przykład zainstalowano sterownik ODBC 17, zmień wpis Sterownik na
%WINDIR%\system32\msodbcsql17.dll
. - Sprawdź nazwę biblioteki DLL dla bieżącej wersji sterownika ODBC zainstalowanego, jeśli jest inaczej.
- Jeśli na przykład zainstalowano sterownik ODBC 17, zmień wpis Sterownik na
Plik rejestru
Alternatywnie utwórz i zapisz następujący plik .reg w Notatniku lub innym edytorze tekstów. Aby uruchomić zapisany plik .reg , kliknij dwukrotnie plik.
W przypadku ODBC 17 utwórz następujący plik ODBC 17.reg:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources] "OpsMgrAC"="ODBC Driver 17 for SQL Server" [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC] "Driver"="%WINDIR%\system32\msodbcsql17.dll"
PowerShell
Alternatywnie uruchom następujące polecenia programu PowerShell, aby zautomatyzować zmianę.
Pamiętaj, aby zastąpić ścieżkę pliku dll do odpowiedniej wersji, jeśli jest używana wersja sterownika ODBC inna niż 17.
New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC" -Name "Driver" -Value "%WINDIR%\system32\msodbcsql7.dll" -PropertyType STRING -Force | Out-Null New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" -Name "OpsMgrAC" -Value "ODBC Driver 17 for SQL Server" -PropertyType STRING -Force | Out-Null
Następne kroki
- Aby uzyskać więcej informacji na temat protokołu TLS 1.0 od naszego zespołu inżynierów ds. zabezpieczeń, zobacz Rozwiązywanie problemów z protokołem TLS 1.0.
- Aby uzyskać pełną listę używanych portów, kierunek komunikacji i jeśli porty można skonfigurować, zobacz Konfigurowanie zapory dla programu Operations Manager.
- Aby zapoznać się z ogólnym przeglądem sposobu ochrony danych między składnikami w grupie zarządzania, zobacz Authentication and Data Encryption in Operations Manager (Uwierzytelnianie i szyfrowanie danych w programie Operations Manager).