So ändern Sie Kontokennwörter auf einem OpenLDAP-Server

Einführung

LDAP-Systeme werden häufig zum Speichern von Benutzerkontoinformationen verwendet. Tatsächlich umfassen einige der gängigsten Methoden zur Authentifizierung bei LDAP Kontoinformationen, die in LDAP-Einträgen gespeichert sind.

Unabhängig davon, ob Ihre LDAP-Einträge von externen Diensten für Kontoinformationen oder nur für LDAP-spezifische Autorisierungsbindungen verwendet werden, muss die Kennwortverwaltung verstanden werden. In diesem Handbuch wird erläutert, wie Sie das Kennwort eines LDAP-Eintrags ändern.

Ändern Ihres eigenen Benutzerpassworts

Die Möglichkeit zum Ändern von Kennwörtern wird von den Zugriffssteuerungen für den LDAP-Server verwaltet. In der Regel ist LDAP so konfiguriert, dass Konten ihre eigenen Kennwörter ändern können. Dies funktioniert gut, wenn Sie als Benutzer Ihr vorheriges Kennwort kennen.

Wir können das Tool "+ ldappasswd +" verwenden, um Benutzerkontokennwörter zu ändern. Um Ihr Passwort zu ändern, müssen Sie sich an einen LDAP-Benutzereintrag binden und sich mit dem aktuellen Passwort authentifizieren. Dies folgt der gleichen allgemeinen Syntax wie die anderen OpenLDAP-Tools.

Um das Passwort zu ändern, müssen wir einige Argumente angeben, die über die herkömmlichen Bindungsargumente hinausgehen. Sie sollten das alte Passwort mit einer der folgenden Optionen angeben:

  • * + -a [altes Passwort] + *: Mit dem Flag + -a + können Sie das alte Passwort als Teil der Anforderung in der Befehlszeile eingeben.

  • * + -A + *: Dieses Flag ist eine Alternative zum Flag + -a +, das Sie bei der Eingabe des Befehls zur Eingabe des alten Passworts auffordert.

  • * + -t [oldpasswordfile] + *: Dieses Flag kann anstelle des obigen verwendet werden, um das alte Passwort aus einer Datei zu lesen.

Sie müssen auch das neue Kennwort mit einer der folgenden Optionen angeben:

  • * + -s [neues Passwort] + *: Das Flag + -s + wird verwendet, um das neue Passwort in der Befehlszeile anzugeben.

  • * + -S + *: Diese Variante des Flags + -s + fordert Sie bei der Eingabe des Befehls zur Eingabe des neuen Passworts auf.

  • * + -T [newpasswordfile] + *: Dieses Flag kann anstelle des obigen verwendet werden, um das neue Passwort aus einer Datei zu lesen.

Wenn Sie eine Option aus jeder Gruppe zusammen mit den regulären Optionen zum Angeben des Serverstandorts sowie des Bindungseintrags und des Kennworts verwenden, können Sie Ihr LDAP-Kennwort ändern. Aus technischer Sicht benötigt OpenLDAP nicht immer das alte Kennwort, da es zum Binden an den Eintrag verwendet wird. Bei anderen LDAP-Implementierungen ist dies jedoch erforderlich. Daher ist es am besten, dieses Kennwort festzulegen.

In der Regel sieht der Befehl folgendermaßen aus:

ldappasswd -H ldap:// -x -D "" -W -A -S

Dies stellt eine Verbindung zum angegebenen LDAP-Server her, authentifiziert sich mit dem Benutzer-DN-Eintrag und gibt dann eine Reihe von Eingabeaufforderungen aus. Sie werden aufgefordert, das alte und das neue Kennwort einzugeben und zu bestätigen. Anschließend müssen Sie das alte Kennwort erneut eingeben, damit die eigentliche Bindung erfolgt. Danach ändert sich Ihr Passwort.

Da Sie Ihr Kennwort ohnehin ändern werden, ist es möglicherweise einfacher, Ihr altes Kennwort in der Befehlszeile anstelle von Eingabeaufforderungen einzugeben. Das könnten Sie so machen:

ldappasswd -H ldap:// -x -D "" -w  -a  -S

Ändern des Kennworts eines Benutzers mithilfe der RootDN-Bindung

