Re: openldap2: slapcat, alle userpasswords sind identisch
Hallo, wir sollten das Thema auf der suse-liste lassen, andere Mitleser können hier vielleicht auch noch etwas lernen, daher ein Cc an die Liste. Bitte Antworten über die Liste und nicht PM. hthyen@gmx.de writes:
Hallo,
hier sind die gewünschten Daten (SuSE 8.2): /etc/openldap2/slapd.conf:
[...]
database ldbm [...] loglevel 512
Du nutzt also ldbm als Database, damit verzichtest du aber auf wichtige Features von bdb. Was versprichst du dir von Loglevel 512, damit wird nur die Statistik der übermittelten Objekte gelogged.
/etc/openldap/ldap.conf: host 127.0.0.1 base dc=domain,dc=de rootbinddn cn=Manager,dc=domain,dc=de nss_base_passwd ou=People,dc=domain,dc=de ssl no
Hier kann etwas nicht stimmen, du mußt ZWEI ldap.conf Dateien haben, eine /etc/openldap/ldap.conf, dies ist die Konfiguration für Ldapclients, die libldap nutzen. Dann gibt es eine /etc/ldap.conf, dies ist die Konfigurationsdatei für nsswitch und PAM. Deine obigen Einträge sind aus /etc/ldap.conf, ist aber das, was ich sehen wollte. Ich vermisse einen wichtigen Eintrag, nämlich wie Passwörter zu behandeln sind. Es solle also noch pam_password exop Eingetragen werden. Weiter würde ich empfehlen, die Suchbasis für das Passwort auf one zu reduzieren und einen Suchfilter hinzufügen, also nss_base_passwd ou=people,dc=domain,dc=de?one?userPassword
ml370g3:/etc/openldap # slapcat: dn: uid=test1,ou=People,dc=domain,dc=de uid: test1 cn: test1 objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword:: e2NyeXB0fTF....
Das Feld userPassword enthält immer die gleichen Einträge (32Byte lang) !
[...]
Der obige Wert des Attributes userPassword ist der Base64 kodierte
Beginn des Passwortes
dieter@marin:~> mmencode -u
e2NyeXB0fT
{crypt}
Oder falls mmencode nicht installiert ist, das gleiche mit perl
dieter@marin:~> perl < use MIME::Base64;
print "userpasswd=\"" . decode_base64('e2NyeXB0fT') . "\"\n";
EOF
userpasswd="{crypt}" Das wichtigste sehen ich aber schon. Deine Passworte werden mit der
Methode {CRYPT} verschlüsselt, siehe dazu man slappasswd(8), dieses
ist die Defaultmethode von OpenLDAP, slapd kodiert das Passwort mit
Base64, so soll es auch sein. Die mit slapcat erzeugte *.ldif Datei
enthält also das mit Base64 kodierte, mit crypt verschlüsselte
Passwort.
Wenn du nun schreibst, daß alle Passwort-Werte 32Byte groß sind, ist
das zwar viel, aber nicht verwunderlich, da ja das mit crypt
verschlüsselte Passwort insgesamt 128 bit hat plus 8 bit für die ascii
Werte von {crypt}.
Prüfe doch einfach mal mit einer der oben beschriebenen Methoden, ob
das Passwort tatsächlich verändert worden ist, wie du schreibst, oder
ob daß Passwort, nach erneutem einlesen mit slapadd, zwar erhalten
bleibt, PAM aber kein Authentifizierungs OK bekommt.
Das Phenomen, daß du ursprünglich beschreiben hast, daß nach einem
slapadd keine Authentifizierung mehr erfolgt, kann ich nicht
nachvollziehen. Ich habe hier auf drei Rechnern fünf verschiedene
Instanzen von OpenLDAP laufen, von Version 2.1.8 bis
RELEASE_ENGINE_2_2_HEAD (also eine alpha Version). Heute vormittag
habe ich nun mal versucht, ein Passwort mit diversen
Verschlüsselungsmethoden mittels PAM (d.h. dem Tool passwd) zu
schreiben, zu verändern, mit slapcat eine *.ldif auszulesen, wieder
einzulesen, auch auf unterschiedlichen Versionen wieder einzulesen,
daß Paßwort wurde nicht verändert und PAM bekam immer sein
Authentifizierungs-OK.
Setze doch einmal in slapd.conf den Wert "loglevel -1" und maile mal
die relevanten Zeilen aus /var/log/localmessages
-Dieter
--
Dieter Kluenter | Systemberatung
Tel:040.64861967 | Fax: 040.64891521
mailto: dkluenter(at)dkluenter.de
http://www.avci.de
participants (1)
-
Dieter Kluenter