«

»

Am Beispiel gezeigt: Welche Auswirkung hat ABE auf die Performance?

Aufgabenstellung

Es ist zu prüfen, welchen Einfluss die Funktion ABE („berechtigungsgesteuerte Auflistung“) auf die Performance eines Windows-Servers hat. Hintergrund ist die Absicht, migRaven auf einem Server einzusetzen, bei dem sich zahlreiche Verzeichnisse direkt in einem übergeordneten Verzeichnis befinden. Es soll eine Umgebung mit ca. 500 Unterverzeichnissen und ca. 30 berechtigten Gruppen je Unterverzeichnis getestet werden.

Allgemeines

ABE (Access Based Enumeration) oder auf Deutsch „berechtigungsgesteuerte Auflistung“ bzw. „zugriffsbasierte Aufzählung“ wurde mit Windows Server 2003 R2 eingeführt. Zuvor hatte der Benutzer mit dem Windows-Explorer alle Verzeichnisse sehen können, gleichgültig ob er darauf Zugriffsrechte hatte oder nicht. Ohne entsprechende Rechte konnte er den Inhalt des Verzeichnisses nicht einsehen.

Möglicherweise mehrere hundert parallele Verzeichnisse zu sehen, und nicht zu wissen, auf welche man Zugriffsrechte besitzt, ist unübersichtlich und unbefriedigend, alle durchzutesten nicht zumutbar. Mit ABE werden die Verzeichnisse ausgeblendet, auf die der Nutzer keine Rechte hat. Hat er auf darunter liegende Verzeichnisse Rechte, kann er zu diesen nicht wechseln. Dieser Umstand gilt auch ohne ABE, mit ABE sieht der Nutzer aber noch nicht einmal das übergeordnete Verzeichnis.

Wirkungsweise

Bei eingeschalteter ABE werden dem Nutzer nur die Verzeichnisse angezeigt, auf die er Zugriffsrechte hat. Dabei kann er direkt berechtigt sein, über eine Gruppe oder über verschachtelte Gruppen. Es betrifft aber immer nur die Verzeichnisse, die er auch ohne ABE sehen würde. Untergeordnete Verzeichnisse allerdings werden nicht abgefragt. Hat der Nutzer also keine Rechte auf ein Verzeichnis, aber auf ein darunterliegendes Verzeichnis, wird das Verzeichnis nicht angezeigt. Und in ein Verzeichnis, das man nicht sieht, kann man nicht wechseln. (Außer man kennt den exakten Pfad und wechselt mit „cd Verzeichnis\Verzeichnis“ – das ist natürlich für den Nutzer nicht zumutbar). Der Unterschied zwischen ohne und mit ABE liegt in der Sichtbarkeit der Verzeichnisse, auf die der Nutzer keine Rechte hat. Sowohl ohne als auch mit ABE besteht das Problem, durch ein unberechtigtes Verzeichnis zu einem tieferliegenden Verzeichnis zu gelangen, auf das der Nutzer Rechte besitzt. Eine Lösung dafür sind die List-Gruppen. Diese muss der Administrator dann manuell anlegen oder sie werden z.B. von migRaven und 8MAN automatisch erstellt. Durch die Vergabe der Listrechte werden bei der Verwendung von ABE zuvor nicht angezeigte Verzeichnisse angezeigt, wenn auf Unterverzeichnissen Berechtigungen bestehen.

Funktionsweise

Jeder User und jede Gruppe wird durch einen Sicherheits-Identifikator (SID, Security Identifier) eindeutig gekennzeichnet. Das ist eine mit S beginnende Kennnummer. In ihr ist z.B. auch die Domäne des Nutzers verschlüsselt.

Bei der Anmeldung am Windows-Server erhält der Nutzer einen „Schlüssel“, in dem alle Gruppen stehen, in denen der Nutzer Mitglied ist. In diesem als Token (Kerberos-Token, Anmelde-Token) bezeichnete „Schlüssel“ sind die SIDs dieser Gruppen hinterlegt.

In jedem Verzeichnis stehen die Gruppen, die Zugriffsrechte auf dieses Verzeichnis haben. Jedes Verzeichnis hat seine Liste. Diese als ACL (Access Control List, Zugriffssteuerliste) bezeichnete Liste enthält die SIDs dieser berechtigten Gruppen. Am Anfang der ACL stehen die Einträge, die den Zugriff auf das Verzeichnis verweigern. Verweigern hat höchste Priorität. Dahinter stehen die erlaubenden Rechte.