Mit dem Tool "+ ldappasswd +" können Sie auch das Kennwort eines anderen Benutzers ändern, falls dies als LDAP-Administrator erforderlich ist. Technisch gesehen können Sie sich an jedes Konto binden, das Schreibzugriff auf das Kennwort des Kontos hat. Dieser Zugriff ist jedoch normalerweise auf den rootDN-Eintrag (Administrator) und das Konto selbst beschränkt.

Um das Kennwort eines anderen Benutzers zu ändern, müssen Sie sich an einen Eintrag mit erhöhten Rechten binden und dann den Eintrag angeben, den Sie ändern möchten. In der Regel sind Sie an den Root-DN gebunden (Informationen zum Auffinden dieses Kontos finden Sie im nächsten Abschnitt).

Der grundlegende Befehl "+ ldappasswd " sieht sehr ähnlich aus. Der einzige Unterschied besteht darin, dass Sie den zu ändernden Eintrag am Ende des Befehls angeben müssen. Sie können die Optionen " -a " oder " -A +" verwenden, wenn Sie über das alte Kennwort verfügen. Dies ist jedoch häufig nicht der Fall, wenn Sie das Kennwort für einen Benutzer ändern. Wenn Sie das alte Passwort nicht haben, lassen Sie es einfach weg.

