Erstellung von Passwortrichtlinien in Linux

Und wieder hallo! Bereits morgen beginnen die Unterrichtsstunden in der neuen Gruppe des Kurses „Linux-Administrator“, aus diesem Grund veröffentlichen wir einen nützlichen Artikel zu diesem Thema.

Erstellung von Passwortrichtlinien in Linux

Im vorherigen Tutorial haben wir erklärt, wie man pam_cracklib, um Passwörter in den Systemen zu komplizieren Red Hat 6 oder CentOS. In Red Hat 7 pam_pwquality hat cracklib als pam als Standardmodul zur Überprüfung von Passwörtern ersetzt. Das Modul pam_pwquality wird auch in Ubuntu und CentOS sowie in vielen anderen Betriebssystemen unterstützt. Dieses Modul vereinfacht die Erstellung von Passwortrichtlinien, um sicherzustellen, dass die Benutzer Ihre Anforderungen an die Passwortkomplexität akzeptieren.

Lange Zeit war der gängige Ansatz für Passwörter, den Benutzer zu zwingen, darin Groß- und Kleinbuchstaben, Zahlen oder andere Zeichen zu verwenden. Diese grundlegenden Regeln zur Passwortkomplexität wurden in den letzten zehn Jahren aktiv propagiert. Es gab viele Diskussionen darüber, ob dies eine gute Praxis ist oder nicht. Das Hauptargument gegen das Setzen solcher komplexen Bedingungen war, dass Benutzer Passwörter auf Papier notieren und sie unsicher aufbewahren.

Eine andere Politik, die kürzlich in Frage gestellt wurde, zwingt die Benutzer, ihre Passwörter alle x Tage zu ändern. Es wurden einige Studien durchgeführt, die zeigten, dass dies ebenfalls die Sicherheit schädigt.

Über das Thema dieser Diskussionen wurden zahlreiche Artikel geschrieben, die das eine oder andere Standpunkt rechtfertigten. Aber das ist nicht das, was wir in diesem Artikel besprechen werden. Dieser Artikel wird darüber sprechen, wie man die Passwortkomplexität korrekt festlegt, anstatt die Sicherheitsrichtlinien zu verwalten.

Parameter der Passwortrichtlinien

Unten sehen Sie die Parameter der Passwortrichtlinien und eine kurze Beschreibung jedes einzelnen. Viele von ihnen ähneln den Parametern im Modul cracklib. Dieser Ansatz erleichtert das Übertragen Ihrer Richtlinien aus dem alten System.

  • difok – Anzahl der Zeichen in Ihrem neuen Passwort, die NICHT in Ihrem alten Passwort vorhanden sein dürfen. (Standard 5)
  • minlen – Minimale Länge des Passworts. (Standard 9)
  • ucredit – Maximale Anzahl an Punkten für die Verwendung von Großbuchstaben (wenn der Parameter > 0), oder die minimal erforderliche Anzahl an Großbuchstaben (wenn der Parameter < 0). Standardmäßig 1.
  • lcredit – Maximale Anzahl der Credits für die Verwendung von Kleinbuchstaben (wenn der Parameter > 0 ist) oder die minimale erforderliche Anzahl von Kleinbuchstaben (wenn der Parameter < 0 ist). Standardmäßig 1.
  • dcredit – Maximale Anzahl der Credits für die Verwendung von Ziffern (wenn der Parameter > 0 ist) oder die minimale erforderliche Anzahl von Ziffern (wenn der Parameter < 0 ist). Standardmäßig 1.
  • ocredit – Maximale Anzahl der Credits für die Verwendung anderer Zeichen (wenn der Parameter > 0 ist) oder die minimale erforderliche Anzahl anderer Zeichen (wenn der Parameter < 0 ist). Standardmäßig 1.
  • minclass – Legt die erforderliche Anzahl von Klassen fest. Die Klassen umfassen die oben genannten Parameter (Großbuchstaben, Kleinbuchstaben, Ziffern und andere Zeichen). Standardmäßig 0.
  • maxrepeat – Maximale Anzahl von Wiederholungen eines Zeichens im Passwort. Standardmäßig 0.
  • maxclassrepeat – Maximale Anzahl von aufeinanderfolgenden Zeichen in einer Klasse. Standardmäßig 0.
  • gecoscheck – Überprüft, ob das Passwort Wörter aus den GECOS-Zeilen des Benutzers enthält. (Benutzerinformationen, d.h. richtiger Name, Standort usw.) Standardmäßig 0 (deaktiviert).
  • dictpath – Pfad zu den cracklib-Wörterbüchern.
  • badwords – Durch Leerzeichen getrennte Wörter, die in Passwörtern verboten sind (z.B. Firmenname, das Wort „passwort“ usw.).

Wenn der Begriff Credits seltsam klingt, ist das in Ordnung, es ist normal. Wir werden in den folgenden Abschnitten näher darauf eingehen.

Konfiguration der Passwortpolitik

Bevor Sie mit dem Bearbeiten der Konfigurationsdateien beginnen, ist es eine gute Praxis, die grundlegende Passwortpolitik im Voraus festzuhalten. Zum Beispiel werden wir die folgenden Schwierigkeitsregeln verwenden:

  • Das Passwort muss eine Mindestlänge von 15 Zeichen haben.
  • Im Passwort darf dasselbe Zeichen nicht mehr als zweimal wiederholt werden.
  • In Passwörtern dürfen Zeichengruppen bis zu viermal wiederholt werden.
  • Das Passwort muss Zeichen aus jeder Gruppe enthalten.
  • Das neue Passwort muss 5 neue Zeichen im Vergleich zum alten enthalten.
  • GECOS-Überprüfung aktivieren.
  • Wörter wie „password, pass, word, putorius“ verbieten.

