410 likes | 677 Views
Erfahrungen eines Directory Services-Experten mit Sicherheit und Delegation { im Active Directory }. Ulf B. Simon-Weidner Senior Consultant , Trainer, Autor. Agenda. Grundlagen zum Windows Sicherheitsmodell Werkzeuge und Scripting Entwerfen und Implementieren Rollenbasierter Administration
E N D
Erfahrungen eines Directory Services-Experten mit Sicherheit und Delegation{im Active Directory} Ulf B. Simon-Weidner Senior Consultant , Trainer, Autor
Agenda • Grundlagen zum Windows Sicherheitsmodell • Werkzeuge und Scripting • Entwerfen und Implementieren Rollenbasierter Administration • Windows Server 2008
Wie funktioniert Delegation? Benutzer-Token vs. Security Descriptor – darf ich vorstellen: Bei der Anmeldung erhält der Benutzer seinen Token (Liste von SIDs des Benutzer, SidHistory, Gruppen, ...): whoami /all Das System vergleicht den Token mit der DACL/SACL um Zugriff zu gewähren, verweigern oder überwachen
defaultSecurityDescriptor der Object-Klasse im Schema Vererbte Rechte des übergeordneten Containers Container Neuer Benutzer Wo kommen die Berechtigungen her? Explizite Rechte Schema
Unsere neuen Freunde Windows Security auf Ressorcen: NTSecurity-Descriptor DACL SACL ACE
Besitzer des Objektes(SID) PrimäreGruppe des Besitzers (SID) Revision: 1 Control: Flags: SE_DACL_PRESENT SE_DACL_PROTECTED SE_SACL_PRESENT SE_SACL_PROTECTED Protected = Doesn‘t allow inheritance NTSecurityDescriptor Owner (SID) Owner (SID) Primary Group (SID) Primary Group (SID) Revision Revision Control Control Discretionary Access Control List (DACL) SystemAccess Control List (SACL)
Discretionary Access Control List (DACL) kontrolliert Zugriffsberechtigungen System Access Control List (SACL) kontrolliert Überwachungen ACECount: Anzahl der ACEs ACLRevision: 1 List of ACEs DACL / SACL ACECount ACECount ACLRevision ACLRevision Access Control Entries (ACE)
Trustee: Für wen ist die ACE? (SID) ACEType: Allow oder Deny ACE ACEFlags: ACE wird vererbt auf All Objects below One Level Not to base, just inherit Was inherited SACL: Success/Failure Access Control Entry Trustee (SID) Trustee (SID) ACEType ACEType ACEFlags ACEFlags AccessMask Flags ObjectType InheritedObjectType
AccessMask: Definiert die vergebenen Rechte Delete the object Read | Modify DACL | SACL Get Ownership Generic Read | Write | Execute | All Create | Delete | List Child Read | Write Property Delete Tree List Object Control Access Access Control Entry Trustee (SID) ACEType ACEFlags AccessMask Flags ObjectType InheritedObjectType
Flags: Welche Felder existieren? ObjectType (0x1) InheritedObjectType (0x2) ObjectType: Write/Read Property oder Create/Delete Child: {Schema-Id-GUID} des Objektes/Attributes InheritedObjectType: Vererbt auf welchen Object-Typ {Schema-Id-Guid} Access Control Entry Trustee (SID) ACEType ACEFlags AccessMask Flags Flags ObjectType ObjectType InheritedObjectType InheritedObjectType
Security Descriptor Owner / Group DACL / SACL ACEs Control (SE_xACL_Protected) Erweiterte Sicherheitseinstellungen
Trustee ACE ObjectType AccessMask ACEFlags InheritedObjectType ACEType Berechtigungseinträge (ACEs)
Agenda • Grundlagen zum Windows Sicherheitsmodell • Werkzeuge und Scripting • Entwerfen und Implementieren Rollenbasierter Administration • Windows Server 2008
Agenda • Grundlagen zum Windows Sicherheitsmodell • Werkzeuge und Scripting • Entwerfen und Implementieren Rollenbasierter Administration • Windows Server 2008
Security Descriptor Definition Language (SDDL) Wird verwendet in Standardrechten des Schema: „defaultSecurityDescriptor“ des SchemaObj Eventlog Berechtigungen: HKLM\Sys\CCS\services\Eventlog\..\CustomSD Beispiel: O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;DA) Besitzer:Account Operators Gruppe:DomainAdmins DACL:Parameters(ACE1)(ACE2)..SACL:Parameters(ACE1)(ACE2).. Allow ACE (ACE-Flags) Rights: Read Property, Write Property, CreateChild, .. (ObjectType) (InheritedObjectType) Trustee (Domain Admins) Mehr Info: http://msdn.microsoft.com/library/en-us/secauthz/ security/security_descriptor_definition_language.asp
Mit GUIDs arbeiten • Um nach GUIDs zu suchen müssen sie dies in ein anderes Format umwandeln: {11223344-5566-7788-99aa-bbccddeeffgg} \44\33\22\11\66\55\88\77\99\aa\bb\cc\dd\ee\ff\gg z.B. GUID der Computerklasse: {bf967a86-0de6-11d0-a285-00aa003049e2} \86\7a\96\bf\e6\0d\d0\11\a2\85\00\aa\00\30\49\e2 Suche über LDP/Script: cn=schema,cn=configuration,dc=.. (onelevel) schemaIDGUID=\86\7a\96\bf\e6\0d\d0\11\a2\85\00\aa\00\30\49\e2
1. Joe erstellen 2. \\Fileserver\Joe$ erstellen Provisioning \\Fileserver\Joe$ Einrichten von Benutzern vs. Replikation • Beispiel: Erstellen eines Benutzers, sowie ihn auf sein Homelaufwerk berechtigen (Skript) Keine Ahnung ? Wer ist „Joe“? 3. „Joe“ auf Homelaufwerk berechtigen Ergebnis: Joe hat keinen Zugriff auf sein Homelaufwerk
1. Joe erstellen Provisioning \\Fileserver\Joe$ Einrichten von Benutzern vs. Replikation • Beispiel: Erstellen eines Benutzers, sowie ihn auf sein Homelaufwerk berechtigen (Skript) Joe: S-1-5-xx-103 ! S-1-5-xx-103: FC Wer ist „Joe“? 2. Replizieren von Joe, oder abwarten 3. \\Fileserver\Joe$ erstellen 4. „Joe“ berechtigen Ergebnis: Joe kann auf sein Homelaufwerk zugreifen,dauert aber
1. Joe erstellen Provisioning \\Fileserver\Joe$ Einrichten von Benutzern vs. Replikation • Beispiel: Erstellen eines Benutzers, sowie ihn auf sein Homelaufwerk berechtigen (Skript) z Z Z.. S-1-5-xx-103: FC Was ist Joes SID? 2. Nach Joes SID fragen 3. \\Fileserver\Joe$ erstellen 4. Joes SID Vollzugriff geben Ergebnis: Joe hat Zugriff, auch wenn er noch nicht repliziertwurde
Berechtigungen Scripten Dsacls:Ansehen oder setzen von Berechtigungen auf spezifischen Objekten DSRevoke:Anzeigen / Löschen von Berechtigungen bestimmter Benutzer SubInAcls: File, Registry, Cluster, ... ACEs VBS / VB.NET / ..Alles ist möglich ;-)
Agenda • Grundlagen zum Windows Sicherheitsmodell • Werkzeuge und Scripting • Entwerfen und Implementieren Rollenbasierter Administration • Windows Server 2008
Agenda • Grundlagen zum Windows Sicherheitsmodell • Werkzeuge und Scripting • Entwerfen und Implementieren Rollenbasierter Administration • Windows Server 2008
Delegation planen • Aufgaben definieren • Wer ist primär verantwortlich? • Wer ist auch verantwortlich? • Entwerfen der Rollen • Welche Rechte werden gebraucht? • Struktur für Berechtigungsgruppen entwerfen • Erstellen, Testen, Überprüfen
OU-Design: Delegation Gruppenrichtlinien Kontenoperatoren: CCDC & FC von Benutzern, Computern, Gruppen, InetOrgPerson Problem: CCDC & FC für Benutzer, Gruppen in MyComputers OU, Computern in MyUsers,... Create/Delete Child & Full Control on • Users • Computers • Groups • InetOrgPerson Kontenoperatoren im Kreuzfeuer
Beabsichtigt: Vollzugriff auf Benutzer, Computer, Gruppen und InetOrgPerson-Objects in den entsprechenden OUs. Lösung: Erstellen einer eigenen Gruppe und Delegation der Rechte Create/Delete Child & Full Control on • Computers Create/Delete Child & Full Control on • Groups Create/Delete Child & Full Control on • Users • InetOrgPerson Kontenoperatoren im Kreuzfeuer Erstellen und Berechtigen Sie Ihre eigene „Kontenoperatoren“-Gruppe
AdminSdHolder Ein spezieller “Prozess” der Administrative Konten schützt Läuft einmal pro Stunde (auf dem PDC-Emulator) Schützt Mitglieder der Gruppen DA, EA, SA, BA,-Operatoren (setzt und überprüft „adminCount“) Setzt die Rechte auf die des cn=AdminSdHolder,cn=System,.. zurück Achtung: Betrifft auch Rekursive Gruppenmitgliedschaften (sogar Verteilergruppen) Empfehlung: Entsprechender Entwurf der OU-Struktur Keine eingebauten Gruppen verwenden wenn nicht notwendig Mehr Infos: http://msmvps.com/blogs/ulfbsimonweidner /archive/2005/05/29/49659.aspx
Was muss ich delegieren? Active Directory Delegation Whitepaper When it moves – script it Vergleich von Objektattributen vor und nach einer Änderung: Attributänderungen: ldifde –s server –d dn –f file1.log Replizierte Attribute: repadmin /showobjmeta server dn /nocache /linked >> file1.log Geänderte Rechte: dsacls \\server\dn >> file1.log
Implementieren von Delegation • Anfangs: Script it mit DSAcls or VBS dsacls "ou=Frankfurt,ou=MyUser,dc=example,dc=com" /G example\FFM-Helpdesk:WP;lockoutTime;user /I:S dsacls "ou=Frankfurt,ou=Sitegroups,ou=MyGroups,dc=...„/G example\FFM-Helpdesk:WP;member;group /I:S • Anpassen des Delegations-Assistenten: (%windir%\inf\delegwiz.inf) [template14] AppliesToClasses=domainDNS,organizationalUnit,container Description = "Site Helpdesk" ObjectTypes = user,group [template14.user] lockoutTime=WP [template14.group] member=WP
Admintools - Empfehlungen Testen Sie die Administrativen Benutzeroberflächen ob sie mit Ihren delegierten Rollen arbeiten können Wenn Sie Admin-Interfaces programmieren, testen Sie die Berechtigungen Mit dem Objekt verbinden, dann allowedAttributesEffective und/oder allowedChildClassesEffective überprüfen
Reporten / Überwachen von Berechtigungen Wie kann ich einen Report erhalten: Wo hat ein Benutzer Berechtigungen? Wer hat Rechte auf einer bestimmten OU? Wo sind welche Rechte delegiert worden? Überwachen von Berechtigungen? Benutzen Sie ein Tool / lassen Sie regelmäßig Reports laufen Überwachung einschalten und auf Event 566 der Kategorie Directory Service Access überprüfen Scripten
Agenda • Grundlagen zum Windows Sicherheitsmodell • Werkzeuge und Scripting • Entwerfen und Implementieren Rollenbasierter Administration • Windows Server 2008
Agenda • Grundlagen zum Windows Sicherheitsmodell • Werkzeuge und Scripting • Entwerfen und Implementieren Rollenbasierter Administration • Windows Server 2008
Eigene Ansichten des Eventlogs möglich Weiterleiten und zentrales Sammeln von bestimmten Ereignissen Aufgaben können durch Events ausgelöst werden Mehr Details in Audit-Logs Z.B. Attributänderungen Überwachungsrichtlinien fürActive Directory auditpol /get /category:“DS Access“ auditpol /set /subcategory:“Directory Service Changes“
Read Only Domain Controller (RODC) Festlegen wessen Passworte in dem Standort repliziert werden Keine „kritischen Passwörter“ in unsichere Standorte replizieren Delegieren der lokalenAdministration vonRODCs
Verbesserte / Neue Kommandozeilentools DSACLS.exe Hinzufügen / Entfernen von ACEs Verbesserte Fehlerbehandlung um fehlerhafte ACLs darzustellen SIDs anstelle von Namen zugelassen ICACLS.exe Hinzufügen / Entfernen von SIDs in NTFS Sichern / Rücksichern von ACEs in eine Datei Behält korrekte Reihenfolge der ACEs SIDs anstelle von Namen zugelassen
Partner auf dem Launch 2008 Europas führender herstellerübergreifender Dienstleister für Informationstechnologie • Windows Server 2008 im Haus implementiert • Kundenprojekte zu WS2k8 seit Anfang 2007 • Zahlreiche Referenzen • Große Erfahrung bei Migrationsprojekten Halle 5.1, Stand 6.2 Das Magazin für professionelle System- und Netzwerkadministration • Mai / Juni 2007: Vorschau auf Windows Server 2008 • November 2007 bis Januar 2008: Serie zu Windows Server 2008 • März / April 2008:Active Directory Wiederherstellung mit Windows Server 2008 • Halle 5.1, Stand 6.18
Windows Server 2008Ressourcen • Windows Server 2008 Tech Centerhttp://www.microsoft.com/germany/technet/prodtechnol/windowsserver/2008/default.mspx • Windows Server 2008 Webcasts:http://www.microsoft.com/germany/technet/webcasts/windowsserver2008.mspx • Windows Server 2008 Produktseite:http://www.microsoft.com/germany/windowsserver2008/default.mspx • Microsoft Virtualization:http://www.microsoft.com/virtualization/default.mspx
Ressourcen Security Descriptor in der MSDN-Library Platform SDK Active Directory Delegation Whitepaper: Best Practices for Delegating Active Directory Administrationhttp://www.microsoft.com/downloads/details.aspx?FamilyID=631747a3-79e1-48fa-9730-dae7c0a1d6d3 Best Practices for Delegating Active Directory Administration Appendiceshttp://www.microsoft.com/downloads/details.aspx?FamilyID=29dbae88-a216-45f9-9739-cb1fb22a0642 Mein Blog:www.msmvps.com/ulfbsimonweidner Meine WebSite:www.windowsserverfaq.deScripting Example at FAQ AD Bugs Computer ACEs
AsktheExperts Wir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.