Will ein Nutzer nun bei eingeschaltetem ABE auf ein Verzeichnis zugreifen, vergleicht das System die SIDs des Anmelde-Tokens mit den SIDs der Verzeichnis-ACL. ABE geht also in ein Verzeichnis, holt sich die SID der ersten berechtigten Gruppe bzw. des ersten berechtigten Nutzers und prüft, ob diese SID mit einer SID im Token übereinstimmt. Wenn nicht, holt er sich die nächste SID. Ist der Nutzer in einer Gruppe, welcher der Zugriff verweigert werden soll, erhält der Nutzer keinen Zugang. Das System hat für dieses Verzeichnis seine Arbeit getan und kann zum nächsten Verzeichnis gehen. Stimmt eine SID mit einem erlaubenden Rechteeintrag mit einer SID des Tokens überein, wird dieses Verzeichnis angezeigt und ABE geht zum nächsten Verzeichnis.

Aktivierung von ABE

Es besteht die Möglichkeit ABE nur für einzelne Shares zu aktivieren oder gleich für den ganzen Server. Mit der Freigabe- und Speicherverwaltung (StorageMgmt.msc) werden alle Freigaben auf dem Server angezeigt. Mit Doppelklick auf eine Freigabe werden deren Eigenschaften angezeigt. Unter „Zugriffsbasierte Aufzählung:“ sieht man, ob ABE „deaktiviert“ oder „aktiviert“ ist. Unter dem Button „Erweitert…“ ist die Eigenschaft einstellbar.

Die Aktivierung der ABE Funktion

Aktivierung der ABE in der Freigabe- und Speicherverwaltung (StorageMgmt.msc)

Testumgebung

Um die Performance von ABE zu testen sollte die Testumgebung folgende Eigenschaften haben:

  • Der Token des Benutzers, der sich anmeldet, sollte möglichst groß sein.
  • Ein Verzeichnis sollte viele Unterverzeichnisse mit vielen berechtigten Gruppen und Usern beinhalten.

Konkret habe ich einen Benutzer (RWolff) angelegt mit einem Token von 22.000 Byte. Dann wurden zwei Verzeichnisse (ABE2aus und ABE2ein) erstellt mit jeweils 503 Unterverzeichnissen. Die Unterverzeichnisse beinhalten jeweils bis zu 40 berechtigte Gruppen. Bei den beiden Verzeichnissen „ABE2aus“ und „ABE2ein“ ist, wie die Namen schon andeutet, ABE inaktiv bzw. aktiv. Der Benutzer RWolff ist in einer Gruppe, die Zugriffsrechte auf 7 der 503 Unterverzeichnisse hat.

Ergebnis

Erst habe ich versucht, das Verzeichnis mit einem Batchprogramm zu lesen. Ich wollte Beginn- und Endzeit messen und dazwischen mit „dir /s“ die Verzeichnisse, die gesehen werden, auslesen. Ich musste feststellen, dass die Anzeige die CPU mehr belastet als die ABE.

Dann habe ich den Total Commander genutzt um das Verzeichnis zu öffnen und habe mir parallel die CPU-Auslastung anzeigen lassen. Die CPU-Auslastung liegt bei 1% bis 2%. Sowohl bei eingeschalteter als auch bei ausgeschalteter ABE. Einerseits wird die eingeschaltete ABE die CPU-Auslastung erhöhen, andererseits benötigt auch die Anzeige der 503 Verzeichnisse bei inaktiver ABE CPU-Leistung.

Eine erhöhte CPU-Belastung durch die Aktivierung der ABE ist in dieser Testumgebung nicht erkennbar. Es bestätigt sich Microsofts Behauptung, dass sich die CPU-Belastung bei eingeschalteter ABE nicht spürbar erhöht.

Access Based Enumeration

8Man zeigt die Größe des Anmelde-Tokens für den Test-Nutzer

 

Unterschied in der Ordneransicht mit und ohne Access Based Enumeration

LINKS: ohne ABE 503 Verzeichnisse, MITTE: mit ABE werden 7 von 503 Verzeichnissen angezeigt, RECHTS: CPU-Auslastung

 

 

 

Mehr zum Thema:

 

Bitte kommentieren Sie diesen Betrag mit eigenen Erfahrungen/Meinungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*
= 3 + 8

Wordpress SEO Plugin by SEOPressor