Jetzt, wo wir die Politik dargelegt haben, können wir die Datei bearbeiten, /etc/security/pwquality.conf, um die Anforderungen an die Passwortkomplexität zu verstärken. Hier ist ein Beispiel für eine Datei mit Kommentaren für ein besseres 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 überflüssig. Zum Beispiel der Parameter minclass ist überflüssig, da wir bereits mindestens zwei Zeichen aus der Klasse verwenden, indem wir die Felder nutzen [u,l,d,o]credit. Unsere Liste der Wörter, die nicht verwendet werden dürfen, ist ebenfalls überflüssig, da wir eine Wiederholung einer Klasse viermal verboten haben (alle Wörter in unserer Liste sind in Kleinbuchstaben geschrieben). Ich habe diese Parameter nur hinzugefügt, um zu demonstrieren, wie man sie zur Anpassung der Passwortpolitik verwendet.
Sobald Sie Ihre Richtlinie erstellt haben, können Sie die Benutzer zwingen, ihre Passwörter bei ihrem nächsten Anmelden zu ändern System.

Eine weitere seltsame Sache, die Sie möglicherweise bemerkt haben, ist, dass die Felder [u,l,d,o]credit eine negative Zahl enthalten. Das liegt daran, dass Zahlen, die größer oder gleich 0 sind, einen Kredit für die Verwendung eines Zeichens in Ihrem Passwort geben. Wenn das Feld eine negative Zahl enthält, bedeutet dies, dass eine bestimmte Anzahl erforderlich ist.

Was sind Kredite (credit)?

Ich nenne sie Kredite, da dies ihren Zweck am besten beschreibt. Wenn der Wert des Parameters größer als 0 ist, erhöhen Sie die Anzahl der „Kredite pro Zeichen“ um „x“ zur Länge des Passworts. Zum Beispiel, wenn alle Parameter (u,l,d,o)credit auf 1 gesetzt werden und die erforderliche Passwortlänge 6 beträgt, benötigen Sie 6 Zeichen, um die Längenanforderung zu erfüllen, da jedes Großbuchstaben-, Kleinbuchstaben-, Zahlen- oder Sonderzeichen Ihnen einen Kredit gibt.

Wenn Sie auf dcredit 2 setzen, können Sie theoretisch ein Passwort mit einer Länge von 9 Zeichen verwenden und 2 Kredite für Zahlen erhalten, und dann könnte die Passwortlänge bereits 10 betragen.

Sehen Sie sich dieses Beispiel an. Ich habe die Passwortlänge auf 13 gesetzt, dcredit auf 2 gesetzt und alles andere auf 0.

$ pwscore
Thisistwelve
Passwortqualitätsprüfung fehlgeschlagen:
Das Passwort ist kürzer als 13 Zeichen

$ pwscore
Th1sistwelve
18

Mein erster Test ist fehlgeschlagen, da die Passwortlänge weniger als 13 Zeichen betrug. Bei meinem nächsten Versuch habe ich den Buchstaben „I“ durch die Zahl „1“ ersetzt und zwei Kredite für Zahlen erhalten, was das Passwort auf 13 brachte.

Passworttest

Paket libpwquality stellt die in diesem Artikel beschriebene Funktionalität bereit. Es wird auch das Programm pwscore, das dazu dient, die Passwortkomplexität zu überprüfen, mitgeliefert. Wir haben es oben verwendet, um die Kredite zu überprüfen.
Das Tool pwscore liest aus stdin. Führen Sie einfach das Dienstprogramm aus und geben Sie Ihr Passwort ein, es gibt entweder einen Fehler oder einen Wert von 0 bis 100 zurück.

Der Passwortqualitätswert steht im Verhältnis zum Parameter minlen in der Konfigurationsdatei. Insgesamt wird ein Wert unter 50 als „normales Passwort“ betrachtet, während alles darüber als „starkes Passwort“ gilt. Jedes Passwort, das die Qualitätsprüfungen besteht (insbesondere die obligatorische Überprüfung cracklib) muss gegen Wörterbuchangriffe bestehen, und ein Passwort mit einem Wert über 50 bei der Einstellung minlen standardmäßig sogar Brute-Force- Angriffen standhalten.

Fazit

Einstellungen pwquality – ist einfach und unkompliziert im Vergleich zu den Unannehmlichkeiten der direkten Bearbeitung von Dateien. cracklib . In diesem Handbuch haben wir alles betrachtet, was Sie für die Einrichtung von Passwortrichtlinien in Red Hat 7, CentOS 7 und sogar Ubuntu-Systemen benötigen. Auch haben wir das Konzept von Krediten behandelt, über das selten ausführlich geschrieben wird, weshalb dieses Thema oft unklar blieb für diejenigen, die zuvor nicht damit konfrontiert wurden. pampwquality man page

Quellen:

pam_pwquality man page
pwscore man page
Sichere Passwörter wählen – Bruce Schneier

Nützliche Links:

Lorrie Faith Cranor spricht über ihre Passwortstudien an der CMU
Der berüchtigte xkcd Cartoon über Entropie
🥇Erstellung von Passwortrichtlinien in Linux | ProHoster

Quelle: habr.com

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster