Jak správně zabezpečit Exchange Servery

Blog

 
 Rostislav Fukala

Zabezpečení Exchange serverů by mělo být vždy na prvním místě, bohužel realita malých a středně velkých společností je často jiná. Obvykle z důvodu specialistů na tuto problematiku. Opomenu-li následující doporučení, tak nejčastější chybou jsou chybějící bezpečnostní záplaty jak samotného Exchange serveru, tak i podkladového operačního systému, doinstalovaných komponent a SSL. Za sebe mohu říci, že servery, které občas vídám u zákazníků, jsou před mou první návštěvou na letitých kumulativních updatech a obvykle nenásledují doporučení ke konfiguraci Windows. Exchange server, který vybočuje z těchto kolejí, jež správci prostředí linkují pro případné útočníky (ano nám se to nestane, slýchává snad každý), je světlou výjimkou a je mou povinností daného administrátora pochválit, případně jejich Security oddělení.

Pojďme si ukázat, které kroky vám mohou pomoci s případnou nápravou a jaké nástroje lze použít k monitorování důležitých základních nastavení. Veškerá konfigurace je směřováno zejména na poslední dvě edice Exchange serveru (2016,2019). Starší verze nebyly testovány, avšak některá nastavení mohou být použita i zde.

Nastavení lze rozdělit na dvě části, a to zabezpečení http protokolu a zabezpečení operačního systému, na kterém váš Exchange server běží

Vypnutí informací z IIS hlavičky

Ve výchozím nastavení IIS na Windows serveru je povoleno publikování informativních dat do hlavičky v odpovědi serveru. Tyto hodnoty mohou být zneužity útočníkem k nalezení možné zranitelnosti serveru, jako případně další informace k vymezení útoku.

O nastavení se lze přesvědčit v analýze http hlavičky, například pomocí aplikace Fiddler, jež by neměla chybět ve výbavě Exchange administrátora

img

Můžete použít i webové nástroje při již funkční publikaci do internetu, jako jsou například

https://gf.dev/http-headers-test

https://httpstatus.io/

Nebo zvolit tu nejjednodušší cestu, a to přes PowerShell, kde dotaz na konfugiraci hlavičky vypadá takto

