400 likes | 578 Views
Katalog w domu i zagrodzie. Tomasz Onyszko. Senior Consultant | Microsoft. O mnie. … przy klawiaturze od dobrych 18 lat, z tego ostatnie 9 zawodowo … grafomańsko prowadzę blog W2K.PL (jak i angielską wersję na stronach DirTeam.Com )
E N D
Katalog w domu i zagrodzie Tomasz Onyszko Senior Consultant | Microsoft
O mnie ... • … przy klawiaturze od dobrych 18 lat, z tego ostatnie 9 zawodowo • … grafomańsko prowadzę blog W2K.PL (jak i angielską wersję na stronach DirTeam.Com) • … udzielam się czasami na wss.pl (5.5k+ ) i grupach Usenet • … w wolnychodpowyższegochwilachpracuję w Microsoft Consulting Services jako Senior Consultant (Identity & Access Management)
Agenda • Rzeczy przydatne i interesujące • Mythb(AD)sters
Podsłuchiwanie LDAP • Analiza protokołu LDAP • Częste działanie przy diagnostyce problemów • Zapewnia szybka diagnostykę większości spotykanych problemów • W zasadzie proste do realizacji • Po stronie klienta • Po stronie DC • Najlepszym i najpewniejszym sposobem jest zawsze analiza ruchu sieciowego !!!
Klient • ADInsight • Narzędzie Sysinternals • „Wstrzykuje” się w bibliotekę LDAP • Tylko zapytania realizowana przez systemową bibliotekę LDAP
Klient • Mechanizmy systemowe (Vista) • Wbudowane mechanizmy śledzenia zdarzeń • Wpis w rejestrze: • Uruchomienie śledzenia • Zatrzymanie śledzenia • Konwersja do CSV HKLM\System\CurrentControlSet\Services\ldap\tracing\<nazwa śledzonego programu> Tracelog.exe -start ldap -guid #099614a5-5dd7-4788-8bc9-e29f43db28fc -f ldap.etl -flag x1FFFDFF3 tracelog.exe -stop ldap tracerpt.exe ldap.etl -o ldap.csv -of CSV
DC • Logowanie zapytań • Konfiugrowane poprzez wpis w rejestrze • Zapytania logowane są w ramach dziennika zdarzeń • Liczba logowanych zapytań kontrolowana przez: • Poziom „drogich” zapytań • Poziom „nieefektywnych” zapytań HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\15 Field Engineering HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\Expensive Search Results Threshold HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\Inefficient Search Results Threshold
DC • Server Performance Advisory • Dodatek dla Windows Server 2003 • Performance and Reliability Monitor • Wbudowany w Windows Server 2008 • Oba pozwalają na śledzenia zapytań LDAP
Operational attributes • „Modyfikacje” obiektu rootDSEkatalogu • Nie modyfikują żadnych danych • Polecenia dla katalogu do wykonania różnych operacji • Wykonywane w odniesieniu do poszczególnych DC • Pełny opis w ramach MS-ADTS • Przykłady: • doOnlineDefrag • becomePdc • rODCPurgeAccount
A gdyby tak zrzucić katalog ... • dumpDatabase • Efektowny lecz mało użyteczny • Wykonuje zrzut katalogu do pliku tekstowego • Pozwala na określenie listy atrybutów • Nie pozwala na zrzut haseł • Format czytelny .. acz kompletnie nie udokumentowany • Przedstawia prostą tabelę z zawartością katalogu • W dużej mierze tak DIT wygląda w środku • Przy użyciu ADMOD ADMOD -h <DC> -sc dbb:”lista atrybutów”
... to otrzymamy • DNT – distinguish name tag (primary key bazy DIT) • PDNT – DNT rodzica (tak tworzy się DN) • CNT – licznik referencji • NCDNT – DNT partycji • OBJ – znacznik logiczny obiektu (true \ false) • RDNTyp – typ obiektu
Infrastructure Master • Rola FSMO zdefiniowana dla każdej partycji katalogu • Włączając w to partycje aplikacyjne !!! • Wymagana ze względu na fizyczną implementacje katalogu • W środowisku złożonym z wielu domen • Zarządza relacjami między obiektami
Linked attributes • Linked attributes • Zdefiniowane na poziomie schematu • Pary atrybutów identytykowane poprzez LinkID: • Foward Link • Oznaczany przez wartość parzystą w LinkID • Niezależny od back link • Back Link • Oznaczany przez wartość <LinkID forward link>+1 • Nie istnieje bez Forward Link • Relacje automatycznie utrzymywane przez katalog
Fizyka łączy • Obiekty w ramach bazy DIT reprezentowane są przez rekordy identyfikowane przez DNT • DNT są lokalne dla każdego DC. • Obiekty przechowywane sa w tabeli obiektów • Linki w tabeli linków
Problem !! • Jak pokazać relację pomiędzy obiektami z różnych domen ??? Infrastructure Master
Rola IM • Problem nie występuje w przypadku GC • GC w lokalnej bazie posiada wszystkie obiekty z lasu • W przypadku gdy DC nie jest GC • Wymagany jest Infrastruture Master • IM tworzy lokalną reprezentację obiektu w bazie danych DC PHANTOM
Jak to działa • AD odzworowuje relacje pomiędzy obiektami przez wpisy w bazie danych • IM odwzorowuje obcy obiekt poprzez lokalny wpis w bazie danych – phantom • Phantom to fizyczny wpis w bazie danych • Phantom posiada DNT !!! • Phantom zawiera tylko • objectGUID • objectSID • DN
Rozwiązanie problemu • Wszystkie DC promować do roli GC • GC posiadają informację o wszystkich obiektach w lesie
IM a partycje aplikacyjne • Partycja aplikacyjne • Domyślne dwie patycje ForestDNSZones, DomainDNSZones • Może również zawierać obiekty z innych partycji • Dlatego ... Posiada własną rolę IM FSMO
Schema.ini • W trakcie promocji DC • %systemroot%\system32\Schema.ini jest używany do inicjalizacji bazy danych DIT • Uzupełnia wzorcowy plik bazy danych %systemroot%\system32\ntds.dit • Możliwe jest modyfikowanie początkowych opcji DC • Do testów w laboratorium
userAccountControl • userAccountControl • Atrybut, w którym poszczególne bity zarządzają różnymi opcjami związanymi z obiektem użytkownika (KB 305144) • Problem -> delegacja uprawnień • Nie ma możliwości delegacji uprawnień do poszczególnych bitów • Delegacja uprawnień np. do odblokowania konta, powoduje delegacje uprawnień do wszystkich opcji ... • ... w tym zarządzania ustawieniami dla opcji haseł
userAccountControl • Rozwiązanie: • Trzy uprawnienia rozszerzone: • Enable per user reversible encryption • Unexpire password • Update password not required bit • Wada: • Konfigurowane dla całej partycji • Delegacja: • Wydelegowanie uprawnień do userAccountControl • Odebranie uprawnień do zarządzania ustawieniami haseł (patrz powyżej) dsacls <NC HEAD> /I:T /D "<GROUP>:CA;Unexpire Password" dsacls <NC HEAD> /I:T /D "<GROUP>:CA;Update Password Not Required Bit" dsacls <NC HEAD> /I:T /D "<GROUP>:CA;Enable Per User Reversibly Encrypted Password"
AD Snapshots • Nie jest to killer feature ale może być przydatne • Snapshot - „zrzut” zawartości katalogu na dany punkt w czasie • Nie jest to pełny backup, i nie może go zastąpić • Możliwe jest zamontowanie „zrzutu” jako równoległej instancji katalogu • Ograniczenia: • Snapshot obejmuje wszystkie elementy związane z AD • Dane pozostają na oryginalnych wolumenach • Nie można wykonać snapshot na dysk zewnętrzny • Maksymalnie 512 „zrzutów” na jednym DC • Brak UI
Snapshot - reanimacja • Kasujemy konto Dyrektora – niedobrze • Teraz: • Panika • Odtwarzamy backup (o ile go mamy ) • DSRM • Ntdsutil authoritative restore subtree <DN> • Czas: ok. 30 – 60 min. • # OS restart: 2 • A gdy mamy snapshot: • Montujemy snapshot • Odtwarzamy obiekt z nagrobka (tombstone) • Przywracamy wszystkie atrybuty • Czas: ok. 5 min • # OS restart: 0
Reanimacja - How to ... • Jak to zrobić: • Wykonać snapshot -> ntdsutil snapshot create • Zamonotować snapshot -> ntdsutil snapshot mount • Uruchomić instancję LDAP -> dsamain.exe • Odtworzenie danych: • Odzyskanie „nagrobka”: admod.exe, ldp.exe, adrestore.exe • Odzyskanie danych z „migawki”: LDIFDE.EXE, VBScript, PowerShell • Import danych do katalogu: LDIFDE.EXE, VBScript, PowerShell • A gdyby tak prościej • 1Identity Snapshot Recovery Tool (http://www.one-identity.net/tools/snapshot/)
RODC i problem • RODC • Kopia tylko do odczytu katalogu ... Ale tak nie do końca • Może uaktualniać lokalnie niektóre atrybutu • Przeważnie powiązane z SAM i nie replikowane • Chociażby ... badPwdCount • Mówiąc po ludzku ... Account lockout
Gdy wszystko działa poprawnie ... Logowanie Writable DC RODC badPwdCount=1 badPwdCount=2 badPwdCount=3 badPwdCount=1 badPwdCount=2 badPwdCount=3
A gdy WAN nie działa Logowanie Writable DC RODC badPwdCount=1 badPwdCount=2 badPwdCount=3 badPwdCount=0 badPwdCount=0
Oceń moją sesję • Ankieta dostępnana stronie www.mts2008.pl • Dodatkowe komentarze mile widziane: • E-mail: t.onyszko@w2k.pl • Blog: http://www.w2k.pl