Zabezpečená adresářová služba
Služba Active Directory plní, počínaje verzí Windows 2000, zcela zásadní roli při správě sítě. Je domovem všech objektů, jež reprezentují skutečné, fyzické entity – tedy třeba uživatele či počítače s operačním systémem Windows. Služba je svrchovaným správcem účtů a skupin, o nichž jsme dosti důkladně hovořili na počátku této naší série – je třeba si však uvědomit, že nyní hovoříme o účtech uživatelů a počítačů s působností v celé síti, v níž je možné tyto virtuální identity využívat. Active Directory je tedy především databází účtů a jejím hlavním úkolem je tyto objekty nejen „provozovat“, ale důsledně k nim také řídit přístup. Tato funkce je nasnadě – řada objektů, reprezentujících třeba skupiny s desítkami či stovkami členů, jistě nemůže být vystavena napospas komukoliv.
Logická struktura Active Directory je založena na standardu, označovaném jako LDAP, a pomocí protokolu stejného jména lze se službou a databází pracovat. V zásadě se může k databázi připojit každý, a právě nastavení seznamů řízení přístupu (ACL) na jednotlivých objektech rozhodně o tom, kdo bude moci provádět změny různé důležitosti. Na úvod zmiňme ještě skutečnost, že po stránce zabezpečení objektů patří Active Directory k jedné z nejlepších implementací LDAPu vůbec, přestože zdaleka není jedinou dostupnou volbou.
Strom jako každý jiný
Principy zabezpečení adresářové služby Active Directory jsou v mnohém podobné či shodné s jinými strukturami, s nimiž jsme se již seznámili. Struktura adresářové služby je hierarchická (a připomíná tak třeba souborový systém), což dává dobrý důvod k využití velmi užitečného principu dědičnosti oprávnění, který jev Active Directory důsledně využíván. Podobně jako na adresářovém stromu, i zde tedy můžeme počítat s výhodu nastavení oprávnění na vyšších úrovních hierarchie a jejich „propagací“ k hlouběji zanořeným částem strumu.
Databáze se dále vyznačuje velmi jemným rozpracováním seznamů řízení přístupu (ACL) na dané objekty, což se může jevit jako zbraň dvojsečná. Tato koncepce nám dovoluje řídit přístup k objektům velmi jemně, což nejlépe objasní příklad: určitý uživatel (či lépe skupina) může mít právo třeba jen na jedinou operaci, která je s danými objekty spojena. Kupříkladu změna hesla může být povolena skupině uživatelů, která nebude mít žádná jiná, potenciálně „nebezpečná“ oprávnění, takže bude moci dělat svou práci (měnit heslo na požádání), ale žádné účty nezničí, nesmaže atd. Jde tedy o zásadně jiný koncept, než pouhé povolení správy na úrovni celého objektu (můžu s účtem dělat cokoliv, nebo jej jenom prohlížet). Na druhou stranu, takto široká škála oprávněné může při složitějším použití vnést do adresářové služby velký zmatek a v nedokumentovaném prostředí je pak snadné vytvořit naprosté bludiště. Se zmíněným jemným rozčleněním oprávnění souvisí i jejich hrubé rozdělení na zhruba dvě skupiny: jedna z nich zahrnuje oprávnění k určitým „akcím“, jako je třeba on změna hesla. Druhá pak obsahuje atributy (vlastnosti) účtů, u nich je možno provádět přímý zápis či přepis nastavené hodnoty. Typický uživatel má možnost změnit třeba své telefonní číslo, nemůže však běžně zapisovat jiná kritická data, která řídí chování jeho účtu.
Další důležitý princip, který nesmíme opomenout, se uplatňuje při tvorbě nových objektů. I v adresářové službě existuje oprávnění pro tvůrce objektů (Creator/Owner), jehož důsledky je třeba mít na paměti při zakládání nových účtů pro uživatele, počítače atd. Dosti často nám není jedno, kdo bude mít k založeným účtům plná práva na jejich následnou správu (či přinejmenším bude moci přidělit další oprávnění).
Objekt Active Directory zblízka
Bližší pohled na objekt adresářové služby, třeba účet uživatele, nám názorně ukáže výše zmíněné vlastnosti. K průzkumu můžeme využít tradiční grafické rozhraní Active Directory Users and Computers, které nabízí pohled na ACL jednotlivých objektů v dosti podobné formě, jako známe třeba z již důkladně popsaného souborového systému. Podrobné „ohledání“ odhaluje především širokou škálu dostupných oprávnění, před jejichž úpravou je dobré vše důsledně rozvrhnout, především s ohledem na možnosti využití dědičnosti.
Základní sada oprávnění je – podobně jako třeba u souborů – navržena jako hrubá škála pro běžné situace. Vidíme tak běžné úrovně přístupu jako Read (ke čtení), Write (k zápisu) či Full Control (plné ovládání), ale také specifické řízení pomocí práv jako Read group membership (čtení členství ve skupinách). Přehled „jemných“ oprávnění, tedy základních kamenů, je pak velmi podrobný. Jeho využití se plně spojeno s již umíněným principem dědičnosti – bez možnosti jemně nastavená práva dědit je jejich využití jen těžko představitelné.
Active Directory obsahuje řadu různorodých objektů, a proto je třeba mít na paměti, že také odpovídající položky v ACL budou někdy dávat smysl jen v určitém kontextu. Kupříkladu práva Read Members a Write Members mají svůj význam zjevně u objektu typu skupina a v mnoha jiných situacích nedávají žádný smysl. Tím se samozřejmě škála možných nastavení dále zvětšuje a klade vyšší nároky na opravdu koncepční přístup. V tuto chvíli nemůžeme opomenout alespoň jeden další objekt, jehož ACL stojí za úvahu. Chování celé sítě může výrazně ovlivnit objekt Group Policy, který je vázán na určitou část hierarchie adresářové služby. Tento mocný prostředek může být účinně řízen právě nastavením ACL a tím i omezením jeho působnosti.
V předchozích odstavcích jsme naznačili, že šíře možností nastavení zabezpečení objektů může vést ke značně nepřehledné správě. Máme však k dispozici přinejmenším jeden prostředek, který situaci ulehčuje – průvodce tzv. delegováním, tedy svěřením práv na určitou částí hierarchie určeným správcům (či lépe skupinám). Tato vymoženost je vlastně přehlednou grafickou formou přidělení práv v určité úrovni databázového stromu s tím, že další již zařídí dědičnost – je vhodné ji využít ve chvíli, kdy jsme pomyslně rozvrhli kompetence a chceme si přidělení práv usnadnit.
Zabydlené aplikace
Tvůrci Windows a Active Directory se od počátku existence této adresářové služby zaměřili také na její spolupráci s dalšími službami a aplikacemi. Hlavní myšlenka tohoto soužití je v zásadě prostá – adresářová služba řídí prostřednictvím příslušných objektů činnost různých dalších služeb, a hlavně jim poskytuje mechanismus řízení přístupů pomocí ACL právě na těchto objektech. Propůjčuje tak vlastně své služby v pravém slova smyslu, a nabízí tím dobrý model pro správu i v rozsáhlém síťovém prostředí.
Aplikace MS Exchange od verze 2000 je pěknou ukázkou postupného vzájemného „prorůstání“ služby Active Directory a samotných aplikačních nastavení. V první řadě se neustále zvětšují objekty uživatelských účtů, mezi jejichž atributy přibývá řada nastavení vztahujících se právě ke službě Exchange. S tím také roste možnost kontrolovat přístup na nastavení právě těchto, pro aplikaci specifických hodnot. V souvislosti se službami Exchange se však také objevila některá zcela nová „akční“ oprávnění, jež by jinak nedávala smyslu – dobrým příkladem je oprávnění Send As („Zaslat jako“, myšleno zaslat jako někdo), dovolující řídit odesílání zpráv pomocí služby Exchange s identitou někoho jiného v roli odesílatele. Zcela jiná sada oprávnění je pak spojena se samotnou poštovní schránkou – tato kolekce je uložena také v adresářové službě, avšak je od ACL na objektu uživatelského účtu oddělena a pracuje se s ní v samostatném režimu. Také tato práva jsou vesměs dosti výmluvná – třeba u oprávnění Read Mailbox asi nezaváháme nad jeho smyslem.
Certifikační služby jsou dalším pěkným příkladem toho, k jak hluboké symbióze může dojít mezi adresářovou službou a konfigurací aplikace. Tvůrci technologie PKI (certifikačních služeb) na bázi Windows se rozhodli zavést mechanismus tzv. šablon certifikátů, což jsou objekty, které zcela úplně „bydlí“ v databázi Active Directory. Jejich role je naprosto zásadní – dle jejich nastavení může adresářová služba ve spolupráci se službou certifikační autority i automaticky vydávat certifikáty příjemcům (uživatelé, účty počítačů), a právě zde hraje ACL na daném objektu klíčovou roli. Oprávnění totiž rozhodují o tom, kdo certifikát může obdržet, a kdo nikoliv, takže celé řízení vlastně podléhá nastavení ACL na příslušné šabloně-objektu Active Directory.
Uvedené příklady dobře naznačují celkovou koncepci, k níž tvůrci Active Directory tíhnou: adresářová služba a její objekty – ve spojení s jejich ACL – jsou středobodem řízení přístupu ke klíčovým službám celé sítě, která je na bázi Active Directory vystavěna. Nastavení ACL na objektech a správné dědění jejich nastavení je tedy zcela zásadním prvkem správy takové sítě.
A příště
Adresářová služba Active Directory představuje svým způsobem vyvrcholení použití technologie ACL – řízení přístupu prostřednictvím seznamů oprávněných či vyloučených účtů. Svázanost s řadou aplikací pak tento princip povyšuje na klíčový mechanismus správy.
Plná verze tohoto článku vyšla v tištěném SecurityWorldu 4/2009.