(Invoke-WebRequest -Uri https://requestedurl/owa| Select-Object -ExcludeProperty headers).headers

Při testování konkrétního lokálního serveru použijte korektní záznam host souboru na jméno či SAN certifikátu, či při problémech vypněte validaci např. dle Could not establish trust relationship for the SSL/TLS Secure Channel – Invoke-WebRequest.

Vypnutí X-AspNet-Version
  • X-AspNet-Version můžete odstranit pomocí IIS manageru
  1. V IIS Manageru vybereme server, jehož konfiguraci chceme upravovat (ve výchozím nastavení pouze server, na kterém pracujeme).

  2. V části Management vybereme Configuration Editor

  3. V Section rozbalíme system.web a vybereme httpRuntime

  4. Změníme hodnotu enableVersionHeader na False

img

  • Případně editací konfiguračního souboru web.config v C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config
<system.web>

 <httpRuntime enableVersionHeader="false" />

</system.web>
  • Nakonec si ukážeme opět metodu pomocí PowerShell (tuto volbu lze použít pouze pro IIS 10)
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT' -filter "system.web/httpRuntime" -name "enableVersionHeader" -value "False"
Vypnutí X-Powered-By
  • X-Powered-By můžeme odstranit pomocí IIS manageru
  1. V IIS Manageru vybereme server, dále Sites a následně publikovanou web site (ve výchozím nastavení Default Web Site)

  2. V sekci IIS zvolíme http Response Headers

  3. Vybereme X-Powered-By a zvolíme Remove

img

  • Rovněž lze využít úpravu web.config v cestě C:\inetpub\wwwroot a vložit na konec konfigurace
<system.webServer>

  <httpProtocol>

​    <customHeaders>

​      <remove name="X-Powered-By" />

​    </customHeaders>

  </httpProtocol>

</system.webServer>
  • Můžemem při nastavování opět použít metodu pomocí PowerShell cmd-letu

    Set-WebConfigurationProperty, jež můžeme využít od IIS 10.

    Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/httpProtocol/customHeaders" -name "." -AtElement @{name='X-Powered-By'}

Další případné náměty na úpravu hlavičky IIS odpovědi naleznete například:

Configuring Secure IIS Response Headers in ASP.NET MVC

IIS Best Practices

Povolení TLS 1.2 a vypnutí TLS 1.0 a 1.1

IT svět se dnes překotně vyvíjí, stejně jako verze Transport Layer Security (TLS), kde starší verze začínají být bezpečnostním rizikem, proto je nutné přecházet na ty novější.

Aktuální verze TLS 1.3 přišla na svět v srpnu 2018 a doposud není ve světě Windows serverů používaným a doporučovaným standardem. Volba tedy padá na jeho předchůdce TLS 1.2 (tato verze byla specifikována 10 let před verzí 1.3) jako plně podporovaný standard v Exchange prostředí a pokud nám to klientské aplikace a přistupující servery povolí, tak bychom měli vypnout TLS 1.0 a 1.1.

Abychom mohli TLS 1.2 nasadit, měl by být Exchange server především v aktuální podporované verzi, včetně bezpečnostních záplat. Pokud by vás zajímaly detaily, tak doporučuji článek Exchange Server TLS guidance, part 1: Getting Ready for TLS 1.2.

Vlastní zapnutí TLS 1.2 a následné vypnutí můžete provést manuálně například dle

Můžete také přistoupit k použití některého nástroje či scriptu a upravit požadovaná nastavení. Mezi nejpoužívanější patří

Oba tyto nástroje pokrývají i následující kapitolu.

Vypnutí PCT 1.0, SSL 2.0/3.0 a slabých šifer

Stejně jako TLS se stává ve starších verzích méně bezpečným díky nárustu dostupného výpočetního výkonu, pokrocích v kryptografii i s nadcházejícím příchodem kvantových počítačů, tak i jednotlivé metody šifrování se stávají nebezpečnými.

Hrubý popis naleznete ve starším článku How to disable PCT 1.0, SSL 2.0, SSL 3.0, or TLS 1.0 in Internet Information Services. Vlastní náměty můžete čerpat z doporučení SSL Labs:

SSL and TLS Deployment Best Practices.

Výslednou konfiguraci TLS/SSL lze ověřit například pomocí těchto webových nástrojů

IP and Domain Restriction

V prostředích, kde Exchange server je publikován přímo do internetu, můžeme server ochránit nastavením pouze lokálních adres pro virtuální adresář Exchange Control Panel (ECP), případně pro další (zejména EWS), které nepotřebujeme konzumovat z internetu.

  1. Nainstalujeme IIS rozšíření „IP and Domain Restrictions“
    Add-WindowsFeature -Name Web-IP-Security
  2. Spustíme Internet Information Services (IIS) Manager

    img

  3. Přejdeme do potřebného virtuálního adresáře (v našem případě ECP) a spustíme „IP and Domain Restrictions“

img

  1. Přidáme povolené rozsahy IP adres

img

  1. Po přidání všech rozsahů konfigurujeme vlastnosti nastavení a vybereme Deny pro nespecifikované klienty

img

Pokud potřebujeme „ochránit“ další virtuální adresáře, tak postup opakujeme i na nich.

Vypnutí NTFS verze 8.3

Útočníci mohou obejít omezení pro delší názvy souborů díky zpětné kompatibilitě pro starší 16-bit aplikace. Doporučuje se proto takové nastavení zakázat.

Po zákazu budou všechny nové soubory nedostupné pro 16-bit aplikace, což už by v dnešní době nemělo představovat žádný problém.

Nutno zkontrolovat a případně nastavit klíč NtfsDisable8dot3NameCreation v HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem na hodnotu 1.

Vypnutí nepotřebných zařízení

V případě starších serverů je vhodné vypnout nepotřebné vstupní porty (jako například COM, LPT) a disketové jednotky v BIOS či konfiguraci virtualizační platformy.

Tuto radu berte s rezervou na nově instalovaných zařízeních, kde mnohé tyto technologie jsou již dávno minulostí.

Vypnutí NetBIOS

Pomocí Netbios může útočník získat informace o názvu serveru, v moderních síťových prostředích by toto chování mělo být potlačeno.

V případě Exchange serverů budeme předpokládat ruční konfiguraci IP. (V opačném případě lze zakázat Netbios v DHCP konzoli)

Vypnutí Link-Local Multicast Name Resolution (LLMNR) pomocí GPO

V doménovém prostředí, bez kterého nelze Exchange Mailbox server provozovat, lze pomocí skupinových politik vypnout LLNMR broadcasty. K zajištění tohoto nastavení postupujeme takto

  1. Spustíme Group Policy Management a vytvoříme novou či editujeme existující politiku cílenou na všechny počítače a servery

  2. Navigujeme na Computer Configuration -> Administrative Templates -> Network -> DNS Client

  3. Zde vybereme položku „Turn off multicast name resolution“ a zvolíme Enabled

img

Vypnutí NetBIOS over TCP/IP

Pokud nemůžeme vypnout NetBIOS globálně, tak můžeme na každém klientovi a každém síťovém spojení nastavit hodnotu manuálně.

  1. Otevřeme vlastnosti síťového připojení

  2. Vybereme vlastnosti Internet Protocol Version 4 (TCP/IPv4)

  3. Zvolíme Advanced, přejdeme do záložky WINS a zvolíme „Disable NetBIOS over TCP/IP“

img

Případně můžeme použít editor registru a pro každý síťový adaptér nastavit v HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces parametr NetbiosOptions na hodnotu 2.

Přejmenování a nastavení výchozích účtů

Pokud máte Active Directory i servery, co se týče přednastavených jmen pro administrátora a hosta měli byste je určitě přejmenovat.

Bezpečnostní záplaty pro HW, OS a dodatečné komponenty

Bezpečnostní záplaty operačního systému i aplikací jsou alfou a omegou celého zabezpečení serveru, každý rok, měsíc snad i den se objevují nové hrozby pro tyto části kódu a často i dlouho po zveřejnění nejsou opraveny.

Všechny níže uvedené opravy by měly podléhat změnovému řízení, pro případný výskyt problémů po instalaci.

Hardware

V poslední době se objevilo mnoho bezpečnostních hrozeb na platformě x86 a některé se dotýkají všech výrobců procesorů. Microsoft se snaží tyto rizika ve spolupráci s výrobci procesorů eliminovat.

Rovněž mikro kódy BIOS či další HW komponent mohou obsahovat opravu výše uvedeného.

Udržujte verzi BIOS, ovladačů na posledních verzích, čím eliminujete mnoho hrozeb napadení.

Operační systém

Microsoft vydává každé druhé úterý v měsíci bezpečnostní záplaty, které by měly být aplikovány. Rozhodně nenechávejte instalovat tyto záplaty automaticky a pro jejich instalaci vyberte vhodný čas.

C++ distribuční balíčky

Nejčastěji opomíjeným, avšak ne zcela kritickým rozšířením, jsou C++ knihovny. V rámci Exchange Serveru 2016/2019 jsou využívány tyto

  • Visual C++ Redistributable Package for Visual Studio 2012

  • Visual C++ Redistributable Package for Visual Studio 2013

Tyto balíčky byly instalovány při počáteční instalaci Exchange serverů a případně po vyžadování dalšími Cumulative Updaty a doporučuje se je aktualizovat.

Aktuální verze naleznete na The latest supported Visual C++ downloads.

Exchange

Plně podporované verze Exchange (v současnosti 2016/2019) dostávají čtvrtletně možnost Cumulative Update (CU), jež obsahuje opravy či rozšíření vlastního systému a rovněž všechny bezpečnostní záplaty. Samotné záplaty vycházejí dle potřeby spolu se záplatami pro operační systém a lze je aplikovat na poslední dvě CU v rámci Exchange 2016/2019, Exchange 2013 s CU23 a pro Exchange 2010 Service Pack 3.

Udržujte tedy vaše Exchange servery na posledních verzích CU a aplikujte bezpečnostní záplaty.

Vypnutí SMBv1

V únoru letošního roku došlo k vydání článku Exchange Server and SMBv1, který Exchange administrátory nabádá k vypnutí SMBv1, pokud tak ještě neučinili.

Pro Windows Server 2012 R2 a vyšší tak můžeme jednoduše učinit pomocí PowerSell.

Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

Set-SmbServerConfiguration -EnableSMB1Protocol $false

Případně, pokud nám prostředí dovolí, vypnout tuto verzi SMB pomocí Group Policy.

Pomocné nástroje

Mimo výše uvedené nástroje na doporučenou úpravu TLS/SSL, bych rád zmínil script HealthChecker, který vám může pomoci se základní diagnostikou nastavení Exchange serveru, včetně některých zde zmíněných nastavení.

Sdílej v médiích

Kontakt

Nenašli jste, co hledáte? Pošlete nám zprávu a zůstaneme s vámi ve spojení.

* Vyžadované pole

Osobní data použijeme pouze pro vypracování odpovědi na dotaz. Pravidla zpracování osobních údajů

map us
map eu