Compartir a través de


Configuración de la seguridad de transporte estricta de HTTP (HSTS) en Exchange Server

SE APLICA A:yes-img-162016 yes-img-192019 yes-img-seSubscription Edition

Información general

Http Strict Transport Security (HSTS) es un estándar ampliamente compatible que ayuda a proteger a los visitantes del sitio web asegurándose de que su explorador siempre se conecta mediante una conexión HTTPS. HSTS funciona enviando un encabezado de respuesta HTTP especial desde el servidor al explorador llamado Strict-Transport-Security (STS). Este encabezado incluye una max-age directiva que especifica el período de tiempo (en segundos) para que el explorador recuerde que solo se puede acceder al sitio mediante HTTPS. Una vez que un explorador recibe este encabezado, cambia automáticamente las solicitudes HTTP para acceder al sitio a las solicitudes HTTPS.

HSTS no solo agrega protección contra escenarios de ataque comunes, sino que también ayuda a eliminar la necesidad de la práctica común (y ahora insegura) de redirigir a los usuarios desde una dirección URL HTTP a una dirección URL HTTPS. HSTS también se puede usar para abordar ataques de red activos y pasivos. Sin embargo, HSTS no aborda el malware, la suplantación de identidad (phishing) ni las vulnerabilidades del explorador.

Funcionamiento de HSTS

Se indica al explorador que aplique HSTS cuando recibe el Strict-Transport-Security encabezado a través de una conexión HTTPS; sin embargo, hay algunos requisitos que deben cumplirse antes de que el explorador aplique HSTS. En concreto, el certificado usado para cifrar la sesión:

  • El cliente debe ser válido y de confianza;
  • No debe haber expirado; y
  • Debe contener el dominio o subdominio al que se llamó en el explorador.

Consulte Exploración segura de la web con Microsoft Edge para obtener recomendaciones más generales.

Una vez que el explorador es consciente de que un dominio ha habilitado HSTS, lo siguiente:

  • Use siempre una https:// conexión, incluso al hacer clic en un http:// vínculo o después de escribir una dirección URL en la barra de direcciones sin especificar un protocolo.
  • Quita la capacidad de los usuarios de hacer clic en advertencias (por ejemplo, certificados expirados o no válidos, coincidencias de nombres, etc.).

Hay algunos escenarios (por ejemplo, el usuario tiene un nuevo equipo, un nuevo perfil, un nuevo explorador o ha borrado los datos y la configuración del explorador) donde un usuario es vulnerable durante un breve período de tiempo porque visita el sitio por primera vez sin que se aplique HSTS. Para abordar estos escenarios, el proyecto de Chromium mantiene un HSTS Preload List (que también lo usan otros exploradores como Microsoft Edge y Mozilla Firefox). aplica Preload List HSTS incluso cuando visita un sitio por primera vez.

Puede enviar el dominio a la lista de HSTS. El servidor web (o, en nuestro caso, el servidor exchange) también debe enviar la preload directiva como parte del Strict-Transport-Security encabezado para indicar que el explorador debe realizar la precarga de HSTS.

Cómo Exchange Server controla las conexiones HTTP

De forma predeterminada, Exchange Server no redirige HTTP al tráfico HTTPS, ya que el sitio web predeterminado requiere SSL. Consulte Configuración predeterminada para directorios virtuales de Exchange para obtener más información.

Sin embargo, es posible configurar una redirección automática de HTTP a HTTPS siguiendo los pasos descritos en Configuración del redireccionamiento de http a https para Outlook en la Web en Exchange Server y, como resultado, Exchange Server acepta las conexiones establecidas a través de HTTP y responde con HTTP 302 redirect.

HSTS puede ayudar a reducir en gran medida el número de redireccionamientos de HTTP a HTTPS no seguros, ya que la reescritura a HTTPS la realiza el propio explorador y el servidor ya no lo hace como parte de una HTTP 302 redirect respuesta. El uso de HSTS también puede dar lugar a mejoras de rendimiento, aunque ese no es su propósito principal.

Independientemente de la configuración predeterminada (que no permite conexiones sin cifrar), es una buena práctica de seguridad proporcionar el Strict-Transport-Security encabezado como parte del encabezado de respuesta.

Habilitar HSTS en Exchange Server

