Erstellen einer Passwortrichtlinie unter Linux

Hallo wieder! Der Unterricht in der neuen Kursgruppe beginnt morgen „Linux-Administrator“In diesem Zusammenhang veröffentlichen wir einen nützlichen Artikel zu diesem Thema.

Erstellen einer Passwortrichtlinie unter Linux

Im vorherigen Tutorial haben wir Ihnen die Verwendung erklärt pam_cracklibum Passwörter auf Systemen komplexer zu machen Red Hat 6 oder CentOS. In Red Hat 7 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.confum 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. System.

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 Standard. Führen Sie einfach das Dienstprogramm aus und geben Sie Ihr Passwort ein. Es wird ein Fehler oder ein Wert zwischen 0 und 100 angezeigt.

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:

pwquality-Manpage
pam_pwquality-Manpage
pwscore-Manpage

Nützliche Links:

Sichere Passwörter wählen – Bruce Schneier
Lorrie Faith Cranor spricht über ihr Passwortstudium an der CMU
Der berüchtigte xkcd-Cartoon zum Thema Entropie

Source: habr.com

Kommentar hinzufügen