Compartilhar via


Configurar o HTTP Strict Transport Security (HSTS) no Exchange Server

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

Visão Geral

O HTTP Strict Transport Security (HSTS) é um padrão amplamente suportado que ajuda a proteger os visitantes do site ao garantir que o browser se liga sempre através de uma ligação HTTPS. O HSTS funciona ao enviar um cabeçalho de resposta HTTP especial do servidor para o browser chamado Strict-Transport-Security (STS). Este cabeçalho inclui uma max-age diretiva que especifica o período de tempo (em segundos) para que o browser se lembre de que o site só pode ser acedido através de HTTPS. Quando um browser recebe este cabeçalho, altera automaticamente todos os pedidos HTTP para aceder ao site para pedidos HTTPS.

O HSTS não só adiciona proteção contra cenários de ataque comuns, como também ajuda a remover a necessidade da prática comum (e agora insegura) de redirecionar os utilizadores de um URL HTTP para um URL HTTPS. O HSTS também pode ser utilizado para lidar com ataques de rede ativos e passivos. No entanto, o HSTS não resolve vulnerabilidades de software maligno, phishing ou browser.

Como funciona o HSTS

O browser é instruído a impor o HSTS quando recebe o Strict-Transport-Security cabeçalho através de uma ligação HTTPS. No entanto, existem alguns requisitos que têm de ser cumpridos antes de o browser impor o HSTS. Especificamente, o certificado utilizado para encriptar a sessão:

  • Tem de ser válido e fidedigno pelo cliente;
  • Não pode expirar; e
  • Tem de conter o domínio ou subdomínio que foi chamado no browser.

Consulte Navegar na Web de forma segura com o Microsoft Edge para obter recomendações mais gerais.

Assim que o browser tiver conhecimento de que um domínio ativou o HSTS, este:

  • Utilize sempre uma https:// ligação, incluindo ao clicar numa http:// ligação ou depois de escrever um URL na barra de endereço sem especificar um protocolo.
  • Remove a capacidade de os utilizadores clicarem através de avisos (por exemplo, certificados expirados ou inválidos, incompatibilidades de nomes, etc.).

Existem alguns cenários (por exemplo, o utilizador tem um novo computador, novo perfil, novo browser ou limpou dados e definições do browser) em que um utilizador fica vulnerável por um curto período de tempo porque está a visitar o site pela primeira vez sem que o HSTS seja imposto. Para abordar estes cenários, o projeto Chromium mantém um HSTS Preload List (que também é utilizado por outros browsers, como o Microsoft Edge e o Mozilla Firefox). O Preload List impõe o HSTS mesmo quando visita um site pela primeira vez.

Pode submeter o seu domínio para a lista HSTS. O servidor Web (ou, no nosso caso, o servidor Exchange) também tem de enviar a preload diretiva como parte do Strict-Transport-Security cabeçalho para sinalizar que o pré-carregamento do HSTS deve ser efetuado pelo browser.

Como Exchange Server processa as ligações HTTP

Por predefinição, Exchange Server não redireciona HTTP para o tráfego HTTPS, uma vez que o Web Site Predefinido requer SSL. Veja Predefinições para diretórios virtuais do Exchange para obter mais informações.

No entanto, é possível configurar um redirecionamento automático de HTTP para HTTPS ao seguir os passos descritos em Configurar o redirecionamento http para https para Outlook na Web no Exchange Server e, como resultado, Exchange Server aceita ligações estabelecidas através de HTTP e responde com um HTTP 302 redirect.

O HSTS pode ajudar a reduzir consideravelmente o número de redirecionamentos HTTP para HTTPS inseguros, uma vez que a reescrita para HTTPS é executada pelo próprio browser e já não pelo servidor como parte de uma HTTP 302 redirect resposta. A utilização do HSTS também pode levar a melhorias de desempenho, embora essa não seja a sua principal finalidade.

Independentemente da configuração predefinida (que não permite ligações não encriptadas), é uma boa prática de segurança fornecer o Strict-Transport-Security cabeçalho como parte do cabeçalho de resposta.

Ativar o HSTS no Exchange Server

O cabeçalho STS pode ser configurado no Exchange Server 2019 e Exchange Server 2016, embora a forma como configura cada versão seja diferente.

Importante

O HSTS só tem de ser configurado no Default Web Site , uma vez que este é o ponto final ao qual os clientes se ligam. O HSTS não pode ser configurado no Exchange Back End. Também deve considerar a configuração do HSTS através do Cabeçalho de Resposta em dispositivos que estão a operar à frente de um servidor Exchange através da Camada 7 (por exemplo, balanceadores de carga ou proxies inversos).

É uma boa prática começar com uma max-age configuração de 300 (segundos), que é de 5 minutos. Após a alteração ter sido efetuada, deve monitorizar de perto a conectividade do cliente ao servidor Exchange e reverter a alteração se ocorrer algum problema.

