aby całkowicie odblokować tę sekcję, musisz się zalogować
delegacja Active Directory (AD) jest kluczową częścią infrastruktury IT wielu organizacji. Delegując administrację, możesz przyznać użytkownikom lub grupom tylko te uprawnienia, których potrzebują, bez dodawania użytkowników do grup uprzywilejowanych (np. Administratorzy domeny, Operatorzy kont). Najprostszym sposobem wykonania delegacji jest użycie Kreatora delegowania kontroli w przystawce Microsoft Management Console (MMC) Użytkownicy i komputery usługi Active Directory.
chociaż Kreator delegowania uprawnień umożliwia łatwe delegowanie uprawnień, nie ma odpowiedniego kreatora do usuwania przekazanych uprawnień. Ktoś z Microsoftu musiał zauważyć tę wadę i stworzył program wiersza poleceń o nazwie Dsrevoke.exe, który może usunąć wpisy uprawnień dodane przez kreatora delegowania kontroli.
jednak Dsrevoke.program exe ma dwa ważne ograniczenia techniczne, które są udokumentowane w artykule Microsoft ” podczas korzystania z narzędzia wiersza poleceń Dsrevoke do zgłaszania uprawnień dla wszystkich jednostek organizacyjnych w domenie opartej na systemie Windows Server 2003, narzędzie może nie zwrócić wszystkich wpisów kontroli dostępu.”Te ograniczenia są:
- Dsrevoke.exe może znaleźć tylko do 1,000 Ou w jednym wyszukiwaniu. Sugerowanym obejściem tego ograniczenia jest rozpoczęcie wyszukiwania programu w głębiej zagnieżdżonej jednostce organizacyjnej (OU) w celu zmniejszenia liczby wyników.
- Dsrevoke.exe nie powiedzie się, jeśli jakiekolwiek ou zawierają znak ukośnika (/) w swoich nazwach. Nie ma obejścia tego ograniczenia poza zmianą nazwy obrażających ou.
ze względów organizacyjnych zmiana nazwy Ou w celu usunięcia znaku ukośnika zwykle nie wchodzi w grę. Poza tym Ukośnik jest poprawnym znakiem w nazwie OU, a Dsrevoke.exe powinien dziaĹ 'aÄ ‡ bez wzglÄ ™ du na to, czy OU zawiera ukĹ’ adnik w swojej nazwie, czy nie. Ponadto praca wokół limitu 1000 OU w moim środowisku była czasochłonna.
począwszy od najnowszych wersji systemu Windows, Dsacls.program exe zapewnia sposób usuwania uprawnień dodanych przez kreatora delegowania kontroli. Chociaż nie zawodzi, jeśli OU zawiera ukośnik w swojej nazwie, Dsacls.exe nie może wyszukiwać podkontenerów dla uprawnień takich jak dsrevoke.exe tak.
Dsrevoke.exe i Dsacls.exe może stworzyć listę uprawnień, ale wyjście jest bardzo długie i techniczne.
musimy mieć pewne podstawowe informacje o tym, co się dzieje, gdy używamy Kreatora delegowania kontroli, a także omówienie kilku podstawowych koncepcji bezpieczeństwa systemu Windows.
Po Co Delegować?
wyobraź sobie, że jesteś szefem dużej firmy z kilkoma działami: finansów, HR, sprzedaży, wyższego kierownictwa.
gdyby każdy użytkownik, który zapomniał hasła, musiał zadzwonić do działu pomocy IT, zostałbyś zawalony rozmowami.
zamiast tego możesz delegować uprawnienia kierownikowi każdego działu, aby mógł zresetować hasła swojego zespołu.
innym klasycznym przypadkiem użycia delegowania jest możliwość wysyłania e-maili jako siebie nawzajem, albo wspólnej skrzynki pocztowej, albo PA wysyłającego e-maile w imieniu swojego szefa.
daj wszystkim admina domeny?
mogłeś pomyśleć, dajmy każdemu szefowi działu uprawnienia administratora domeny, a następnie mogą zresetować hasła w razie potrzeby.
chociaż jest to technicznie prawda, będą mogli zrobić wszystko, co możesz zrobić, w tym uzyskać dostęp do danych użytkownika.
więc uważaj, aby nadać rolę administratora domeny użytkownikom spoza IT, aby obniżyć zadania administracyjne: takie podejście może prowadzić do kilku problemów.
aby zrozumieć informacje dostarczane w oknie dialogowym Zaawansowane ustawienia zabezpieczeń, musisz wiedzieć o następujących koncepcjach zabezpieczeń systemu Windows: lista kontroli dostępu (ACL), wpis kontroli dostępu (ACE), powiernik i dziedziczenie. Musisz również zrozumieć te pojęcia, aby użyć Remove-dsace. ps1.
ACL: istnieją dwa rodzaje ACL: dyskrecjonalne ACL (DACL) i systemowe ACL (SACL). DACL identyfikuje konta, które są dozwolone lub nie mają dostępu do obiektu. SACL opisuje, w jaki sposób administrator chce rejestrować próby dostępu do obiektu (np.
ACE: ACL składa się z asów. Każdy ACE identyfikuje powiernika i określa dostęp powiernika (Zezwalaj, odmawiaj lub kontroluj) do obiektu. Kreator delegowania kontroli dodaje asy do DACL kontenera reklamowego. Poprzedni rysunek pokazuje DACL dla wszystkich użytkowników OU. Na tym rysunku termin permission entry jest synonimem ACE.
Powiernik: powiernik to jednostka (użytkownik, grupa zabezpieczeń lub sesja logowania), do której odnosi się ACE. Każdy as odnosi się do jednego powiernika. Na rysunku 5, termin główny jest synonimem powiernika. Rysunek 5 pokazuje, że do grupy resetowania hasła przypisane są dwa Asy. Innymi słowy, Grupa resetowania hasła jest powiernikiem (głównym) dla tych dwóch asów.
: ACE może być stosowany bezpośrednio do obiektu lub może być dziedziczony z obiektu nadrzędnego zasobu. Na poprzednim rysunku dwa Asy dla wszystkich użytkowników, które zawierają grupę resetowania hasła jako powiernik, nie są dziedziczone z kontenera nadrzędnego (tj. odziedziczona z kolumny czyta Brak), ponieważ Kreator delegowania kontroli dodał je bezpośrednio do DACL.
dodawanie uprawnień delegowanych za pomocą Kreatora
Kreator delegowania kontroli zapewnia łatwy sposób delegowania uprawnień. Załóżmy na przykład, że chcesz, aby członkowie grupy resetowania hasła mogli resetować hasła dla użytkowników w jednostce wszystkich użytkowników w domenie reklamowej. Aby to zrobić, musisz wykonać następujące kroki:
Otwórz konsolę Użytkownicy i komputery usługi Active Directory, a następnie kliknij prawym przyciskiem myszy jednostkę wszyscy użytkownicy (lub dowolną jednostkę) i wybierz opcję deleguj kontrolę, jak pokazano na rysunku 1. Kliknij przycisk Dalej, aby przejść obok strony powitalnej kreatora.
na stronie użytkownicy lub grupy kreatora kliknij przycisk Dodaj.
w oknie dialogowym Wybierz użytkowników, komputery lub grupy wprowadź nazwę grupy (Reset hasła), kliknij Sprawdź nazwy przycisk, aby upewnić się, że nazwa grupy jest poprawna, i kliknij OK, jak pokazano na poniższym rysunku:
po upewnieniu się, że nazwa grupy jest wymieniona na stronie użytkownicy lub grupy, kliknij przycisk Dalej, Jak pokazano na poniższym rysunku:
na stronie zadania do delegowania wybierz Zresetuj hasła użytkowników i Wymuś zmianę hasła przy następnym logowaniu i kliknij Dalej, Jak pokazano na poniższym rysunku:
po kliknięciu przycisku Zakończ Kreator delegowania kontroli dodaje żądane uprawnienia do wszystkich użytkowników. Możesz wyświetlić efekty delegacji, klikając prawym przyciskiem myszy jednostkę wszyscy użytkownicy, wybierając Właściwości i wybierając kartę Zabezpieczenia. (Jeśli karta zabezpieczenia nie jest widoczna, włącz opcję Funkcje zaawansowane w menu Widok konsoli Użytkownicy i komputery usługi Active Directory.)
aby uzyskać szczegółowy widok, możesz kliknąć przycisk Zaawansowane. Poniższy rysunek pokazuje okno dialogowe Zaawansowane ustawienia zabezpieczeń.
Sprawdź uprawnienia (używając PowerShell)
teraz, gdy odkryliśmy delegację, możesz się zastanawiać, czy są jakieś delegacje, o których nie wiesz, ani od byłych pracowników, ani od złośliwych administratorów.
przygotowaliśmy krótki skrypt PowerShell, który będzie przeszukiwał każdy delegowany typ obiektu i wyświetlał dwie wspólne delegacje uprawnień, resetował hasło i wysyłał-as (Z Exchange).
oto przykładowy przebieg z domeny:
a tu kod skryptu:
###### Search common delegation targets$filter = "(|(objectClass=domain)(objectClass=organizationalUnit)(objectClass=group)(sAMAccountType=805306368)(objectCategory=Computer))" ###### Search just OUs and Groups#$filter = "(|(objectClass=organizationalUnit)(objectClass=group))"###### More filters can be found here: http://www.ldapexplorer.com/en/manual/109050000-famous-filters.htm###### Connect to DOMAINCONTROLLER using LDAP path, with USERNAME and PASSWORD#$bSearch = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DOMAINCONTROLLER/LDAP"), "USERNAME", "PASSWORD") ###### Connect to DOMAINCONTROLLER using LDAP path$bSearch = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DOMAINCONTROLLER/LDAP") $dSearch = New-Object System.DirectoryServices.DirectorySearcher($bSearch)$dSearch.SearchRoot = $bSearch$dSearch.PageSize = 1000$dSearch.Filter = $filter #comment out to look at all object types$dSearch.SearchScope = "Subtree"####### List of extended permissions available here: https://technet.microsoft.com/en-us/library/ff405676.aspx$extPerms = '00299570-246d-11d0-a768-00aa006e0529', 'ab721a54-1e2f-11d0-9819-00aa0040529b', '0'$results = @()foreach ($objResult in $dSearch.FindAll()){ $obj = $objResult.GetDirectoryEntry() Write-Host "Searching... " $obj.distinguishedName $permissions = $obj.PsBase.ObjectSecurity.GetAccessRules($true,$false,) $results += $permissions | Where-Object { $_.AccessControlType -eq 'Allow' -and ($_.ObjectType -in $extPerms) -and $_.IdentityReference -notin ('NT AUTHORITY\SELF', 'NT AUTHORITY\SYSTEM', 'S-1-5-32-548') } | Select-Object ` @{n='Object'; e={$obj.distinguishedName}}, @{n='Account'; e={$_.IdentityReference}}, @{n='Permission'; e={$_.ActiveDirectoryRights}}}$results | Out-GridView
aby korzystać z tego skryptu na własnej domenie:
- Otwórz użytkowników i komputery usługi Active Directory i przejdź do domeny (lub jednostki organizacyjnej), którą badasz.
- kliknij go prawym przyciskiem myszy i wybierz Właściwości.
- w zakładce edytor atrybutów poszukaj właściwości distinuishedname.
- wybierz go i naciśnij View, a następnie skopiuj ścieżkę LDAP. Będziesz tego potrzebował później.
- Edytuj linię 6 ($bSearch = …), zastąpienie DOMAINCONTROLLER nazwą jednej z domen DCs.
- Edytuj linię 6, zastępując LDAP ścieżką skopiowaną wcześniej.
- Zapisz skrypt i naciśnij Uruchom.
- pozwól skryptowi przeszukiwać Active Directory; postęp jest raportowany w konsoli, a po jego zakończeniu otrzymasz wyskakujące okienko z wyszczególnieniem obiektów, które mają uprawnienia do nich przekazane.