Поделиться через


Принудительное применение TLS 1.2 для Operations Manager

В этой статье описывается, как разрешить System Center Operations Manager использовать протокол TLS 1.2.

Примечание.

Operations Manager использует протокол, настроенный на уровне операционной системы. Например, если включены все протоколы, Operations Manager выбирает один из трех протоколов в следующем порядке предпочтения:

  1. TLS версии 1.0
  2. TLS версии 1.1;
  3. TLS версии 1.2;

Затем Schannel SSP выберет наиболее подходящий протокол проверки подлинности, который может поддерживать и клиент, и сервер.

Выполните следующие действия, чтобы реализовать протокол TLS версии 1.2 в Operations Manager:

Примечание.

Microsoft OLE DB Driver 18 for SQL Server (рекомендуется) поддерживается в Operations Manager 2016 UR9 и более поздних версиях.

  1. Установите sql Server 2012 Native Client 11.0 или Microsoft OLE DB Driver (x64) на всех серверах управления и на сервере веб-консоли.

  2. Установите драйвер Microsoft ODBC (x64) на всех серверах управления и на сервере веб-консоли.

  3. Установите обязательное обновление SQL Server, поддерживающее TLS 1.2.

  4. Установите как минимум накопительный пакет обновления 4 для Operations Manager 2016 на всех компонентах.

  5. Убедитесь, что на всех серверах установлена минимальная версия .NET Framework 4.6, совместимая с версией ОС: версии .NET Framework и зависимости

    1. не устанавливайте .NET Framework 4.8, так как существуют известные несовместимости с Operations Manager 2016.
  6. Настройте Windows только для использования TLS 1.2.

  7. Настройте .NET Framework для использования более высоких уровней криптографии по умолчанию.

  8. Настройте службы сбора аудита, если они установлены.

  1. Установите Microsoft OLE DB Driver for SQL версии 18.7.4 на всех серверах управления и на сервере веб-консоли.

  2. Установите Microsoft ODBC Driver for SQL версии 17.10.6 на всех серверах управления и на сервере веб-консоли.

  3. Настройте Windows только для использования TLS 1.2.

  4. Настройте .NET Framework для использования более высоких уровней криптографии по умолчанию.

  5. Настройте службы сбора аудита, если они установлены.

Примечание.

При использовании шифрования подключений SQL Server установите следующие версии драйверов:

Дополнительные сведения о настройке шифрования подключений SQL см. здесь: Настройка SQL Server Database Engine для шифрования подключений

Operations Manager создает самозаверяющие сертификаты SHA1 и SHA2, необходимые для включения TLS 1.2. Если используются подписанные ЦС сертификаты, убедитесь, что сертификаты являются SHA1 или SHA2.

Примечание.

Если политики безопасности ограничивают TLS 1.0 и 1.1, установка новой роли Operations Manager 2016 завершается ошибкой, так как носитель установки не включает обновления для поддержки TLS 1.2. Чтобы продолжить настройку новой роли, включите TLS 1.0 в системе, примените накопительный пакет обновления 4, а затем снова отключите TLS 1.0 в системе.

Настройка операционной системы Windows на использование только протокола TLS 1.2

Используйте один из следующих методов, чтобы настроить Windows для использования только протокола TLS 1.2.

Метод 1. Изменение реестра вручную

Важно!

Точно следуйте всем указаниям из этого раздела. Серьезные проблемы могут возникнуть, если реестр изменен неправильно. Перед внесением изменений создайте резервную копию реестров в случае возникновения проблем.

Дополнительные сведения см. в статье Резервное копирование и восстановление реестра в Windows

Чтобы изменить системные протоколы SChannel, выполните следующие действия. Мы рекомендуем явно включить протокол TLS 1.2.

Примечание.