Atualize para um max-age valor de uma semana (604800) ou um mês (2592000) e aguarde a totalidade max-age da fase antes de seguir em frente. Um max-age valor de um ano (31536000) deve ser definido como mínimo do ponto de vista de segurança e também é necessário, pelo menos, se planear adicionar o HSTS Preload Listseu domínio ao . Recomenda-se definir o max-age valor para um valor de dois anos (63072000).

Observação

Os exemplos seguintes definem o max-age valor como 300 segundos, que é uma configuração que deve ser utilizada apenas para validar a funcionalidade. Certifique-se de que ajusta o valor do atributo para um valor mais elevado quando estiver pronto para colocar a configuração em produção.

Exchange Server 2019

Para configurar Exchange Server 2019 para enviar o Strict-Transport-Security cabeçalho, pode utilizar o Windows PowerShell ou a interface de utilizador (IU) do Gestor de IIS. Na secção seguinte, descrevemos ambos os métodos. A configuração HSTS é uma configuração por servidor e, por conseguinte, tem de ser feita em todos os servidores exchange.

Configuração do HSTS através do PowerShell

Execute os seguintes comandos a partir de uma janela elevada do PowerShell para configurar e ativar o HSTS:

Observação

Para configurar um valor mais elevado max-age para Exchange Server 2019, pode executar os comandos novamente com um valor mais elevado. Não é necessário remover previamente a configuração existente.

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

Se planeia adicionar o HSTS Preload Listseu domínio ao , tem de se certificar de que a preload diretiva também é enviada como parte do Strict-Transport-Security cabeçalho. Não pode enviar a preload diretiva se não tiver planos para submeter o seu domínio para o HSTS Preload List.

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

Por fim, os seguintes comandos têm de ser executados para concluir a configuração do HSTS:

Stop-IISCommitDelay
Remove-Module IISAdministration

Configuração do HSTS através do Gestor de IIS

Efetue os seguintes passos no Gestor de Serviços de Informação Internet para configurar e ativar o HSTS:

  1. Iniciar o Gestor do IIS (InetMgr.exe)

  2. Navegue para Sites e clique em Default Web Site

  3. Actions No menu, selecioneHSTS...

  4. Selecione a Enable caixa de verificação, defina o max-age valor e selecione as diretivas de acordo com a descrição neste artigo

    Importante

    Não é possível redirecionar HTTP para HTTPS com a configuração HSTS, uma vez que esta ação interrompe a conectividade em alguns cenários, incluindo a Shell de Gestão do Exchange (EMS). Se quiser ativar o redirecionamento HTTP para HTTPS, tem de seguir os passos descritos em Configurar o redirecionamento http para https para Outlook na Web no Exchange Server.

  5. Clique OK para concluir e ativar a configuração

Exchange Server 2016

Observação

Embora a configuração HSTS seja possível através da IU em sistemas operativos suportados pelo Exchange Server 2019, este controlo não está disponível nativamente nos sistemas operativos suportados pelo Exchange Server 2016. Por conseguinte, descrevemos apenas os passos a realizar através do PowerShell.

Para configurar Exchange Server 2016 para enviar o Strict-Transport-Security cabeçalho, execute os seguintes comandos a partir de uma janela elevada do PowerShell. A configuração HSTS é uma configuração por servidor e, por conseguinte, tem de ser feita em todos os servidores exchange:

Observação

Para configurar um valor mais elevado max-age para Exchange Server 2016, primeiro tem de remover o cabeçalho de Resposta HTTP antes de executar novamente os seguintes comandos.

Windows Server 2012 & 2012 R2

Se não planear adicionar o HSTS Preload Listseu domínio ao , tem de se certificar de que a preload diretiva não é enviada como parte do Strict-Transport-Security cabeçalho. Execute o seguinte comando para configurar o HSTS sem enviar a preload diretiva:

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"}

or

Se planear adicionar o HSTS Preload Listseu domínio ao , tem de se certificar de que a preload diretiva é enviada como parte do Strict-Transport-Security cabeçalho. Execute o seguinte comando para configurar Exchange Server para enviar a preload diretiva como parte da configuração 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"

Se não planear adicionar o HSTS Preload Listseu domínio ao , tem de se certificar de que a preload diretiva não é enviada como parte do Strict-Transport-Security cabeçalho. Execute o seguinte comando para configurar o HSTS sem enviar a preload diretiva:

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

or

Se planear adicionar o HSTS Preload Listseu domínio ao , tem de se certificar de que a preload diretiva é enviada como parte do Strict-Transport-Security cabeçalho. Execute o seguinte comando para configurar Exchange Server para enviar a preload diretiva como parte da configuração HSTS:

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

Por fim, os seguintes comandos têm de ser executados para concluir a configuração do HSTS:

Stop-IISCommitDelay
Remove-Module IISAdministration

Desativar o HSTS no Exchange Server

Se quiser impedir Exchange Server de enviar o Strict-Transport-Security cabeçalho, pode reverter a configuração numa base por servidor. Os passos para desativar o HSTS são diferentes no Exchange Server 2016 e Exchange Server 2019.

Observação

A especificação HSTS permite-lhe enviar a max-age diretiva com um valor de 0. Esta configuração pode ser utilizada para substituir as informações da política HSTS em cache dos browsers. Se planear remover o Exchange Server configuração HSTS, poderá ser útil definir primeiro um max-age valor de antes de 0 remover a configuração do Strict-Transport-Security cabeçalho.

Exchange Server 2019

Para fazer com que Exchange Server 2019 deixe de enviar o Strict-Transport-Security cabeçalho, pode utilizar o Windows PowerShell ou a interface de utilizador (IU) do Gestor de IIS. Na secção seguinte, descrevemos ambos os métodos.

Configuração do HSTS através do PowerShell

Execute os seguintes comandos a partir de uma janela elevada do PowerShell para desativar o 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

Se a configuração anterior do HSTS tiver sido para enviar a preload diretiva, confirme que também desativa esta opção:

Importante

Lembre-se também de pedir a remoção da lista de pré-carregamento HSTS . Se se esquecer de remover o domínio da lista de pré-carregamento, os browsers continuarão a tentar impor o HSTS.

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

Por fim, os seguintes comandos têm de ser executados para concluir a configuração do HSTS:

Stop-IISCommitDelay
Remove-Module IISAdministration

Configuração do HSTS através do Gestor de IIS

Execute os seguintes passos no Gestor de Serviços de Informação Internet para desativar o HSTS:

  1. Iniciar o Gestor do IIS (InetMgr.exe)

  2. Navegue para Sites e clique em Default Web Site

  3. Actions No menu, selecioneHSTS...

  4. Desmarque todas as diretivas, defina a max-age diretiva como 0 e, por fim, desmarque a Enable caixa de verificação

  5. Clique OK para concluir a configuração

Exchange Server 2016

Observação

Embora a configuração HSTS seja possível através da IU em sistemas operativos suportados pelo Exchange Server 2019, este controlo não está disponível nativamente nos sistemas operativos suportados pelo Exchange Server 2016. Por conseguinte, descrevemos apenas os passos a realizar através do PowerShell.

Para fazer com que Exchange Server 2016 deixe de enviar o Strict-Transport-Security cabeçalho, execute os seguintes comandos a partir de uma janela elevada do PowerShell em cada um dos seus servidores 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"

Se a configuração anterior do HSTS não tiver enviado a preload diretiva, execute o seguinte comando:

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

or

Se a configuração anterior do HSTS fosse enviar a preload diretiva, confirme que executa este comando:

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

Por fim, os seguintes comandos têm de ser executados para concluir a configuração do HSTS:

Stop-IISCommitDelay
Remove-Module IISAdministration

Valide se o HSTS está a funcionar conforme esperado

A melhor forma de confirmar que a proteção HSTS está a funcionar conforme esperado é utilizar um browser moderno que suporte HSTS (por exemplo, Microsoft Edge, Firefox, Chrome, Safari, Opera, etc.). Os passos seguintes podem ser seguidos ao utilizar o browser Microsoft Edge. Se estiver a utilizar um browser diferente, consulte a documentação para saber quais são os passos para verificar se os sinalizadores HSTS são:

  1. Abra o browser e estabeleça uma ligação HTTPS ao OWA ou ECP. Certifique-se de que o certificado devolvido pelo servidor Exchange corresponde ao domínio (sub-) que utilizou (por exemplo, e2k16-2.contoso.lab) e é considerado fidedigno pelo computador cliente (uma vez que é necessário ativar a proteção HSTS do browser para o domínio).
  2. Escreva edge://net-internals/#hsts na barra de endereço e prima Enter.
  3. Introduza o nome de domínio que utilizou para aceder ao OWA ou ao ECP (por exemplo, e2k16-2.contoso.lab) na Query HSTS/PKP domain caixa e prima Enter.

Exemplo:

Se o resultado for Not found, significa que o HSTS não é utilizado para o domínio. O motivo pode ser que o URL não tenha sido visitado antes ou que a entrada com o arquivo de políticas HSTS tenha expirado (é válido para o tempo especificado na max-age diretiva).

Se for encontrado um resultado, o resultado terá o seguinte aspeto:

Se o HSTS for utilizado e uma ligação não for fidedigna (por exemplo, o URL não corresponde ao domínio para o qual o certificado é emitido ou o certificado não é fidedigno ou expirou), o utilizador vê o seguinte aviso que não pode ser ignorado:

Página de bloqueio do Microsoft Edge:

Página de bloqueio Mozilla Firefox: