Re: LDAP: Neues Passwort erzwingen
Willi Geffers wrote:
Hallo Michael,
danke fuer den Tipp. Nachdem ich in der /etc/ldap.secret das Passwort
fuer den Admin gesetzt und in der /etc/pam_ldap.conf noch den Eintrag
rootbinddn cn=admin,dc=rbi,dc=informatik,dc=rwth-aachen,dc=de
hinzugefuegt habe, verhaelt sich LDAP wie gewuenscht:
Laeuft ein Passwort ab, wird der User beim Einloggen gewarnt. Ist es
abgelaufen, wird ein neues Passwort verlangt. Setze ich als root mit
passwd das Passwort eines Users, muss ich nicht mehr das bisherige
Passwort des Users eingeben. Es ist auch nicht mehr notwendig, dem User
Schreibrechte auf shadowLastChange zu geben.
In der ldap.secret musste ich das Passwort fuer den admin in Klartext
eintragen. Alle Versuche, dort ein mit slappasswd verschluesseltes
Passwort einzutragen, sind bisher gescheitert. Die Datei ist aber nur
fuer root lesbar, so dass ich erst einmal damit leben kann.
Nochmals Danke
Willi
Hallo Willi,
das Problem mit dem unverschlüsselten admin Passwort hat mich auch
gestört. Es darf aber nicht gehasht sein, da ja passwd dieses Passwort
braucht um sich damit gegen den LDAP server zu authentifizieren.
Ea gibt aber eine Möglichkeit, das ganze ein "bisschen" sicherer zu machen.
Lege einen neues Admin Objekt an (ich verwende dafür
simpleSecurityObject und organizationRole) und nenne ihn z.B.
cn=passadmin,dc=dc=demo,dc=de. Sein Password kannst du über das
userPassword Attribut setzen.
Nun müssen noch die ACLs in slapd.conf geändert werden.
access to dn="cn=admin,dc=demo,dc=de"
by dn="cn=admin,dc=demo,dc=de"
by * none (oder auch read wenn du möchtest)
access to attribute=userPassword
by dn="cn=admin,dc=demo,dc=de" write
by dn="cn=passadmin,dc=demo,dc=de" write
by anonymous auth
by self write
by * none
access to attribute=shadowLastChange
by dn="cn=admin,dc=demo,dc=de" write
by dn="cn=passadmin,dc=demo,dc=de" write
by * read
# The admin dn has full write access
access to *
by dn="cn=admin,dc=demo,dc=de" write
by * read
Ändere nun noch das rootbinddn in /etc/pam_ldap.conf auf
cn=passadmin,dc=dc=demo,dc=de ab.
Und trage in /etc/ldap.secret das Passwort von passadmin ein.
Gerät nun das Passwort in /etc/ldap.secret in falsche Hände kann
derjenige höchstens die Passwörter der normalen User neu setzen (was
zugebenermassen noch schlimm genug ist). Die erste Regel verhindert,
dass der Angreifer das Passwort von admin neu setzt und er somit wieder
vollen Zugriff auf das LDAP Verzeichnis hat.
Diese ganze Idee kam mir gerade eher spontan, so dass sie
vielleicht/wahrscheinlich noch etwas Raum für Verbesserungen lässt.
Gruss,
Michael
--
------------------------------------------------------------
E-Mail: biebl@teco.edu
WWW: http://www.teco.edu/
TecO (Telecooperation Office) Vincenz-Priessnitz-Str.1
University of Karlsruhe 76131 Karlsruhe, Germany
------------------------------------------------------------
Reply to: