Sie haben ein Active Directory, aber eine Menge Domänenadministratoren? Sie wollen die Sicherheit...

Preview:

Citation preview

Erfahrungen eines Directory Services-Experten

mit Sicherheit und Delegation{im Active Directory}

Ulf B. Simon-WeidnerSenior Consultant , Trainer, Autor

Grundlagen zum Windows SicherheitsmodellWerkzeuge und ScriptingEntwerfen und Implementieren Rollenbasierter AdministrationWindows Server 2008

Agenda

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 /allDas System vergleicht den Token mit der DACL/SACL um Zugriff zu gewähren, verweigern oder überwachen

defaultSecurityDescriptor der Object-Klasse im Schema

Schema

Neuer Benutzer

Container

Vererbte Rechte des übergeordneten ContainersExplizite Rechte

Wo kommen die Berechtigungen her?

Unsere neuen Freunde

Windows Security auf Ressorcen:NTSecurity-DescriptorDACLSACLACE

NTSecurityDescriptor

Besitzer des Objektes (SID)Primäre Gruppe des Besitzers (SID)Revision: 1Control: Flags:

SE_DACL_PRESENTSE_DACL_PROTECTEDSE_SACL_PRESENTSE_SACL_PROTECTED

Protected = Doesn‘t allow inheritance

Owner (SID)

Primary Group (SID)

Discretionary Access Control List

(DACL)

SystemAccess Control List

(SACL)

Revision

Control

Owner (SID)

Primary Group (SID)

Revision

Control

Discretionary Access Control List (DACL) kontrolliert ZugriffsberechtigungenSystem Access Control List (SACL) kontrolliert Überwachungen

ACECount: Anzahl der ACEsACLRevision: 1List of ACEs

ACECount

ACLRevision

Access Control Entries(ACE)

ACECount

ACLRevision

DACL / SACL

Trustee: Für wen ist die ACE? (SID)ACEType: Allow oder Deny ACEACEFlags:ACE wird vererbt auf

All Objects belowOne LevelNot to base, just inheritWas inheritedSACL: Success/Failure

Trustee (SID)

ACEFlags

ACEType

AccessMask

InheritedObjectType

Flags

ObjectType

Trustee (SID)

ACEFlags

ACEType

Access Control Entry

AccessMask:Definiert die vergebenen Rechte

Delete the objectRead | Modify DACL | SACL Get OwnershipGeneric Read | Write | Execute | AllCreate | Delete | List ChildRead | Write PropertyDelete TreeList ObjectControl Access

Trustee (SID)

ACEFlags

ACEType

AccessMask

InheritedObjectType

Flags

ObjectType

Access Control Entry

Flags: Welche Felder existieren?

ObjectType (0x1)InheritedObjectType (0x2)

ObjectType:Write/Read Property oderCreate/Delete Child:{Schema-Id-GUID} des

Objektes/AttributesInheritedObjectType:Vererbt auf welchen

Object-Typ {Schema-Id-Guid}

Trustee (SID)

ACEFlags

ACEType

AccessMask

InheritedObjectType

Flags

ObjectType

InheritedObjectType

Flags

ObjectType

Access Control Entry

Administrative Interfaces

Erweiterte SicherheitseinstellungenSecurity Descriptor Owner / Group

ACEs

DACL / SACL

Control (SE_xACL_Protected)

Berechtigungseinträge (ACEs)

ACE Trustee

AccessMask

ACEType

ACEFlags

InheritedObjectType

ObjectType

Grundlagen zum Windows SicherheitsmodellWerkzeuge und ScriptingEntwerfen und Implementieren Rollenbasierter AdministrationWindows Server 2008

Agenda

Grundlagen zum Windows SicherheitsmodellWerkzeuge und ScriptingEntwerfen und Implementieren Rollenbasierter AdministrationWindows Server 2008

Agenda

Security Descriptor Definition Language (SDDL)

Wird verwendet inStandardrechten des Schema: „defaultSecurityDescriptor“ des SchemaObjEventlog Berechtigungen: HKLM\Sys\CCS\services\Eventlog\..\CustomSD

Beispiel:O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;DA)Besitzer:Account OperatorsGruppe:Domain AdminsDACL:Parameters(ACE1)(ACE2)..SACL:Parameters(ACE1)(ACE2)..