Wenn der rootDN für Ihren LDAP-Server beispielsweise "+ cn = admin", "dc = example", "dc = com " lautet und das Kennwort, das Sie ändern möchten, " uid = bob", "ou = people", "dc = example" lautet, dc = com + `entry, Sie können dies eingeben:

ldappasswd -H ldap:// -x -D "" -W -S "uid=bob,ou=people,dc=example,dc=com"

Sie werden aufgefordert, das neue Kennwort von Bob einzugeben. Anschließend werden Sie aufgefordert, das Kennwort einzugeben, das für die Bindung an den Administratoreintrag erforderlich ist, um die Änderung vorzunehmen.

Ändern des RootDN-Passworts

Falls Sie Ihr LDAP-Administratorkennwort vergessen haben, müssen Sie auf dem Server des LDAP-Systems über Root- oder "+ sudo +" -Zugriff verfügen, um es zurücksetzen zu können. Melden Sie sich bei Ihrem Server an, um loszulegen.

Ermitteln der aktuellen RootDN-Informationen

Zuerst müssen Sie das RootDN-Konto und den aktuellen RootDN-Kennwort-Hash finden. Dies ist in der speziellen + cn = config + Konfiguration DIT verfügbar. Wir können die gesuchten Informationen finden, indem wir Folgendes eingeben:

sudo ldapsearch -H ldapi:// -LLL -Q -Y EXTERNAL -b "cn=config" "(olcRootDN=*)" dn olcRootDN olcRootPW | tee ~/newpasswd.ldif

Dies sollte das rootDN-Konto und das Passwort für Ihre DIT zurückgeben. Sie erfahren auch, in welcher Konfigurationsdatenbank dies definiert ist. Wir haben diese Informationen auch in eine Datei in unserem Home-Verzeichnis geschrieben, damit wir sie ändern können, sobald wir den neuen Passwort-Hash haben:

RootDN und RootPW für DIT

dn: olcDatabase={1}hdb,cn=config
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: {SSHA}ncCXAJ5DjfRWgxE9pz9TUCNl2qGQHQT3

Hashing ein neues Passwort

Als nächstes können wir das Hilfsprogramm "+ slappasswd " verwenden, um ein neues Passwort zu hashen. Wir möchten denselben Hash verwenden, der sich in der von uns abgefragten Zeile " olcRootPW " befand, angegeben durch den vorangestellten Wert mit geschweiften Klammern. In unserem Fall ist dies " {SSHA} +".

Verwenden Sie das Dienstprogramm "+ slappasswd +", um einen korrekten Hash für das zu verwendende Kennwort zu generieren. Wir werden unseren neuen Hash an das Ende der Datei anhängen, die wir mit dem letzten Befehl erstellt haben. Sie müssen den vollständigen Pfad zum Befehl angeben, wenn Sie ein Nicht-Root-Konto verwenden:

/usr/sbin/slappasswd -h  >> ~/newpasswd.ldif

Sie werden aufgefordert, das neue Passwort einzugeben und zu bestätigen, das Sie verwenden möchten. Der Hash-Wert wird an das Ende unserer Datei angehängt.

Ändern des Passwortes in der Config DIT

Jetzt können wir die Datei bearbeiten, um einen gültigen LDIF-Befehl zum Ändern des Kennworts zu erstellen. Öffnen Sie die Datei, an die wir geschrieben haben:

nano ~/newpasswd.ldif

Es sollte ungefähr so ​​aussehen:

~ / newpasswd.ldif

dn: olcDatabase={1}hdb,cn=config
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: {SSHA}ncCXAJ5DjfRWgxE9pz9TUCNl2qGQHQT3

{SSHA}lieJW/YlN5ps6Gn533tJuyY6iRtgSTQw

Abhängig davon, ob Ihr LDAP-Server mehr als eine DIT hat, können Sie möglicherweise mehrere Werte haben. Verwenden Sie in diesem Fall den Wert "+ olcRootDN ", um das richtige Konto zu finden, das Sie ändern möchten. Löschen Sie die anderen Triplets " dn ", " olcRootDN ", " olcRootPW +", falls vorhanden.

Nachdem Sie bestätigt haben, dass die Zeile "+ olcRootDN " mit dem Konto übereinstimmt, das Sie ändern möchten, kommentieren Sie es aus. Darunter werden zwei Zeilen eingefügt. Der erste sollte " changetype: modify " angeben und die zweite Zeile sollte LDAP mitteilen, dass Sie versuchen, " replace: olcRootPW +" zu verwenden. Es wird so aussehen:

~ / newpasswd.ldif

dn: olcDatabase={1}hdb,cn=config
olcRootDN: cn=admin,dc=example,dc=com


olcRootPW: {SSHA}ncCXAJ5DjfRWgxE9pz9TUCNl2qGQHQT3

{SSHA}lieJW/YlN5ps6Gn533tJuyY6iRtgSTQw

Löschen Sie nun den Hash, der sich in der Zeile "+ olcRootPW +" befindet, und ersetzen Sie ihn durch den, den Sie unten generiert haben. Fremdleitungen entfernen. Es sollte jetzt so aussehen:

~ / newpasswd.ldif

dn: olcDatabase={1}hdb,cn=config
#olcRootDN: cn=admin,dc=example,dc=com
changetype: modify
replace: olcRootPW
olcRootPW:

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Jetzt können wir die Änderung anwenden, indem wir Folgendes eingeben:

sudo ldapmodify -H ldapi:// -Y EXTERNAL -f ~/newpasswd.ldif

Dadurch wird das Administratorkennwort im Verzeichnis "+ cn = config" geändert.

Ändern des Passworts in der normalen DIT

Dies hat das Passwort für den Eintrag innerhalb der administrativen DIT geändert. Wir müssen den Eintrag jedoch noch innerhalb der regulären DIT ändern. Derzeit sind sowohl das alte als auch das neue Passwort gültig. Wir können dies beheben, indem wir den regulären DIT-Eintrag mit unseren neuen Anmeldeinformationen ändern.

Öffnen Sie die LDIF-Datei erneut:

nano ~/newpasswd.ldif

Ersetzen Sie den Wert in der Zeile "+ dn: " durch den RootDN-Wert, den Sie zuvor auskommentiert haben. Dieser Eintrag ist unser neues Ziel für die Passwortänderung. Wir müssen auch * beide * Vorkommen von ` olcRootPW ` mit ` userPassword +` ändern, damit wir den korrekten Wert ändern. Wenn Sie fertig sind, sollte die LDIF-Datei folgendermaßen aussehen:

[output ~/newpasswd.ldif]
dn:
changetype: modify
replace:
: {SSHA}lieJW/YlN5ps6Gn533tJuyY6iRtgSTQw

Speichern und schließen Sie die Datei.

Jetzt können wir das Passwort für diesen Eintrag ändern, indem wir es mit dem neuen Passwort binden, das wir in der Konfigurations-DIT festgelegt haben. Sie müssen sich an den RootDN-Eintrag binden, um die Operation auszuführen:

ldapmodify -H ldap:// -x -D "" -W -f ~/newpasswd.ldif

Sie werden aufgefordert, das neue Kennwort einzugeben, das Sie in der Konfigurations-DIT festgelegt haben. Nach der Authentifizierung wird das Kennwort geändert, sodass nur das neue Kennwort für Authentifizierungszwecke übrig bleibt.

Fazit

LDAP wird häufig zum Speichern von Kontoinformationen verwendet. Daher ist es wichtig zu wissen, wie Kennwörter ordnungsgemäß verwaltet werden. Meistens ist der Vorgang relativ einfach, aber für intensivere Vorgänge sollten Sie in der Lage sein, die Kennwörter mit ein wenig Arbeit zu ändern.