Wie können wir zusätzliche Wörter zur Liste der Wörter hinzufügen, die vom Passwort-Wörterbuch von pam_cracklib in Red Hat Enterprise Linux 6 geprüft werden?
Was ist PAM cracklib
Red Hat Enterprise Linux kann so konfiguriert werden, dass Passwörter nicht einfach erraten werden können. Auf Red Hat Enterprise Linux wird diese Prüfung vom Pluggable Authentication Module (PAM) /lib/security/pam_cracklib.so durchgeführt . Es überprüft, ob Passwörter eine Mindestlänge haben und verifiziert, dass ein Passwort nicht in einem Wörterbuch vorkommt.
Das von diesem Modul verwendete Wörterbuch befindet sich in /usr/lib/ und ist im Cracklib-Format. Standardmäßig wird jeder Wörterbuchdatei der Dateiname cracklib_dict vorangestellt .
Dieses Modul hat eine Reihe von Parametern, einige der nützlicheren sind unten aufgeführt:
Parameter | Beschreibung |
---|---|
Minlen | Gibt die zulässige Mindestlänge für ein Konto an |
difok | Gibt die Mindestanzahl an Zeichen an, die sich vom vorherigen Passwort unterscheiden müssen |
Ein Implementierungsbeispiel dafür wäre das Hinzufügen der folgenden Zeile zur Datei /etc/pam.d/system-auth:
password required /lib/security/pam_cracklib.so retry=3 type= minlen=8 difok=3Hinweis :Das Argument type=benötigt keinen Wert, es sei denn, Sie möchten diesen Parameter definieren. Wenn Sie es definieren, wird die Nachricht geändert, die als Eingabeaufforderung an den Benutzer ausgegeben wird.
Weitere Informationen zum Modul pam_cracklib finden Sie in der Systemdokumentation unter:/usr/share/doc/pam-
Hinzufügen neuer Wörter zum Cracklib-Wörterbuch
Führen Sie die folgenden Schritte aus, um Wörter zum Wörterbuch hinzuzufügen, das Cracklib verwendet, um Passwörter anhand bekannter Wörter im Wörterbuch zu validieren.
1. Stellen Sie sicher, dass auf Ihrem CentOS/RHEL/Fedora-Server die folgenden RPMs installiert sind:
pam-1.1.1-22.0.1.el6.x86_64 cracklib-2.8.16-4.el6.x86_64 cracklib-dicts-2.8.16-4.el6.x86_64 words-3.0-17.el6.noarch
Beachten Sie, dass sich die RPM-Version je nach Betriebssystemversion ändert.
2. Überprüfen Sie, ob das neue Wort, das zum Wörterbuch hinzugefügt werden soll, bereits im Wörterbuch vorhanden ist oder nicht.
# echo "pwd1234@" | cracklib-check pwd1234@: OK
Das „OK“ in der Ausgabe zeigt an, dass das neue Wort noch nicht im Wörterbuch enthalten ist.
3. Ändern Sie /usr/share/dict/linux.words und fügen Sie „pwd1234@“ zum Schluss hinzu.
# vi /usr/share/dict/linux.words pwd1234@
3. Überprüfen Sie die Datei, dass der Eintrag hinzugefügt wurde.
# tail /usr/share/dict/linux.words Zyzomys Zyzzogeton zyzzyva zyzzyvas ZZ Zz zZt ZZZ pwd1234@
4. Aktualisieren Sie das Cracklib-Wörterbuch mit dem folgenden Befehl:
# create-cracklib-dict /usr/share/dict/linux.words
5. Überprüfen Sie nun noch einmal, ob das gleiche zum Wörterbuch hinzugefügt wurde oder nicht?
# echo "pwd1234@" | cracklib-check pwd1234@: it is based on a dictionary word
Das neue Wort befindet sich bereits im Wörterbuch, wie aus der obigen Ausgabe ersichtlich ist.
6. Versuchen Sie nun dasselbe Passwort auch vom Benutzer
$ passwd Changing password for user test. Changing password for test. (current) UNIX password: New password: >>>>>>>>>>>>> Input pwd1234@ BAD PASSWORD: it is based on a dictionary word
Wie Sie der obigen Ausgabe entnehmen können, kann das neu zum Wörterbuch hinzugefügte Wort jetzt nicht als Passwort verwendet werden.