Hallo wieder! Der Unterricht in der neuen Kursgruppe beginnt morgen
Im vorherigen Tutorial haben wir Ihnen die Verwendung erklärt pam_cracklib
um Passwörter auf Systemen komplexer zu machen pam_pwquality
ersetzt cracklib
als pam
Standardmodul zur Überprüfung von Passwörtern. Modul pam_pwquality
wird auch auf Ubuntu und CentOS sowie vielen anderen Betriebssystemen unterstützt. Mit diesem Modul können Sie ganz einfach Passwortrichtlinien erstellen, um sicherzustellen, dass Benutzer Ihre Standards für die Passwortstärke akzeptieren.
Lange Zeit bestand die gängige Vorgehensweise bei Passwörtern darin, den Benutzer zur Verwendung von Groß- und Kleinbuchstaben, Zahlen oder anderen Symbolen zu zwingen. Diese Grundregeln für die Komplexität von Passwörtern wurden in den letzten zehn Jahren umfassend propagiert. Es gab viele Diskussionen darüber, ob dies eine gute Praxis ist oder nicht. Das Hauptargument gegen die Festlegung solch komplexer Bedingungen war, dass Benutzer Passwörter auf Zettel schreiben und diese unsicher aufbewahren.
Eine andere Richtlinie, die kürzlich in Frage gestellt wurde, zwingt Benutzer dazu, ihre Passwörter alle x Tage zu ändern. Es gibt einige Studien, die gezeigt haben, dass dies auch schädlich für die Sicherheit ist.
Zum Thema dieser Diskussionen wurden viele Artikel geschrieben, die den einen oder anderen Standpunkt untermauern. Aber das ist nicht das, worüber wir in diesem Artikel sprechen werden. In diesem Artikel geht es darum, wie man die Passwortkomplexität richtig einstellt und nicht wie man die Sicherheitsrichtlinie verwaltet.
Passwortrichtlinieneinstellungen
Unten sehen Sie die Passwortrichtlinienoptionen und jeweils eine kurze Beschreibung. Viele davon ähneln den Parametern im Modul cracklib
. Dieser Ansatz erleichtert die Portierung Ihrer Richtlinien aus dem Altsystem.
- Es tut mir Leid – Die Anzahl der Zeichen in Ihrem neuen Passwort, die in Ihrem alten Passwort NICHT vorhanden sein sollten. (Standard 5)
- Minlen – Mindestlänge des Passworts. (Standard 9)
- ukredit – Die maximale Anzahl an Credits für die Verwendung von Großbuchstaben (wenn Parameter > 0) oder die minimal erforderliche Anzahl von Großbuchstaben (wenn Parameter < 0). Der Standardwert ist 1.
- Kredit — Die maximale Anzahl an Credits für die Verwendung von Kleinbuchstaben (wenn Parameter > 0) oder die minimal erforderliche Anzahl von Kleinbuchstaben (wenn Parameter < 0). Der Standardwert ist 1.
- Anerkennung — Die maximale Anzahl an Credits für die Verwendung von Ziffern (wenn Parameter > 0) oder die minimal erforderliche Anzahl von Ziffern (wenn Parameter < 0). Der Standardwert ist 1.
- er glaubt — Die maximale Anzahl an Credits für die Verwendung anderer Symbole (wenn Parameter > 0) oder die minimal erforderliche Anzahl anderer Symbole (wenn Parameter < 0). Der Standardwert ist 1.
- Minklasse – Legt die Anzahl der erforderlichen Klassen fest. Klassen umfassen die oben genannten Parameter (Großbuchstaben, Kleinbuchstaben, Zahlen, andere Zeichen). Der Standardwert ist 0.
- maxrepeat – Die maximale Häufigkeit, mit der ein Zeichen in einem Passwort wiederholt werden darf. Der Standardwert ist 0.
- maxclassrepeat — Die maximale Anzahl aufeinanderfolgender Zeichen in einer Klasse. Der Standardwert ist 0.
- gecoscheck – Prüft, ob das Passwort Wörter aus den GECOS-Strings des Benutzers enthält. (Benutzerinformationen, d. h. echter Name, Standort usw.) Der Standardwert ist 0 (aus).
- Diktierpfad – Gehen wir zu den Cracklib-Wörterbüchern.
- BADWORDS – Durch Leerzeichen getrennte Wörter, die in Passwörtern verboten sind (Firmenname, das Wort „Passwort“ usw.).
Wenn das Konzept der Kredite seltsam klingt, ist es in Ordnung, es ist normal. Wir werden in den folgenden Abschnitten mehr darüber sprechen.
Konfiguration der Passwortrichtlinie
Bevor Sie mit der Bearbeitung von Konfigurationsdateien beginnen, empfiehlt es sich, im Voraus eine grundlegende Passwortrichtlinie aufzuschreiben. Beispielsweise verwenden wir die folgenden Schwierigkeitsregeln:
- Das Passwort muss eine Mindestlänge von 15 Zeichen haben.
- Das gleiche Zeichen sollte im Passwort nicht mehr als zweimal vorkommen.
- Zeichenklassen können in einem Passwort bis zu viermal wiederholt werden.
- Das Passwort muss Zeichen aus jeder Klasse enthalten.
- Das neue Passwort muss im Vergleich zum alten 5 neue Zeichen haben.
- GECOS-Prüfung aktivieren.
- Verbieten Sie die Wörter „Passwort, Pass, Wort, Putorius“
Nachdem wir nun die Richtlinie festgelegt haben, können wir die Datei bearbeiten /etc/security/pwquality.conf
um die Anforderungen an die Passwortkomplexität zu erhöhen. Nachfolgend finden Sie eine Beispieldatei mit Kommentaren zum besseren Verständnis.
# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius
Wie Sie vielleicht bemerkt haben, sind einige Parameter in unserer Datei redundant. Zum Beispiel der Parameter minclass
ist überflüssig, da wir bereits mindestens zwei Zeichen aus der Klasse verwenden, die Felder verwendet [u,l,d,o]credit
. Unsere Liste der Wörter, die nicht verwendet werden dürfen, ist ebenfalls überflüssig, da wir die viermalige Wiederholung einer Klasse verboten haben (alle Wörter in unserer Liste sind in Kleinbuchstaben geschrieben). Ich habe diese Optionen nur eingefügt, um zu veranschaulichen, wie Sie sie zum Konfigurieren Ihrer Passwortrichtlinie verwenden.
Sobald Sie Ihre Richtlinie erstellt haben, können Sie Benutzer dazu zwingen, ihre Passwörter bei der nächsten Anmeldung zu ändern.
Eine weitere seltsame Sache, die Ihnen vielleicht aufgefallen ist, sind die Felder [u,l,d,o]credit
eine negative Zahl enthalten. Dies liegt daran, dass Zahlen größer oder gleich 0 die Verwendung des Zeichens in Ihrem Passwort anerkennen. Wenn das Feld eine negative Zahl enthält, bedeutet dies, dass eine bestimmte Menge erforderlich ist.
Was sind Kredite?
Ich nenne sie Kredite, weil das ihren Zweck so genau wie möglich wiedergibt. Wenn der Parameterwert größer als 0 ist, addieren Sie zur Passwortlänge eine Anzahl von „Zeichen-Credits“ gleich „x“. Wenn beispielsweise alle Parameter (u,l,d,o)credit
auf 1 gesetzt und die erforderliche Passwortlänge 6 war, dann benötigen Sie 6 Zeichen, um die Längenanforderung zu erfüllen, da Sie für jeden Großbuchstaben, Kleinbuchstaben, jede Ziffer oder jedes andere Zeichen eine Gutschrift erhalten.
Wenn Sie installieren dcredit
Bei 2 könnte man theoretisch ein 9 Zeichen langes Passwort verwenden und 2 Zeichen Credits für Zahlen erhalten, dann könnte die Passwortlänge bereits 10 betragen.
Schauen Sie sich dieses Beispiel an. Ich habe die Passwortlänge auf 13, dcredit auf 2 und alles andere auf 0 gesetzt.
$ pwscore
Thisistwelve
Password quality check failed:
The password is shorter than 13 characters
$ pwscore
Th1sistwelve
18
Meine erste Prüfung schlug fehl, weil das Passwort weniger als 13 Zeichen lang war. Das nächste Mal änderte ich den Buchstaben „I“ in die Zahl „1“ und erhielt zwei Credits für die Zahlen, wodurch das Passwort gleich 13 wurde.
Passworttest
Package libpwquality
stellt die im Artikel beschriebene Funktionalität bereit. Es kommt auch mit einem Programm pwscore
, mit dem die Komplexität von Passwörtern überprüft werden soll. Wir haben es oben verwendet, um Kredite zu prüfen.
Dienstprogramm pwscore
liest aus
Der Passwort-Qualitätsfaktor hängt mit dem Parameter zusammen minlen
in der Konfigurationsdatei. Im Allgemeinen gilt ein Wert unter 50 als „normales Passwort“ und ein Wert darüber als „starkes Passwort“. Jedes Passwort, das Qualitätsprüfungen besteht (insbesondere erzwungene Verifizierung). cracklib
) muss Wörterbuchangriffen standhalten, und ein Passwort mit einem Wert über 50 mit der Einstellung minlen
sogar standardmäßig brute force
Anschläge.
Abschluss
Einstellung pwquality
– es ist einfach und unkompliziert im Vergleich zu den Unannehmlichkeiten der Verwendung cracklib
mit direkter Dateibearbeitung pam
. In diesem Leitfaden haben wir alles behandelt, was Sie zum Einrichten von Passwortrichtlinien auf Red Hat 7-, CentOS 7- und sogar Ubuntu-Systemen benötigen. Wir haben auch über das Konzept des Kredits gesprochen, über das selten ausführlich geschrieben wird, sodass dieses Thema für diejenigen, die es noch nicht kannten, oft unklar blieb.
Quellen:
Nützliche Links:
Source: habr.com