El encabezado STS se puede configurar en Exchange Server 2019 y Exchange Server 2016, aunque la forma de configurar cada versión es diferente.

Importante

HSTS solo debe configurarse en , Default Web Site ya que este es el punto de conexión al que se conectan los clientes. HSTS no debe configurarse en .Exchange Back End También debe considerar la posibilidad de configurar HSTS a través del encabezado de respuesta en dispositivos que funcionan delante de un servidor exchange a través de la capa 7 (por ejemplo, equilibradores de carga o servidores proxy inversos).

Se recomienda empezar con una max-age configuración de 300 (segundos) que es de 5 minutos. Una vez realizado el cambio, debe supervisar estrechamente la conectividad del cliente con el servidor Exchange y revertir el cambio si surge algún problema.

Actualice a un valor de una max-age semana (604800) o un mes (2592000) y espere a que se complete max-age la fase antes de continuar. Un max-age valor de un año (31536000) debe establecerse como mínimo desde un punto de vista de seguridad y también es necesario al menos, si tiene previsto agregar el dominio a HSTS Preload List. Se recomienda establecer el max-age valor en un valor de dos años (63072000).

Nota:

En los ejemplos siguientes se establece el max-age valor en 300 segundos, que es una configuración que solo se debe usar para validar la funcionalidad. Asegúrese de ajustar el valor del atributo a un valor mayor cuando esté listo para llevar la configuración a producción.

Exchange Server 2019

Para configurar Exchange Server 2019 para enviar el Strict-Transport-Security encabezado, puede usar la Windows PowerShell o la interfaz de usuario (UI) del Administrador de IIS. En la sección siguiente, se describen ambos métodos. La configuración de HSTS es una configuración por servidor y, por lo tanto, debe realizarse en todos los servidores exchange.

Configuración de HSTS mediante PowerShell

Ejecute los siguientes comandos desde una ventana de PowerShell con privilegios elevados para configurar y habilitar HSTS:

Nota:

Para configurar un valor más alto max-age para Exchange Server 2019, puede volver a ejecutar los comandos mediante un valor superior. No es necesario quitar la configuración existente de antemano.

Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false
Start-IISCommitDelay

$sitesCollection = Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection
$siteElement = Get-IISConfigCollectionElement -ConfigCollection $sitesCollection -ConfigAttribute @{"name"="Default Web Site"}
$hstsElement = Get-IISConfigElement -ConfigElement $siteElement -ChildElementName "hsts"
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "enabled" -AttributeValue $true
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "max-age" -AttributeValue 300
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "includeSubDomains" -AttributeValue $true

Si tiene previsto agregar el dominio a HSTS Preload List, debe asegurarse de que la preload directiva también se envía como parte del Strict-Transport-Security encabezado. No debe enviar la preload directiva si no tiene planes para enviar el dominio a HSTS Preload List.

Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "preload" -AttributeValue $true

Por último, se deben ejecutar los siguientes comandos para completar la configuración de HSTS:

Stop-IISCommitDelay
Remove-Module IISAdministration

Configuración de HSTS a través del Administrador de IIS

Siga estos pasos en el Administrador de Internet Information Services para configurar y habilitar HSTS:

  1. Iniciar el Administrador de IIS (InetMgr.exe)

  2. Vaya a Sites y haga clic en Default Web Site

  3. En el Actions menú, seleccione HSTS...

  4. Active la Enable casilla, defina el max-age valor y seleccione las directivas según la descripción de este artículo.

    Importante

    No se puede redirigir HTTP a HTTPS mediante la configuración de HSTS, ya que esto interrumpe la conectividad para algunos escenarios, incluido el Shell de administración de Exchange (EMS). Si desea habilitar el redireccionamiento http a HTTPS, debe seguir los pasos descritos en Configuración del redireccionamiento http a https para Outlook en la Web en Exchange Server.

  5. Haga clic OK para completar y activar la configuración.

Exchange Server 2016

Nota:

Aunque la configuración de HSTS es posible a través de la interfaz de usuario en sistemas operativos compatibles con Exchange Server 2019, este control no está disponible de forma nativa en los sistemas operativos compatibles con Exchange Server 2016. Por lo tanto, solo se describen los pasos que se deben realizar a través de PowerShell.

