logo exchange

Exchange Server 2019 en HSTS

Binnen Exchange Server 2019 is het nu mogelijk om HTTP Strict Transport Security in te schakelen. Met deze instelling wordt er afgedwongen dat de webbrowser bij een bezoek altijd HTTPS moet gebruiken. Er wordt nu niet meer geprobeerd een standaard HTTP-verbinding te maken. 

Het beschermt websites tegen protocol-downgrade-aanvallen en cookie-kaping, door webbrowsers te dwingen alleen via veilige HTTPS-verbindingen met een website te communiceren. Sommige ‘man in the middle‘ aanvallen kunnen hiermee voorkomen worden.

Bij Exchange Server 2016 is dit eveneens mogelijk, maar wijkt het instellen iets af, zie hier.

Om HSTS te activeren op een Exchange Server 2019 open je een powershell sessie als administrator.

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

Als je jouw domain toevoegt aan een zogenaamde HSTS Preload List, geef dan aan dat het proload attribuut meegestuurd dient te worden met de STS header. Enkel dan voer je het volgende uit:

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

Als laatste stap voer je het onderstaande uit:

Stop-IISCommitDelay
Remove-Module IISAdministration

Bovenstaande kan ook via IIS Manager… Selecteer de Default Web Site en kies rechts onder Configure voor HSTS.

LET OP! Activeer de Redirect Http to Https niet, dat kan problemen met EMS en OWA opleveren!

Om de werking te testen open je Edge en bezoek je eerst je owa url zodat edge de HSTS/PKP set een keer geraadpleegd heeft! Vervolgens ga je naar: edge://net-internals/#hsts en vul daar bij Query HSTS/PKP domain de hostname in en druk je op query.

Wanneer je “Found” onder dynamic_sts / dynamic_upgrade / dynamic_sts_domain etc zoiets als bovenstaand ziet, is HSTS correct geconfigureerd.

Voor Exchange Server 2016 wijkt het een beetje af.

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

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

zonder preload:

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

met preload:

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

afsluitend:

Stop-IISCommitDelay
Remove-Module IISAdministration