Windows Server 2008 a doménový řadič jen pro čtení

Active directory v serveru 2008 nabídne řadu změn. Jedna z novinek je doménový řadič držící kopii doménové databáze AD určenou jen pro čtení. V angličtině jde o pojmenování Read Only Domain Controller (RODC), odteď budu v tomto článku používat tuto zkratku.
Doménový řadič RODC je určen pro umístění do prostředí s malou fyzickou bezpečností, například do pobočkových sítí. Databáze Active Directory na serveru RODC neobsahuje hashe hesel uživatelů a standardně se neukládají do mezipaměti (cache) uživatelské ověření, čímž se eliminuje offline útok hrubou silou se snahou o získání uživatelského hesla.
Navíc, je možné definovat uživatele s právy správce daného RODC bez udělení rozšířených práv v doméně a pprovozovat aplikace vyžadující doménový řadič. Jde tedy hlavně a primárně o bezpečnost.

Replikace doménové databáze
Replikace doménové databáze AD probíhá jen jednosměrně, směrem ze zapisovatelného, klasického doménového řadiče na řadič RODC. Znamená to, že na RODC neprovedete žádné změny.
RODC  řadič se ale jinak, hlavně směrem ke klientům tváří jako klasický doménový řadič. V DNS databázi existují SRV záznamy o doménovém řadiči v dané síti a prakticky nelze nepoznat rozdíl. Požadavky na ověření, či registrace DNS záznamů nejsou zapsány na řadiči RODC , ale přeposílány na doménový řadič držící „plnou“ a zapisovatelnou databázi AD. Doménový řadič v režimu RODC je schopen zastat roli AD DC, DNS, GC.

RODC-read only 
databáze AD jen pro čtení

Ověření uživatelů
Jak již bylo zmíněno, RODC standardně nedrží žádné hash uživatelských účtů a není tedy schopen sám ověřit uživatele. Požadavky na změny a ověření jsou přesměrovány na „plný“ doménový řadič. Nicméně, je možné definovat skupiny uživatelů, pro které se hesla na RODC přeci jen v rámci replikace kopírují a RODC je schopen je ověřit.  

Lokální administrátor doménového řadiče? Ano!
Pro instalaci RODC řadiče je třeba předem vytvořit účet počítače v Active Directory, či provést instalaci v kontextu doménového správce. Právě v průběhu vytváření účtu pro RODC je možné definovat definovat uživatele, či skupinu uživatelů s právy správce pro daný RODC. Pracovník na pobočce organizace tak může zastávat administrátora doménového řadiče bez toho aniž by mohl spravovat jiné doménové řadiče, či měl rozšířená práva v doméně. To zní dobře, že? Pro každý RODC je v doméně vytvořen zvláštní uživatelský účet, který je použit při podepisování Kerberos TGT ticketů vydaných lokálním KDC. Lokálně vydaný ticket tak není možné použít pro ověření na jiném řadiči Active Directory a získat oprávnění správce.

RODC-krbtgt

Na tomto obrázku je vidět krbtgt uživatelský účet vygenerový pro můj testovací RODC server.

RODC-local admins
 
Definice skupiny uživatelů pro správu RODC v průběhu vytváření účtu řadiče.

Co je třeba
Novinka potřebuje rozšíření stávající schématu AD pomocí adprep /rodcprep příkazu, a PDC emulátor role doménového řadiče musí běžet na serveru Windows Server 2008. Navíc, úroveň doménové funkčnosti (domain functional level) musí být windows server 2003, stejný požadavek platí pro úroveň celého AD lesa.

Instalace RODC
Instalaci lze poměrně hezky zautomatizovat, a ideální scénář bude vypadat asi takto:

  • Doménový správce předvytvoří v doméně účet počítače pro RODC a specifikuje uživatele, kteří mohou spravovat tento RODC
  • Připravený image serveru 2008 je doručen na pobočku i s odpovědním souborem pro instalaci RODC, pro instalaci RODC je použito ověření lokálního správce RODC
  • Odpovědní soubor definuje potřebné parametry pro instalaci RODC a navázání na předem vytvořený účet RODC

Pro představu, takto vypadá odpovědní soubor pro instalaci RODC který jsem použil ve svém testovacím prostředí:

; příkazový řádek:
;   dcpromo.exe /CreateDCAccount /ReplicaDomainDNSName:liptakov.local /unattend:C:\Users\Administrator\Desktop\answerDC.txt
;
[DCInstall]
; Read-Only Replica DC promotion (stage 1)
ReplicaDomainDNSName=liptakov.local
TargetDcName=RODC-Brno
; RODC Password Replication Policy
OnDemandDenied="BUILTIN\Administrators"
OnDemandDenied="BUILTIN\Server Operators"
OnDemandDenied="BUILTIN\Backup Operators"
OnDemandDenied="BUILTIN\Account Operators"
OnDemandDenied="LIPTAKOV\Denied RODC Password Replication Group"
OnDemandAllowed="LIPTAKOV\Allowed RODC Password Replication Group"
ServerAdmin="LIPTAKOV\RODCadmins_serverRODC"
SiteName=Default-First-Site-Name
InstallDNS=Yes
ConfirmGc=Yes
ReplicationSourceDC=LHBETA3.liptakov.local

Všimněte si parametru OnDemandAllowed, právě tento určuje uživatelské účty, pro které bude RODC ukládat hesla do mezipaměti. V tomto případě jde o standardně vytvořenou doménovou skupinu.
Parametr ServerAdmin pak definuje výše zmíněné uživatele s oprávněním spravovat tento RODC server.

Závěr
Doménový řadič v režimu RODC je zaměřen hlavně na eliminaci rizik a bezpečnost. Delegace oprávnění správce na běžného uživatele je nepochybně bezvadná věc. Daní za to vše je častá komunikace směrem k jinému doménovému řadiči (např.přes WAN linku). Tak jako tak RODC je krok správným směrem a další podnět pro úvahy nad designem vaší infrastruktury.

hezký den
Roman Černovský