Aufrufe
vor 4 Jahren

LinuxUser Fotos bearbeiten (Vorschau)

Netz&System OpenLDAP

Netz&System OpenLDAP Benutzerkonten mit OpenLDAP zentral verwalten Einer für alle © limbi007, 123RF Gilt es, mehreren Nutzern das Login an verschiedenen Rechnern oder Anwendungen zu ermöglichen, bietet der Verzeichnisdienst LDAP das Mittel der Wahl. Falko Benthin Readme Wer mehrere Nutzerkonten verwalten muss, kommt heute kaum um Verzeichnisdienste herum. Wir zeigen am Beispiel OpenLDAP, wie Sie eine zentrale Nutzerverwaltung einrichten und diese mit TLS absichern. In vielen Organisationen teilen sich Mitarbeiter inzwischen die vorhandenen Arbeitsplätze. Auf den zugehörigen Rechnern entsprechende Benutzerkonten anzulegen und diese aktuell zu halten, gerät für Admins schnell zu einer Herausforderung. Dazu kommt, dass verschiedene Netzwerkdienste, wie beispielsweise der Web server Apache oder auch der Mailserver Postfix, eigene Benutzerverwaltungen erfordern. Pflegen Sie mehrere Nutzer accounts auf verschiedenen Rechnern, dann ergeben sich neben den organisatorischen Schwierigkeiten unweigerlich auch Sicherheitsrisiken – etwa dann, wenn Sie 78 www.linux-user.de 09.2014

OpenLDAP Netz&System Accounts ausgeschiedener Mitarbeiter auf einigen Maschinen vergessen. LDAP Dem beugt ein Verzeichnisdienst damit vor, dass er alle Nutzer zentral verwaltet. Hierfür bietet sich beispielsweise das Lightweight Data Access Protocol (LDAP) an. Mit diesem Verzeichnisdienst stellen Sie Daten über Nutzer und Geräte rechner- und plattformübergreifend bereit. Über die Authentifikation hinaus lassen sich mit LDAP auch Telefon- und Adressdaten vorhalten. LDAP wurde 1993 entwickelt, um via TCP/​IP auf die in den 80er-Jahren aufgekommenen DAP-Datenbanken zuzugreifen. Diese nutzten damals einen X.500- Standard, der alle sieben Schichten des OSI-Referenzmodells umfasste, weshalb es aufwendig zu implementieren war. Ursprünglich konzipierten die Entwickler LDAP für Proxies, um DAP auf verschiedenen Systemen einfacher zugänglich zu machen. Später erhielt es ein eigenes Datenbank-Backend und arbeitete somit ohne DAP-Datenbank. LDAP baut seine Strukturen hierarchisch auf, sodass sich diese gut als Baum abbilden lassen. Dank seines objektorientierten Designs erlaubt es der Verzeichnisdienst, problemlos Vererbung und Polymorphie bei der Verwaltung der im Baum gespeicherten Verzeichniseinträge zu nutzen. Die Struktur der LDAP-Verzeichnisse ähnelt auf Lesezugriffe optimierten Dateiverzeichnissen. Wie diese besitzen sie eine Wurzel, unterhalb derer sich Containerobjekte („Organisational Unit“, OU) und Blattobjekte befinden. Die OUs dürfen weitere Objekte enthalten und strukturieren, so etwa den Directory Information Tree (DIT). Unterhalb eines Blattobjekts erlauben die meisten LDAP-Implementierungen keine weiteren Objekte. Jedes Objekt im DIT verwendet einen eindeutigen Namen („Distinguished Name“, DN) und bestimmte Eigenschaften, die Attribute. Diese legen Objektklassen und Schemata fest. Je nach Definition müssen oder können Sie Attribute für ein Objekt vergeben. Ein für jedes Objekt zwingendes At- 1 Mit distributionseigenen Paketwerkzeugen wie Apt-get installieren Sie den OpenLDAP- Server in wenigen Minuten. Das Einrichten erweist sich dagegen durchaus als kniffelig. tribut heißt Common Name, mit dem LDAP es im DIT erkennt und verwaltet. Ein Beispiel liefert die Objektklasse posixAccount (Listing 1), in der Sie die Attribute cn, uid, uidNumber, gidNumber und home‐ Directory vergeben müssen, während userPassword, loginShell, gecos und description Optionen darstellen. Attribute verwaltet LDAP getrennt von Objekten. Letztere besitzen innerhalb der DIT eindeutige Object Identifier (OID) und Namen. Sie enthalten ferner eine Beschreibung (DESC), eine Angabe zur Gleichheit (EQUALITY) und eine Syntaxbeschreibung in OID-Form. Listing 1 objectclass (1.3.6.1.1.1.2.0 NAME 'posixAccount' DESC 'Abstraction of an account with POSIX attributes' SUP top AUXILIARY MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ gecos $ description ) ) Listing 2 attributetype ( 1.3.6.1.1.1.1.0 NAME 'uidNumber' DESC 'An integer uniquely identifying a user in an \ administrative domain' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE‐VALUE ) 09.2014 www.linux-user.de 79