Внесение этих изменений в реестр не влияет на использование протоколов Kerberos или NTLM.

  1. Выполните вход на сервер с помощью учетной записи с учетными данными локального администратора.

  2. Запустите редактор реестра, нажав кнопку "Пуск", введите regedit в текстовом поле "Запуск" и нажмите кнопку "ОК".

  3. Найдите следующий подраздел реестра:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

  4. Создайте подраздел в разделе "Протоколы " для:

    • SSL 2.0
    • SSL 3.0
    • TLS 1.0
    • TLS 1.1
    • TLS 1.2
  5. Создайте клиента и Server подраздел подключа версии протокола, созданного ранее. Например, подключ для TLS 1.0 будет

    • 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
  6. Чтобы отключить протокол, создайте следующие значения DWORD в разделе Server и Client:

    • Включено [значение = 0]
    • ОтключеноПоУмолчанию [Значение = 1]
  7. Чтобы явно включить протокол TLS 1.2 (по умолчанию включен), создайте следующие ключи реестра:

    • 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
  8. Затем создайте следующие значения DWORD в разделе "Сервер " и "Клиент".

    • Enabled [значение = 1];
    • DisabledByDefault [значение = 0].
  9. Закройте Редактор реестра.

Метод 2. Изменение реестра с помощью PowerShell

Выполните следующий сценарий Windows PowerShell от имени администратора, чтобы настроить операционную систему Windows для использования протокола 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 " "
}

Настройка .NET Framework для использования более высоких уровней шифрования

.NET Framework обычно требует, чтобы приложение определило протокол TLS, используемый для обмена данными. Однако в случае Operations Manager необходимо указать всей системе .NET Framework, какой протокол следует использовать.

После завершения настройки всех необходимых компонентов для Operations Manager выполните следующие действия на всех серверах Operations Manager и на всех агентах Windows.

Важно!

Точно следуйте всем указаниям из этого раздела. Серьезные проблемы могут возникнуть, если реестр изменен неправильно. Перед внесением изменений создайте резервную копию реестров в случае возникновения проблем.

Дополнительные сведения см. в статье Резервное копирование и восстановление реестра в Windows

Предварительные требования для Windows Server 2012/2012 R2

Дополнительные изменения необходимы в Windows Server 2012/2012 R2 для использования TLS 1.2 по протоколу HTTP для мониторинга UNIX/LINUX. Чтобы разрешить или включить TLS 1.2 в качестве протоколов безопасности по умолчанию в WinHTTP в Windows, необходимо вносить следующие изменения в соответствии с обновлением, чтобы включить протоколы TLS 1.1 и TLS 1.2 в качестве безопасных протоколов по умолчанию в WinHTTP в Windows.

  1. Установите KB3140245 на серверах управления и шлюзах в пуле ресурсов UNIX/LINUX.
  2. Создайте резервную копию изменяемых реестров, упомянутых в статье базы знаний.
  3. Скачайте и запустите средство Easy Fix на серверах управления или шлюзах в пуле ресурсов UNIX/LINUX.
  4. Перезагрузите серверы.

Метод 1. Изменение реестра вручную

  1. Открытие редактора реестра
  2. Найдите следующий подраздел реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727
    1. Создайте следующие пары значений DWORD:
      • SchUseStrongCrypto [Значение = 1]
      • SystemDefaultTlsVersions [Value = 1]
  3. Найдите следующий подраздел реестра: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727
    1. Создайте следующие пары значений DWORD:
      • SchUseStrongCrypto [Значение = 1]
      • SystemDefaultTlsVersions [Value = 1]
  4. Найдите следующий подраздел реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
    1. Создайте следующие пары значений DWORD:
      • SchUseStrongCrypto [Значение = 1]
      • SystemDefaultTlsVersions [Value = 1]
  5. Найдите следующий подраздел реестра: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
    1. Создайте следующие пары значений DWORD:
      • SchUseStrongCrypto [Значение = 1]
      • SystemDefaultTlsVersions [Value = 1]
  6. Перезагрузите систему, чтобы параметры вступили в силу.

Метод 2. Изменение реестра с помощью PowerShell

Запустите следующий сценарий Windows PowerShell с правами администратора, чтобы автоматически настроить .NET Framework для предотвращения зависимостей 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

Дополнительные параметры

После применения набора обновлений 4 убедитесь, что импортированы пакеты управления, включенные в него, расположенные в следующем каталоге: %ProgramFiles%\Microsoft System Center 2016\Operations Manager\Server\Management Packs for Update Rollups.

Если вы осуществляете мониторинг поддерживаемой версии сервера Linux, используя Operations Manager, следуйте инструкциям на соответствующем веб-сайте для вашего дистрибутива, чтобы сконфигурировать TLS 1.2.

Службы сбора данных для аудита

Для службы сбора аудита (ACS) необходимо внести дополнительные изменения в реестр на сервере сборщика ACS. ACS использует имя источника данных ODBC (DSN) для подключения к базе данных. Убедитесь, что параметры DSN обновлены, чтобы сделать их функциональными для TLS 1.2.

  1. Выполните вход на сервер с помощью учетной записи с учетными данными локального администратора.
  2. Запустите редактор реестра, нажав кнопку "Пуск", введите regedit в текстовом поле "Запуск" и нажмите кнопку "ОК".
  3. Найдите следующий подраздел ODBC для OpsMgrAC: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC.
    1. Обратите внимание, что имя dsN по умолчанию — OpsMgrAC.
  4. В подразделе "Источники данных ODBC" выберите имя DSN OpsMgrAC. Он содержит имя драйвера ODBC, который будет использоваться для подключения к базе данных. Если установлен ODBC 11.0, измените это имя на драйвер ODBC 11 для SQL Serverили если установлен ODBC 13.0, измените это имя на драйвер ODBC 13 для SQL Server.
  5. В подразделе OpsMgrAC обновите драйвер для установленной версии ODBC.
    • Если установлен ODBC 11.0, измените запись драйвера на %WINDIR%\system32\msodbcsql11.dll.
    • Если установлен ODBC 13.0, измените запись драйвера на %WINDIR%\system32\msodbcsql13.dll.
    • Если установлен ODBC 17.0, измените запись драйвера на %WINDIR%\system32\msodbcsql17.dll.
    • Если установлен ODBC 18.0, измените запись драйвера на %WINDIR%\system32\msodbcsql18.dll.

Файл реестра

Кроме того, создайте и сохраните следующий файл .reg в Блокноте или другом текстовом редакторе. Чтобы запустить сохраненный файл .reg , дважды щелкните файл.

  • Для ODBC 11.0, 13.0, 17.x или 18.x. Создайте следующий файл ODBC.reg и (замените используемой версией 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

Кроме того, выполните следующие команды PowerShell, чтобы автоматизировать изменение.

  • Для ODBC 11.0 выполните следующие команды 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
    
  • Для ODBC 13.0 выполните следующие команды 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
    

Аудит служб сбора данных

Для служб сбора аудита (ACS) необходимо внести дополнительные изменения в реестр на сервере сбора ACS. ACS использует имя источника данных ODBC (DSN) для подключения к базе данных. Убедитесь, что параметры DSN обновлены, чтобы сделать их функциональными для TLS 1.2.

  1. Выполните вход на сервер с помощью учетной записи с учетными данными локального администратора.

  2. Запустите редактор реестра, нажав кнопку "Пуск", введите regedit в текстовом поле "Запуск" и нажмите кнопку "ОК".

  3. Найдите следующий подключ ODBC для OpsMgrAC: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC.

    Примечание.

    Имя DSN по умолчанию — OpsMgrAC.

  4. В подразделе Источники данных ODBC выберите имя DSN OpsMgrAC. Он содержит имя драйвера ODBC, который будет использоваться для подключения к базе данных. Если установлен ODBC 17, измените это имя на драйвер ODBC 17 для SQL Server.

  5. В подразделе OpsMgrAC обновите драйвер для установленной версии ODBC.

    • Например, если установлен ODBC 17, измените запись Драйвера на %WINDIR%\system32\msodbcsql17.dll.
    • Проверьте имя библиотеки DLL для текущей версии драйвера ODBC, установленной, если она отличается.

Файл реестра

Кроме того, создайте и сохраните следующий файл .reg в Блокноте или другом текстовом редакторе. Чтобы запустить сохраненный файл .reg , дважды щелкните файл.

  • Для ODBC 17 создайте следующий файл 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

Кроме того, выполните следующие команды PowerShell, чтобы автоматизировать изменение.

  • Убедитесь, что путь к файлу dll следует заменить соответствующей версией, если используется драйвер ODBC, отличный от 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
    

Следующие шаги