Wir haben einen Cluster, der eine interne LDAP-Domäne zur Benutzerauthentifizierung verwendet, die zuvor in LDAP gespeicherte Passwörter verwendete. Wir haben jetzt die Anmeldemaschine so umgestellt, dass sie krb5 zur Passwortauthentifizierung gegenüber einem externen kdc verwendet. Wir würden die lokalen LDAP-Passwörter nach Möglichkeit entfernen. Gibt es in LDAP ein Äquivalent zum herkömmlichen Unix-Authentifizierungsbefehl usermod -p '!' user
?
Antwort1
Für OpenLDAP,Entfernen Sie das userPassword
Attributvon jedem Benutzerkonto.
Leider gibt es keine Standardbefehle zum Verwalten von LDAP-Benutzerkonten. Daher müssen Sie ldapsearch | awk/sed/grep | ldapmodify
die Stapelaktualisierung mithilfe von Perl/Python skripten.
Alternative:Anstatt die LDAP-Passwortauthentifizierung vollständig zu deaktivieren,dürfenLassen Sie den LDAP-Server die Bind-Passwörter anhand von Kerberos validieren. Dies ist natürlich nicht so gut wie die tatsächliche Kerberos-Authentifizierung (SASL GSSAPI), kann aber nützlich sein, wenn Sie noch Software haben, die auf LDAP „Simple Bind“ basiert.
Wenn Sie das Attribut jedes Benutzers userPassword
in {SASL}user@REALM
(enthält seinen Kerberos-Principal) ändern, führt OpenLDAP eine Pass-Through-Passwortüberprüfung mithilfe des Daemons „saslauthd“ (von Cyrus SASL) durch. Konfigurieren Sie ihn so, dass er als gestartet wird, saslauthd -a krb5
und er überprüft die Passwörter anhand Ihres Kerberos-KDC.
Beachten Sie, dass saslauthderfordertDas System muss einen „host/“-Prinzipal in seinem Maschinen-Keytab (/etc/krb5.keytab) haben.