Para configurar Exchange Server 2016 para enviar el Strict-Transport-Security encabezado, ejecute los siguientes comandos desde una ventana de PowerShell con privilegios elevados. La configuración de HSTS es una configuración por servidor y, por lo tanto, debe realizarse en todos los servidores exchange:

Nota:

Para configurar un valor superior max-age para Exchange Server 2016, primero debe quitar el encabezado de respuesta HTTP antes de volver a ejecutar los siguientes comandos.

Windows Server 2012 & 2012 R2

Si no tiene previsto agregar el dominio a HSTS Preload List, debe asegurarse de que la preload directiva no se envía como parte del Strict-Transport-Security encabezado. Ejecute el siguiente comando para configurar HSTS sin enviar la preload directiva:

Import-Module WebAdministration
Add-WebConfigurationProperty -Filter "system.webServer/httpProtocol/customHeaders" -PSPath "IIS:\Sites\Default Web Site" -Name . -AtElement @{name="Strict-Transport-Security"} -Value @{name="Strict-Transport-Security";value="max-age=300; includeSubDomains"}

o

Si tiene previsto agregar el dominio a HSTS Preload List, debe asegurarse de que la preload directiva se envía como parte del Strict-Transport-Security encabezado . Ejecute el siguiente comando para configurar Exchange Server para enviar la preload directiva como parte de la configuración de HSTS:

Import-Module WebAdministration
Add-WebConfigurationProperty -Filter "system.webServer/httpProtocol/customHeaders" -PSPath "IIS:\Sites\Default Web Site" -Name . -AtElement @{name="Strict-Transport-Security"} -Value @{name="Strict-Transport-Security";value="max-age=300; includeSubDomains; preload"}

Windows Server 2016

Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false
Start-IISCommitDelay

$iisConfig = Get-IISConfigSection -SectionPath "system.webServer/httpProtocol" -CommitPath "Default Web Site" | Get-IISConfigCollection -CollectionName "customHeaders"

Si no tiene previsto agregar el dominio a HSTS Preload List, debe asegurarse de que la preload directiva no se envía como parte del Strict-Transport-Security encabezado. Ejecute el siguiente comando para configurar HSTS sin enviar la preload directiva:

New-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains";}

o

Si tiene previsto agregar el dominio a HSTS Preload List, debe asegurarse de que la preload directiva se envía como parte del Strict-Transport-Security encabezado . Ejecute el siguiente comando para configurar Exchange Server para enviar la preload directiva como parte de la configuración de HSTS:

New-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains; preload";}

Por último, se deben ejecutar los siguientes comandos para completar la configuración de HSTS:

Stop-IISCommitDelay
Remove-Module IISAdministration

Deshabilitar HSTS en Exchange Server

Si desea impedir que Exchange Server envíe el Strict-Transport-Security encabezado, puede revertir la configuración en una base por servidor. Los pasos para deshabilitar HSTS son diferentes en Exchange Server 2016 y Exchange Server 2019.

Nota:

La especificación HSTS permite enviar la max-age directiva con un valor de 0. Esta configuración se puede usar para sobrescribir la información de directiva de HSTS almacenada en caché de los exploradores. Si tiene previsto quitar el Exchange Server configuración de HSTS, puede ser útil establecer primero un max-age valor de antes de 0 quitar la configuración del Strict-Transport-Security encabezado.

Exchange Server 2019

Para que Exchange Server 2019 deje de enviar el Strict-Transport-Security encabezado, puede usar la Windows PowerShell o la interfaz de usuario (UI) del Administrador de IIS. En la sección siguiente, se describen ambos métodos.

Configuración de HSTS mediante PowerShell

Ejecute los siguientes comandos desde una ventana de PowerShell con privilegios elevados para deshabilitar HSTS:

Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false
Start-IISCommitDelay

$sitesCollection = Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection
$siteElement = Get-IISConfigCollectionElement -ConfigCollection $sitesCollection -ConfigAttribute @{"name"="Default Web Site"}
$hstsElement = Get-IISConfigElement -ConfigElement $siteElement -ChildElementName "hsts"
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "enabled" -AttributeValue $false
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "max-age" -AttributeValue 0
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "includeSubDomains" -AttributeValue $false

Si la configuración anterior de HSTS era enviar la preload directiva, asegúrese de deshabilitar esto también:

Importante

No olvide solicitar la eliminación de la lista de precarga de HSTS también. Si olvida quitar el dominio de la lista de precarga, los exploradores seguirán intentando aplicar HSTS.

Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "preload" -AttributeValue $false

Por último, se deben ejecutar los siguientes comandos para completar la configuración de HSTS:

Stop-IISCommitDelay
Remove-Module IISAdministration

Configuración de HSTS a través del Administrador de IIS

Siga estos pasos en el Administrador de Internet Information Services para deshabilitar HSTS:

  1. Iniciar el Administrador de IIS (InetMgr.exe)

  2. Vaya a Sites y haga clic en Default Web Site

  3. En el Actions menú, seleccione HSTS...

  4. Desactive todas las directivas, establezca la max-age directiva 0 en y, por último, desactive la casilla.Enable

  5. Haga clic OK para completar la configuración.

Exchange Server 2016

Nota:

Aunque la configuración de HSTS es posible a través de la interfaz de usuario en sistemas operativos compatibles con Exchange Server 2019, este control no está disponible de forma nativa en los sistemas operativos compatibles con Exchange Server 2016. Por lo tanto, solo se describen los pasos que se deben realizar a través de PowerShell.

Para que Exchange Server 2016 deje de enviar el Strict-Transport-Security encabezado, ejecute los siguientes comandos desde una ventana de PowerShell con privilegios elevados en cada uno de los servidores de Exchange:

Windows Server 2012 & 2012 R2

Import-Module WebAdministration
Remove-WebConfigurationProperty -PSPath "IIS:\Sites\Default Web Site" -Filter "system.webServer/httpProtocol/customHeaders" -Name . -AtElement @{name="Strict-Transport-Security"}

Windows Server 2016

Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false
Start-IISCommitDelay

$iisConfig = Get-IISConfigSection -SectionPath "system.webServer/httpProtocol" -CommitPath "Default Web Site" | Get-IISConfigCollection -CollectionName "customHeaders"

Si la configuración de HSTS anterior no envió la preload directiva, ejecute el siguiente comando:

Remove-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains";}

o

Si la configuración de HSTS anterior era enviar la preload directiva, asegúrese de ejecutar este comando:

Remove-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains; preload";}

Por último, se deben ejecutar los siguientes comandos para completar la configuración de HSTS:

Stop-IISCommitDelay
Remove-Module IISAdministration

Validar que HSTS funciona según lo esperado

La mejor manera de confirmar que la protección HSTS funciona según lo esperado es usar un explorador moderno que admita HSTS (por ejemplo, Microsoft Edge, Firefox, Chrome, Safari, Opera, etc.). Los pasos siguientes se pueden seguir cuando se usa el explorador Microsoft Edge. Si usa otro explorador, consulte la documentación para averiguar cuáles son los pasos para comprobar las marcas de HSTS:

  1. Abra el explorador y establezca una conexión HTTPS a OWA o ECP. Asegúrese de que el certificado devuelto por el servidor exchange coincide con el dominio (sub-) que ha usado (por ejemplo, e2k16-2.contoso.lab) y que el equipo cliente confía en él (ya que esto es necesario para activar la protección HSTS del explorador para el dominio).
  2. Escriba edge://net-internals/#hsts en la barra de direcciones y presione Entrar.
  3. Escriba el nombre de dominio que ha usado para acceder a OWA o ECP (por ejemplo, e2k16-2.contoso.lab) en el Query HSTS/PKP domain cuadro y presione Entrar.

Ejemplo:

Si el resultado es Not found, esto significa que HSTS no se usa para el dominio. El motivo podría ser que la dirección URL no se visitó antes o que la entrada con el almacén de directivas de HSTS ha expirado (es válida para el tiempo especificado en la max-age directiva).

Si se encuentra un resultado, la salida tiene el siguiente aspecto:

Si se usa HSTS y una conexión no es de confianza (por ejemplo, la dirección URL no coincide con el dominio para el que se emite el certificado o el certificado no es de confianza o ha expirado), el usuario ve la siguiente advertencia que no se puede omitir:

Página de bloqueo Microsoft Edge:

Página de bloqueo Mozilla Firefox: