Implementación de la seguridad de la capa de transporte 1.2
En este artículo se describe cómo permitir que System Center Operations Manager use la seguridad de la capa de transporte (TLS) 1.2.
Nota:
Operations Manager usará el protocolo configurado en el nivel de sistema operativo. Por ejemplo, si TLS 1.0, TLS 1.1 y TLS 1.2 están habilitados en el nivel de sistema operativo, Operations Manager seleccionará uno de los tres protocolos en el orden de preferencia siguiente:
- TLS versión 1.2
- TLS versión 1.1
- TLS versión 1.0
El SSP de SChannel seleccionará entonces el protocolo de autenticación preferido que tanto el cliente como el servidor admitan.
Realice los pasos siguientes para implementar la versión 1.2 del protocolo TLS en Operations Manager:
Nota:
Controlador Microsoft OLE DB 18 para SQL Server (recomendado) es compatible con Operations Manager 2016 UR9 y versiones posteriores.
- Instale SQL Server 2012 Native Client 11.0 o Microsoft OLE DB Driver (x64) en todos los servidores de administración y el servidor de consola web.
- Instale Microsoft ODBC Driver (x64) en todos los servidores de administración y en el servidor de consola web.
- Instala la actualización requerida de SQL Server compatible con TLS 1.2.
- Instale un mínimo del paquete acumulativo de actualizaciones 4 para SCOM 2016 en todos los componentes.
- Asegúrese de que los servidores tienen instalado como mínimo .NET 4.6 como compatible con el sistema operativo: versiones y dependencias de .NET Framework
- No instale .NET 4.8, ya que se han producido problemas conocidos con las incompatibilidades de SCOM 2016.
- Configura Windows para usar únicamente TLS 1.2.
- Configure .NET para usar TLS 1.2 de forma predeterminada.
- Configure Audit Collection Services si está instalado.
- Instale Microsoft OLE DB Driver for SQL versión 18.7.4 en todos los servidores de administración y en el servidor de consola web.
- Instale Microsoft ODBC Driver for SQL versión 17.10.6 en todos los servidores de administración y en el servidor de consola web.
- Configura Windows para usar únicamente TLS 1.2.
- Configure .NET para usar TLS 1.2 de forma predeterminada.
- Configure Audit Collection Services si está instalado.
Nota:
Si usa el cifrado de conexión de SQL Server, deberá instalar estas versiones de controlador en su lugar:
- Microsoft OLE DB Driver 19: https://aka.ms/downloadmsoledbsql
- Microsoft ODBC Driver 18: https://aka.ms/downloadmsodbcsql
Puede encontrar más información sobre cómo configurar el cifrado de conexión SQL aquí: Configuración de sql Server Motor de base de datos para cifrar conexiones
El administrador de operaciones genera certificados autofirmados SHA1 y SHA2. Esto es necesario para habilitar TLS 1.2. Si se usan certificados firmados por CA, asegúrate de que los certificados sean SHA1 o SHA2.
Nota:
Si las directivas de seguridad restringen TLS 1.0 y 1.1, se producirá un error al instalar un nuevo servidor de administración de Operations Manager 2016, servidor de puerta de enlace, consola web y rol de Reporting Services porque el medio de instalación no incluye las actualizaciones para admitir TLS 1.2. La única manera de instalar estos roles es habilitar TLS 1.0 en el sistema, aplicar el paquete acumulativo de actualizaciones 4 y, a continuación, habilitar TLS 1.2 en el sistema. Esta limitación no se aplica a la versión 1801 de Operations Manager.
Configuración del sistema operativo Windows para usar solo el protocolo TLS 1.2
Usa uno de los métodos siguientes para configurar Windows, de manera de usar únicamente el protocolo TLS 1.2.
Método 1: Modificación manual del Registro
Importante
Sigue meticulosamente los pasos que se describen en esta sección. Pueden producirse problemas graves si modifica el Registro de manera incorrecta. Antes de modificarlo, haz una copia de seguridad del registro para restaurarlo, por si se produjeran problemas.
Sigue estos pasos para habilitar o deshabilitar todos los protocolos SCHANNEL en el sistema. Se recomienda habilitar el protocolo TLS 1.2 para todas las comunicaciones entrantes y salientes.
Nota:
Estos cambios del registro no afectan al uso del protocolo Kerberos ni al del protocolo NTLM.
Inicie sesión en el servidor con una cuenta que tenga credenciales administrativas locales.
Para iniciar el Editor del Registro, selecciona y mantén presionado Inicio, escribe regedit en el cuadro de texto Ejecutar y selecciona Aceptar.
Busque la siguiente subclave del Registro:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
Cree una subclave en Protocolos para:
- SSL 2.0
- SSL 3.0
- TLS 1.0
- TLS 1.1
- TLS 1.2.
Crea una subclave Cliente y Servidor en cada subclave de la versión del protocolo que ha creado anteriormente. Por ejemplo, la subclave para TLS 1.0 sería
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
Para deshabilitar cada protocolo, crea los siguientes valores DWORD en Servidor y Cliente:
- Enabled [Value = 0]
- DisabledByDefault [Value = 1]
Para habilitar el protocolo TLS 1.2, cree las siguientes claves del Registro:
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
:
A continuación, cree los siguientes valores DWORD en Servidor y cliente:
- Enabled [Value = 1]
- DisabledByDefault [Value = 0]
Cierre el Editor del registro.
Método 2: Modificación automática del Registro
Ejecuta el siguiente script de Windows PowerShell como administrador para configurar automáticamente el sistema operativo Windows, de manera de usar únicamente el protocolo 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 " Enabling - TLS 1.2"
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 " "
}
Configuración de .NET Framework para usar solo TLS 1.2
Normalmente, .NET requiere que la aplicación defina el protocolo TLS que se va a usar para la comunicación, en la instancia de SCOM, sin embargo, es necesario indicar a .NET qué protocolo usar en todo el sistema.
Tras completar la configuración de todos los requisitos previos de Operations Manager, realiza los pasos siguientes en todos los servidores de administración, el servidor que hospeda el rol de consola web y en cualquier equipo windows en el que esté instalado el agente.
Importante
Sigue meticulosamente los pasos que se describen en esta sección. Pueden producirse problemas graves si modifica el Registro de manera incorrecta. Antes de hacer cualquier modificación, haz una copia de seguridad del registro para restaurarlo, por si se produjeran problemas.
Nota:
SCOM que se ejecuta en el sistema operativo Windows 2012 necesita cambios adicionales para usar TLS 1.2 a través de HTTP para la supervisión de UNIX/LINUX. Para habilitar TLS 1.2 como protocolos de seguridad predeterminados en WinHTTP en Windows, es necesario realizar los siguientes cambios según Actualización para habilitar TLS 1.1 y TLS 1.2 como protocolos seguros predeterminados en WinHTTP en Windows.
- Instala KB3140245 en los servidores de administración o los servidores de puertas de enlace en el grupo de recursos de UNIX/LINUX.
- Realiza una copia de seguridad de los registros modificados como se mencionó en el artículo de KB.
- Descarga y ejecuta la herramienta Easy Fix en los servidores de administración o puertas de enlace en el grupo de recursos UNIX/LINUX.
- Reinicia los servidores.
Modificación manual del registro
- Abra el Editor del registro
- Busque la siguiente subclave del Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727
- Cree los siguientes pares de valores DWORD:
- SchUseStrongCrypto [Value = 1]
- SystemDefaultTlsVersions [Value = 1]
- Cree los siguientes pares de valores DWORD:
- Busque la siguiente subclave del Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727
- Cree los siguientes pares de valores DWORD:
- SchUseStrongCrypto [Value = 1]
- SystemDefaultTlsVersions [Value = 1]
- Cree los siguientes pares de valores DWORD:
- Busque la siguiente subclave del Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
- Cree los siguientes pares de valores DWORD:
- SchUseStrongCrypto [Value = 1]
- SystemDefaultTlsVersions [Value = 1]
- Cree los siguientes pares de valores DWORD:
- Busque la siguiente subclave del Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
- Cree los siguientes pares de valores DWORD:
- SchUseStrongCrypto [Value = 1]
- SystemDefaultTlsVersions [Value = 1]
- Cree los siguientes pares de valores DWORD:
- Reinicie el sistema para que la configuración surta efecto.
Modificación automática del registro
Ejecute el siguiente script de Windows PowerShell en modo de administrador para configurar automáticamente .NET Framework para evitar dependencias de TLS 1.0 heredadas por el marco:
# Tighten up the .NET Framework
$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
Configuración adicional
Si se implementa para System Center 2016 Operations Manager, después de aplicar el paquete acumulativo de actualizaciones 4, asegúrate de importar los módulos de administración que se incluyen en este paquete acumulativo ubicado en el directorio \Archivos de programa\Microsoft System Center 2016\Operations Manager\Server\Management Packs para paquetes acumulativos de actualizaciones.
Si va a supervisar una versión compatible del servidor Linux con Operations Manager, siga las instrucciones que aparecen en el sitio web correspondiente de su distribución para configurar TLS 1.2.
Audit Collection Services
En lo que respecta a Audit Collection Services (ACS), debes realizar cambios adicionales en el registro en el servidor ACS Collector. ACS usa el DSN para realizar conexiones a la base de datos. Debes actualizar la configuración de DSN para que sea funcional para TLS 1.2.
Inicie sesión en el servidor con una cuenta que tenga credenciales administrativas locales.
Para iniciar el Editor del Registro, selecciona y mantén presionado Inicio, escribe regedit en el cuadro de texto Ejecutar y selecciona Aceptar.
Busca la siguiente subclave ODBC para OpsMgrAC:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC
.Nota:
El nombre predeterminado de DSN es OpsMgrAC.
En subclave Orígenes de datos ODBC, selecciona el nombre de DNS OpsMgrAC. Contiene el nombre del controlador ODBC que se usa para la conexión de base de datos. Si tiense ODBC 11.0 instalado, cambia este nombre a ODBC Driver 11 for SQL Server o, si tienes ODBC 13.0 instalado, cambia este nombre a ODBC Driver 13 for SQL Server.
En la subclave OpsMgrAC, actualiza el controlador para la versión de ODBC que esté instalada.
- Si ODBC 11.0 está instalado, cambia la entrada Driver a
%WINDIR%\system32\msodbcsql11.dll
. - Si ODBC 13.0 está instalado, cambie la entrada Driver a
%WINDIR%\system32\msodbcsql13.dll
. - Si se instala ODBC 17.0, cambie la entrada Driver a
%WINDIR%\system32\msodbcsql17.dll
. - Si se instala ODBC 18.0, cambie la entrada Driver a
%WINDIR%\system32\msodbcsql18.dll
.
- Si ODBC 11.0 está instalado, cambia la entrada Driver a
Archivo del Registro
Como alternativa, crea y guarda el siguiente archivo .reg en el Bloc de notas u otro editor de texto. Para ejecutar el archivo .reg guardado, haz doble clic en el archivo.
Para ODBC 11.0, 13.0, 17.x o 18.x. Cree el siguiente archivo ODBC.reg y (reemplace por la versión ODBC que se está usando) :
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
Como alternativa, puedes ejecutar los siguientes comandos de PowerShell para automatizar el cambio.
Para ODBC 11.0, puedes ejecutar los siguientes comandos de 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
Para ODBC 13.0, puedes ejecutar los siguientes comandos de 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
Audit Collection Services
En lo que respecta a Audit Collection Services (ACS), debes realizar cambios adicionales en el registro en el servidor ACS Collector. ACS usa el DSN para realizar conexiones a la base de datos. Debes actualizar la configuración de DSN para que sea funcional para TLS 1.2.
- Inicie sesión en el servidor con una cuenta que tenga credenciales administrativas locales.
- Para iniciar el Editor del Registro, selecciona y mantén presionado Inicio, escribe regedit en el cuadro de texto Ejecutar y selecciona Aceptar.
- Busca la siguiente subclave ODBC para OpsMgrAC:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC
.
Nota:
El nombre predeterminado de DSN es OpsMgrAC.
- En subclave Orígenes de datos ODBC, selecciona el nombre de DNS OpsMgrAC. Contiene el nombre del controlador ODBC que se usa para la conexión de base de datos. Si tienes ODBC 17 instalado, cambia este nombre a ODBC Driver 17 for SQL Server.
- En la subclave OpsMgrAC, actualiza el controlador para la versión de ODBC que esté instalada.
- Por ejemplo, si ODBC 17 está instalado, cambie la entrada Driver a
%WINDIR%\system32\msodbcsql17.dll
. - Compruebe el nombre del archivo DLL para la versión actual del controlador ODBC instalado si es diferente.
- Por ejemplo, si ODBC 17 está instalado, cambie la entrada Driver a
Archivo del Registro
Como alternativa, crea y guarda el siguiente archivo .reg en el Bloc de notas u otro editor de texto. Para ejecutar el archivo .reg guardado, haz doble clic en el archivo.
Para ODBC 17, crea el siguiente archivo de 17.reg ODBC:
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
Como alternativa, puedes ejecutar los siguientes comandos de PowerShell para automatizar el cambio.
Asegúrese de reemplazar la ruta de acceso del archivo DLL a una versión adecuada si usa una versión del controlador ODBC distinta de 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
Pasos siguientes
Para obtener una lista completa de los puertos usados, la dirección de la comunicación y si los puertos se pueden configurar, consulta Configuración de un firewall para Operations Manager.
Para obtener una revisión general de cómo se protegen los datos entre componentes de un grupo de administración, consulta Autenticación y cifrado de datos en Operations Manager.