Exchange Server 2016: přecházíme na Kerberos
Klient Microsoft Outlook ve všech podporovaných verzí umí použít pro autentizaci NTLM i Kerberos. Je nastaven tak, že se snaží domluvit s Exchange Serverem na nejlepší možné autentizaci, a tu následně použije. S překvapením ale můžeme zjistit, že ve výchozí konfiguraci to není osvědčený Kerberos, ale naopak zastaralejší forma autentizace NTLM, která je použita během připojení Outlooku k Exchange Serveru.
V tomto článku si detailně ukážeme jak přejít na doporučený způsob ověřování pomocí modernějšího protokolu Kerberos.
Proč je vlastně Kerberos lepší?
NTLM (NT Lan Manager) je historicky starší a kvalitativně a bezpečnostně horší mechanismus ve srovnání s moderním protokolem Kerberos primárně z následujících důvodů:
-
Vytváří výrazně vyšší zátěž na doménové řadiče – každá jednotlivá navazovaná relace znamená kontaktování doménového řadiče. Při opakovaném vypnutí/zapnutí Microsoft Outlook se znovu kontaktuje opakovaně doménový řadič. V porovnání s tímto je Kerberos výrazně efektivnější, protože uživatel dostane jednorázově Kerberos session tiket, který má platnost 10h a není tak nutné v jakékoliv situaci doménový řadič znovu kontaktovat.
-
Výpadky autentizace – doménové řadiče mají své limity v počtu současně prováděných NTLM autentizací a v prostředích, kde je mnoho set či více uživatelů, může dojít dočasně k vyčerpání tohoto limitu a uživatelům se místo SSO zkušenosti objevuje náhodně dialog pro zadání přihlašovacích údajů.
-
NTLM je méně bezpečné – NTLM používá slabší kryptografii, oproti tomu Kerberos je postavený primárně na použití velmi silného algoritmu AES.
- Při použití NTLM klient předává přihlašovací údaje Exchange Serveru, který je následně předává doménovému řadiči. Naše přihlašovací údaje tak putují chráněné slabou kryptografií mezi servery v rámci sítě. V rámci Kerberos autentizace probíhá komunikace pouze mezi klientem a doménovým řadiče a směrem k Exchange Serveru se již prokazujeme pouze platným Kerberos tiketem.
Doporučení je tedy přejít na Kerberos autentizace, což je proces, který se skládá z následujících kroků.
Vytvoření ASA (Alternate service account ) účtu
Musíme si vytvořit v Active Directory pomocný účet, který bude nositelem informace o jménech SPN (Service Principal Name), která na Exchange Serveru používáme. Je možné použít uživatelský účet i počítačový účet, z bezpečnostních důvodů je doporučeno použít účet počítače. ASA účet vytvoříme pomocí následujících příkazů:
Import-Module ActiveDirectory New-ADComputer -Name EXCH2016ASA -AccountPassword (Read-Host 'Enter password' -AsSecureString) -Description 'Alternate Service Account credentials for Exchange' -Enabled:$True -SamAccountName EXCH2016ASA Set-ADComputer EXCH2016ASA -add @{"msDS-SupportedEncryptionTypes"="28"}
Identifikace SPN
K vytvořenému ASA účtu bude nutná přiřadit správná SPN. Je vhodné si tedy předem udělat soupis všech jmen, která Outlook používá při přístupu na Exchange Server. Konkrétně se jedná o služby: Outlook Anywhere, MAPI over HTTP, Exchange Web Services, Autodiscover a Offline Address Book Obvykle to bývá:
-
http/autodiscover.kpcs.cz (Autodiscover)
-
http/mail.kpcs.cz (Outlook Anywhere externě, MAPI over http externě , Exchange Web Services a Offline Address Book)
- http/outlook-int.kpcs.cz (Outlook Anywhere interně, MAPI over http interně)
Poznámka: mít jiné jméno pro přístup k Outlook Anywhere a MAPI over http interně není nezbytně nutné, ale pokud chceme mít jinak nastavenou autentizaci pro interní přístup (Kerberos) a jinak pro externí přístup (NTML nebo Basic), musí umět Outlook rozlišit, kdy přistupuje interně a kdy interně. Jediné řešení je definice tohoto nového interního jména, které není přeložitelné z Internetu.
Přiřazení ASA účtu k jednotlivým Exchange serverům
-
Spusťte EMS na Exchange Serveru 2016
-
Změňte aktuální složku na <Exchange 2016 installation directory>\V15\Scripts, obvykle cd "C:\Program Files\Microsoft\Exchange Server\V15\Scripts"
-
Spusťte .\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer ex1.kpcs.cz -GenerateNewPasswordFor kpcs\EXCH2016ASA$
- Na každém dalším Exchange Serveru 2016 pak .\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer ex2.kpcs.cz -CopyFrom ex1.kpcs.cz
Obrázek 1 Přiřazení účtu ASA k Exchange serverům
Přiřazení SPN k ASA účtu
K přiřazení SPN k ASA účtu doporučuji použít příkaz SetSPN, který nejenom, že nám definovaná jména zaregistruje, ale také provádí kontrolu, zda neexistuje v Active Directory duplicita, která by způsobila nefunkčnost autentizace.
setspn -S http/autodiscover.kpcs.cz KPCS\EXCH2016ASA$ setspn -S http/mail.kpcs.cz KPCS\EXCH2016ASA$ setspn -S http/outlook-int.kpcs.cz KPCS\EXCH2016ASA$
Obrázek 2 Přiřazení SPN k účtu ASA
Povolení Kerberos autentizace pro Outlook Anywhere a MAPI over HTTP
Pro Outlook Anywhere a MAPI over HTTP povolíme autentizaci pomocí Negotiate. Důsledkem bude již finální přepnutí klientů na Kerberos.
Get-OutlookAnywhere -Server EX2016 | Set-OutlookAnywhere -InternalClientAuthenticationMethod Negotiate -ExternalClientAuthentication NTLM Get-MapiVirtualDirectory -Server EX2016 | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm, Negotiate
Ověření
Osobně pro ověření používám 2 základní metody:
-
Na klientovi si spustím klist.exe a dívám se, zda má vydané Keberos tikety s Exchange SPN.
- Podívám se stavu připojení, které hlásí Microsoft Outlook. Ve sloupečku AUTH se nám místo NTLM objeví Nego*.
Shrnutí
Exchange Server 2016 používá po instalaci a standardní konfiguraci v rámci připojení Outlooku bohužel pouze zastaralou autentizaci pomocí NTLM, která vykazuje hned celou řadu nevýhod. Přechod na Kerberos autentizaci je ale nejen plně podporovaným scénářem, ale také rozhodně doporučeným. V tom článku jsme si ukázali kompletní postup, jak tuto důležitou změnu provést.
Miroslav Knotek, KPCS CZ, knotek@kpcs.cz
KPCS CZ, s.r.o. je přední českou firmou specializující se na nasazení, správu a podporu informačních technologií, primárně zaměřenou na produkty společnosti Microsoft. Jako systémový integrátor poskytuje kvalitní podniková řešení na této platformě, která jsou v pravidelných intervalech hodnocena prvními příčkami v soutěžích Microsoft Awards. KPCS CZ disponuje předními odborníky na problematiku veřejného cloudu, tedy služeb Office 365 a Azure, ale i technologií privátního cloudu Windows Server, Hyper-V a produktů rodiny System Center.