%3F.png)
Ich verwende OpenLDAP 2.6. Wenn ich das Passwort eines Objekts über
ldappasswd -x -D <dn of root user> -W -S <dn of object whose pwd shall be set>
dann landet ein Hash des Passworts im Attribut userPassword
.
Welche Hash-Funktion wird ldappasswd
verwendet? Wie konfiguriere ich die Hash-Funktion? So wie es aussieht, gehe ich davon aus, dass standardmäßig ein SHA1 verwendet wird, was nicht mehr sicher ist.
Antwort1
Welche Hash-Funktion verwendet ldappasswd?
Technisch gesehen keine – es ruft nur die erweiterte LDAP-Operation „Passwort ändern“ auf, die dazu führt, dass das LDAPServereine Hash-Funktion zu verwenden, die es für angemessen hält (und den Hash dort zu speichern, wo es ihn für angemessen hält – nicht unbedingt im Benutzerpasswort).
Der Hash, der vom Exop „Passwort ändern“ verwendet wird, wird also serverseitig konfiguriert. Für OpenLDAP ist dies der olcPasswordHash
Parameter, der standardmäßig auf „SSHA“ (gesalzener und iterierter SHA-1) eingestellt ist, ähnlich wie $1$
Hashes. Wenn Sie etwas Stärkeres möchten, können Sie entweder die {CRYPT}
Hash-Algorithmen verwenden, die die crypt()-Funktion des Systems bereitstellt (also dieselben wie bei /etc/shadow – möglicherweise bcrypt oder yescrypt, wenn das Betriebssystem libxcrypt verwendet, ansonsten dieselbe Art von gesalzenem SHA),oder {ARGON2}
wenn Sie das zusätzliche Modul slapd-argon2 installiert haben (es ist Teil von OpenLDAP, aber im „Contrib“-Baum).
slapd.conf | cn=Konfiguration |
---|---|
Standard (iteriertes/gesalzenes SHA-1):password-hash {SSHA} |
Standard:olcPasswordHash: {SSHA} |
System crypt() mit yescrypt, wenn libxcrypt verwendet wird:password-hash {CRYPT} password-crypt-salt-format $y$%.16s (nicht getestet, aber ich denke, das sollte funktionieren) |
Systemcrypt() mit Yescrypt:olcPasswordHash: {CRYPT} olcPasswordCryptSaltFormat: $y$.16s |
Argon2, wenn das slapd-Modul verfügbar ist:moduleload argon2 password-hash {ARGON2} |
Argon2, wenn das slapd-Modul verfügbar ist:olcModuleLoad: argon2 olcPasswordHash: {ARGON2} |