Dnes se podíváme na službu AdminSDHolder a vazbu při nasazení Exchange Serveru, která není nikterak novou funkcionalitou v rámci Active Directory domény, ale v některých případech ve spojení s Exchange serverem může být poměrně záludnou vlastností.
Co je vlastně AdminSDHolder a koho chrání
Nejprve se podívejme co je „služba“ Admin SDHolder. Tato služba v rámci Active Directory zajišťuje ochranu velmi důležitých skupin, potažmo jejich členů a tzv. Security Descriptor Propagátorů (SDPROP) , které bychom měli primárně chránit proti odcizení, jelikož s jejich vlastnictvím je možno provádět privilegované operace v rámci Windows infrastruktury. Tato služba byla implementována již v Windows Server 2000, ale abych pravdu řekl, tenkrát jsem se s ní až tolik nezabýval a ani nesetkal.
Každá Active Directory doména má ve své topologii umístěný objekt AdminSDHolder, který má definována oprávnění (ACL) v rámci domény. Tato oprávnění jsou na chráněné objekty vynucena každou hodinu z PDC Emulátoru tudíž dojde k přepsání již nastavených oprávnění. Jak jsem se dočetl v jednom článku, tak přepsání oprávnění je podmíněno změnou velikosti nebo binárních hodnoty daného objektu, jehož výpočet provádí právě master role v PDC Emulátoru tak dojde ke zmiňovanému přepsání oprávnění. Aby bylo možno tato oprávnění přepsat je nutné nad daným objektem zrušit dědění oprávnění.
Ve výchozím stavu jsou chráněny primárně tyto skupiny a jejich členové:
Windows 2000 < SP4 | Windows 2000 SP4 – Windows Server 2003 RTM | Windows Server 2003 SP1+ | Windows Server 2012, Windows Server 2008 R2, Windows Server 2008 | Windows Server 2016 TP5 |
Administrators | Account Operators | Account Operators | Account Operators | Account Operators |
Administrator | Administrator | Administrator | Administrator | |
Administrators | Administrators | Administrators | Administrators | |
Backup Operators | Backup Operators | Backup Operators | Backup Operators | |
Cert Publishers | ||||
Domain Admins | Domain Admins | Domain Admins | Domain Admins | Domain Admins |
Domain Controllers | Domain Controllers | Domain Controllers | Domain Controllers | |
Enterprise Admins | Enterprise Admins | Enterprise Admins | Enterprise Admins | Enterprise Admins |
Krbtgt | Krbtgt | Krbtgt | Krbtgt | |
Print Operators | Print Operators | Print Operators | Print Operators | |
Read-only Domain Controllers | Read-Only Domain Controlers | |||
Replicator | Replicator | Replicator | Replicator | |
Schema Admins | Schema Admins | Schema Admins | Schema Admins | Schema Admins |
Server Operators | Server Operators | Server Operators | Server Operators |
Jak zjistím co AdminSDHolder chrání
Pokud budeme chtít zjistit jaké účty máme aktuálně chráněny v rámci Active Directory, tak můžeme použít následující příkazy v powershellu:
Pro výpis všech chráněných skupin: Get-ADGroup -LDAPFilter „(admincount=1)“ | select name
Pro výpis všech chráněných uživatelů: Get-ADUser -LDAPFilter „(admincount=1)“ | select name
Jak upravit výchozí nastavení
Jak jsme si uvedli výše v textu tak služba je nějakým způsobem nastavena tak aby chránila privilegované účty, respektive protected group. Toto nastavení je možno modifikovat a v některých případech to může být i žádoucí a to zejména u Service Desk operátorů jež jsou členy skupiny Account Operators a to zejména, aby mohli vytvářet uživatele v doméně pro nově příchozí zaměstnance a když mají pod stejný účet přiřazený mailbox (o tom mailboxu si řekneme více později).
V rámci dané služby je možno modifikovat v první řadě čas za jak dlouho proběhne na PDC Emulátoru kontrola protected group. Nastavení se primárně mění na PDC Emulátoru v registrech operačního systému a to v: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters, kde by měla existovat hodnota DWORD s názvem AdminSDProtectedFrequency a nastavenou hodnotou v sekundách. Pokud tato hodnota neexistuje používá se výchozí nastavení 60 minut. Tuto hodnotu můžeme nastavit na nižší hodnotu a to v rozmezí 60 – 7200 sekund. V případě špatného nastavení je možno, že dojde k velkému zatížení na procesu Local Security Authority Subsystem Service (LSASS) a proto je nutno po změně tuto hodnotu sledovat a testovat v neprodukčním prostředí.
Další možností pro modifikaci je seznam a definice protected group, která se provádí pomocí ADSI Edit v Default Naming Content. V rámci nastavení je však možno provádět úpravy na jen těchto built in skupinách:
- Account Operators
- Server Operators
- Print Operators
- Backuo Operators
A to pomocí změny hodnoty atributu dsHeuristics na objektu CN=Directory Service v Configuration partition Active Directory a to zadáním správné hodnoty. Pozor tímto atributem lze měnit i další nastavení v Active Directory a tak doporučuji důkladně nastudovat dokumentaci a otestovat v LABu. (https://msdn.microsoft.com/cs-cz/enus/library/ms675656(VS.85).aspx)
Každá ze skupin má vlastní binární číslo a při modifikaci dsHeuritics je nutno tyto binární čísla sčítat:
Bit | Group to Exclude | Binary Value | Hexadecimal Value |
0 | Account Operators | 1 | 1 |
1 | Server Operators | 10 | 2 |
2 | Print Operators | 100 | 4 |
3 | Backup Operators | 1000 | 8 |
Tato tabulka, jež je zdrojem z stránek Microsoftu, udává všechny kombinace a součty jež je možno použít v rámci modifikace nastavení pro AdminSDHolder:
Group(s) to Exclude | Binary Value | Hexadecimal Value |
None (Default) | 0 | 0 |
Account Operators | 1 | 1 |
Server Operators | 10 | 2 |
Account Operators | 0001 + 0010 = 0011 | 3 |
Server Operators | ||
Print Operators | 100 | 4 |
Account Operators | 0001 + 0100 = 0101 | 5 |
Print Operators | ||
Server Operators | 0010 + 0100 = 0110 | 6 |
Print Operators | ||
Account Operators | 0001 + 0010 + 0100 = 0111 | 7 |
Server Operators | ||
Print Operators | ||
Backup Operators | 1000 | 8 |
Account Operators | 0001 + 1000 = 1001 | 9 |
Backup Operators | ||
Server Operators | 0010 + 1000 = 1010 | A |
Backup Operators | ||
Account Operators Server Operators | 0001 + 0010 + 1000 = 1011 | B |
Backup Operators | ||
Print Operators | 0100 + 1000 = 1100 | C |
Backup Operators | ||
Account Operators | 0001 + 0100 + 1000 = 1101 | D |
Print Operators | ||
Backup Operators | ||
Server Operators | 0010 + 0100 + 1000 = 1110 | E |
Print Operators | ||
Backup Operators | ||
Account Operators | 0001 + 0010 + 0100 + 1000 = 1111 | F |
Server Operators | ||
Print Operators Backup Operators |
Propojení a závislosti u služeb Exchange
V rámci instalace služeb Exchange, Lync, BlackBarry Server a dalších dochází v infrastruktuře k úpravě konfigurační a schéma partition. Dále pak také k vytvoření nových objektů skupin a ACL nad objekty v Active Directory. V kombinaci s funkcí AdminSDHolder to však může způsobit problémy.
Jedním ze scénářů může být právě výše uvedená situace kdy máte správce service desku, kteří mají kompetenci na vytváření účtů v Active Directory a tudíž jsou členy skupiny Account Operators (Protected Group), danému uživateli vytvoříte mailbox na novém Exchange serveru a jelikož daný administrátor drží pohotovosti musí si připojit email i do služebního a chráněného telefonu (třeba pomocí EMS nebo Intune).
Při přidání mailboxu se na tento účet v Active Directory nastaví nová oprávnění, jež jsou zděděna z nadřazeného OU nebo CN a také při registraci telefonu dojde k jeho zaznamenání do Active Directory partition, kde se uchovává informace o registraci zařízení do Exchange a tato registrace se používá pro Wipe telefonu, zjištění IMEI, výrobce, verze OS a také ActiveSync.
Co se stane ve chvíli, kdy zjistí AdminSDHolder, že došlo ke změně? Provede přepsání těchto ACL nad daným objektem a uživateli přestane primárně fungovat ActiveSync zařízení (přístup pomocí MS Outlook funguje, OWA funguje) a vy budete velmi těžko hledat co se stalo s daným účtem.
Řešením může být znovu zapnutí dědění nad daným objektem, čímž dojde na definovanou dobu k funkčnosti služeb ActiveSync v rámci mobilního zařízení (můžete to také vyřešit připojením schránky přes IMAP nebo POP3, ale to mi přijde trošku nešťastné řešení). Aby jste problém vyřešili globálně a trvale, rozhodnete se, že daného uživatele odeberete ze skupiny Account Operators (pokud tedy nevytvoříte exclude dané skupiny modifikací dcHeuristic), ale ani to váš problém nevyřeší.
Zde právě nastává ta chyba a to, že v některých verzích Active Directory nedojde k automatickému smazání objektu z chránění pomocí AdminSDHolder a je potřeba toto vyčistění provést ručním způsobem a to třeba pomocí skriptu uvolněného společností Microsoft v roce 2003 (i když jsem daný skript použil již několikrát, doporučuji testovat v neprodukčním prostředí) – viz. na konci příspěvku. Také bych doporučil pomocí ADSI Edit vymazat dané zařízení z configuration partition Active Directory a provést znovu jeho registraci, čímž zajistíte, že nedošlo k rozpadu oprávnění ještě nad tímto OU.
Pokud smažete celé OU umístěné pod daným objektem, nedojde k narušení (wipe nebo cokoliv jiného) daných zařízení, ale bude nutno nastavení telefonu nebo tabletu nastavit znovu.
VBS Script z Microsoftu
[gistpen id=“183″]
Tak a to je myslím pro dnešek vše….. 🙂