Sicherheit im Verzeichnisdienst
Nochmal zum Verständnis:
Der Verzeichnisdienst ldap ist bildlich gesprochen ein Telefonbuch. Und einer dieser Einträge nach Name Straße, Telefonnummer ist auch das Passwort des Benutzers.
Will sich ein Benutzer über ldap einloggen, so hat er das berühmte Henne/Ei Problem. Um an seine Daten (Name, UID, Homeverzeichnis) etc. heranzukommen muss er sich irgendwie authentifizieren. Dafür stellt OpenLDAP unterschiedliche Möglichkeiten zur Verfügung.
Authentifizierung |
Name des Dienstes |
Kommentar |
Kerberos V |
GSSAPI |
sicher |
Kerberos IV |
Kerberos |
veraltet |
MD5 Hashes |
DIGEST-MD5 |
sehr gebräuchlich |
separater Dämon |
saslauthd |
selten |
Will man die Authentifizierung ohne zusätzliche Software, rein per LDAP abwickeln landet man zwangsläufig bei DIGEST-MD5. Diese Verfahren wird in 2.1 (Ubuntu) & 2.2 (Debian/FreeBSD) erläutert.
Allerdings hat das reine OpenLDAP Methode per DIGEST-MD5 Verfahren ein paar Nachteile, die nur z.T. aufgehoben werden können
Schwachstelle |
Abhilfe |
Authentifizierungsverfahren MD5 kryptographisch schwach |
zusätzliche Verwendung von TLS zwischen Client & Server |
Gleicher Speicherort von Benutzerdaten und Passwörtern |
keine Abhilfe |
Passwörter sind innerhalb des Ldap im Klartext |
keine Abhilfe |
Sollte also jemand den Adminisitratorzugang zum OpenLDAP erlangen, so kann er alle Passwörter im Klartext lesen !
Die gebräuchlichste Alternative zu DIGEST-MD5 ist daher Kerberos. Kerberos schafft die Trennung von Verzeichnisdienst und Authentifizierung. Bei Kerberos werden die Passwörter separat verwaltet.Hackt jemand den LDAP so bekommt er nur die Benutzerinformationen.
Nun nun ab ins Detail.
2.1 Authentifikation am Server (SASL)
2.2 Authentifikation per SASL mit der slapd.conf
Um die Komplexität nicht Überhand nehmen zu lassen verschieben wir das Thema Kerberos etwas nach hinten, un gehen erst im Punkt 6.0 Authentifikation per Kerberos darauf ein.
(Version 1.04 vom April 2011)