Allow ACE(ACE-Flags)Rights: Read Property, Write Property, Create Child, ..(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

Einrichten von Benutzern vs. Replikation

Beispiel: Erstellen eines Benutzers, sowie ihn auf sein Homelaufwerk berechtigen (Skript)

Provisioning

Wer ist „Joe“?

Keine Ahnung

?\\Fileserver\Joe$

2. \\Fileserver\Joe$ erstellen3. „Joe“ auf Homelaufwerk berechtigen

1. Joe erstellen

Joe

Ergebnis: Joe hat keinen Zugriff auf sein Homelaufwerk

S-1-5-xx-103: FC

Provisioning

Wer ist „Joe“?

Joe: S-1-5-xx-103

!\\Fileserver\Joe$

3. \\Fileserver\Joe$ erstellen4. „Joe“ berechtigen

Ergebnis: Joe kann auf sein Homelaufwerk zugreifen,dauert aber

2. Replizieren von Joe, oder abwarten

oe

1. Joe erstellen

Joe

Beispiel: Erstellen eines Benutzers, sowie ihn auf sein Homelaufwerk berechtigen (Skript)

Einrichten von Benutzern vs. Replikation

S-1-5-xx-103: FC

Provisioning

Was ist Joes SID?

\\Fileserver\Joe$

3. \\Fileserver\Joe$ erstellen4. Joes SID Vollzugriff geben

Ergebnis: Joe hat Zugriff, auch wenn er noch nicht repliziertwurde

2. Nach Joes SID fragen

1. Joe erstellen

Joe

Beispiel: Erstellen eines Benutzers, sowie ihn auf sein Homelaufwerk berechtigen (Skript)

z Z

Z..

Einrichten von Benutzern vs. Replikation

Berechtigungen Scripten

Dsacls:Ansehen oder setzen von Berechtigungen auf spezifischen ObjektenDSRevoke:Anzeigen / Löschen von Berechtigungen bestimmter BenutzerSubInAcls: File, Registry, Cluster, ... ACEsVBS / VB.NET / ..Alles ist möglich ;-)

Grundlagen zum Windows SicherheitsmodellWerkzeuge und ScriptingEntwerfen und Implementieren Rollenbasierter AdministrationWindows Server 2008

Agenda

Grundlagen zum Windows SicherheitsmodellWerkzeuge und ScriptingEntwerfen und Implementieren Rollenbasierter AdministrationWindows Server 2008

Agenda

Delegation planen

Aufgaben definierenWer ist primär verantwortlich?Wer ist auch verantwortlich?Entwerfen der RollenWelche Rechte werden gebraucht?Struktur für Berechtigungsgruppen entwerfenErstellen, Testen, Überprüfen

Kontenoperatoren im Kreuzfeuer

OU-Design:DelegationGruppenrichtlinien

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

Erstellen und Berechtigen Sie Ihre eigene „Kontenoperatoren“-Gruppe

Create/Delete Child & Full Control on• Computers

Create/Delete Child & Full Control on• Users• InetOrgPerson

Create/Delete Child & Full Control on• Groups

AdminSdHolder

Ein spezieller “Prozess” der Administrative Konten schütztLä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ückAchtung:

Betrifft auch Rekursive Gruppenmitgliedschaften (sogar Verteilergruppen)Empfehlung:

Entsprechender Entwurf der OU-StrukturKeine 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 itVergleich 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 VBSdsacls "ou=Frankfurt,ou=MyUser,dc=example,dc=com"

/G example\FFM-Helpdesk:WP;lockoutTime;user /I:Sdsacls "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,containerDescription = "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üfenScripten

Grundlagen zum Windows SicherheitsmodellWerkzeuge und ScriptingEntwerfen und Implementieren Rollenbasierter AdministrationWindows Server 2008

Agenda

Grundlagen zum Windows SicherheitsmodellWerkzeuge und ScriptingEntwerfen und Implementieren Rollenbasierter AdministrationWindows Server 2008

Agenda

Überwachungsrichtlinien fürActive Directory

Eigene Ansichten des Eventlogs möglichWeiterleiten und zentrales Sammeln von bestimmten EreignissenAufgaben können durch Events ausgelöst werdenMehr Details in Audit-Logs

Z.B. Attributänderungen

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.exeHinzufügen / Entfernen von ACEsVerbesserte Fehlerbehandlung um fehlerhafte ACLs darzustellenSIDs anstelle von Namen zugelassen

ICACLS.exeHinzufügen / Entfernen von SIDs in NTFSSichern / Rücksichern von ACEs in eine DateiBehält korrekte Reihenfolge der ACEsSIDs anstelle von Namen zugelassen

Partner auf dem Launch 2008

Europas führender herstellerübergreifender Dienstleister für Informationstechnologie

Windows Server 2008 im Haus implementiertKundenprojekte zu WS2k8 seit Anfang 2007Zahlreiche ReferenzenGroß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 2008November 2007 bis Januar 2008: Serie zu Windows Server 2008Mä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-LibraryPlatform SDKActive Directory Delegation Whitepaper:Best Practices for Delegating Active Directory Administration

http://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.de Scripting Example at FAQ AD Bugs Computer ACEs

Ask the ExpertsWir 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.

Recommended