Lokale Linux-Passwortrichtlinie für Komplexität und Alter konfigurieren
In diesem Schritt erfahren Sie, wie Sie die Sicherheit eines Linux-Systems durch die Konfiguration einer robusten Passwortrichtlinie erhöhen können. Eine starke Passwortrichtlinie ist eine grundlegende Sicherheitsmaßnahme, die zwei kritische Aspekte erzwingt: Komplexität und Alter. Komplexitätsregeln stellen sicher, dass Passwörter nicht leicht erraten werden können, indem sie eine Mischung von Zeichentypen erfordern, während Altersregeln Benutzer zwingen, ihre Passwörter regelmäßig zu ändern, wodurch das Risiko kompromittierter Anmeldeinformationen verringert wird. Sie verwenden Standard-Linux-Dienstprogramme, um systemweite Konfigurationsdateien zu ändern und diese Richtlinien anzuwenden.
Zuerst betrachten wir die Passwortkomplexität. Auf modernen Debian-basierten Systemen wie Ubuntu wird die Passwortqualität durch das Modul pam_pwquality verwaltet. Dessen Konfiguration ist in der Datei /etc/security/pwquality.conf gespeichert.
Beginnen wir mit der Überprüfung der Standardeinstellungen. Verwenden Sie den Befehl cat, um den Inhalt der Konfigurationsdatei anzuzeigen. Wir verwenden grep, um auskommentierte Zeilen und leere Zeilen herauszufiltern, um die Ausgabe übersichtlicher zu gestalten.
grep -vE '^#|^$' /etc/security/pwquality.conf
Möglicherweise sehen Sie einige Standardeinstellungen, oder die Datei ist leer von aktiven Konfigurationen. Nun erzwingen wir eine strengere Richtlinie. Wir müssen diese Datei mit Administratorrechten bearbeiten, daher verwenden wir sudo mit dem Editor nano.
sudo nano /etc/security/pwquality.conf
Fügen Sie die folgenden Zeilen zur Datei hinzu, um unsere neue Richtlinie durchzusetzen. Diese Einstellungen erfordern, dass das Passwort mindestens 10 Zeichen lang ist und mindestens eine Ziffer, einen Großbuchstaben und einen Kleinbuchstaben enthält.
minlen = 10
dcredit = -1
ucredit = -1
lcredit = -1
Lassen Sie uns diese Optionen aufschlüsseln:
minlen = 10: Legt die minimal akzeptable Länge für das Passwort auf 10 Zeichen fest.
dcredit = -1: Erfordert mindestens eine Ziffer. Die negative Zahl bedeutet „mindestens eins“.
ucredit = -1: Erfordert mindestens einen Großbuchstaben.
lcredit = -1: Erfordert mindestens einen Kleinbuchstaben.
Nachdem Sie diese Zeilen hinzugefügt haben, speichern Sie die Datei und beenden Sie nano, indem Sie Ctrl+X, dann Y und Enter drücken.
Als Nächstes konfigurieren wir das Passwortalter (Aging). Diese Einstellungen definieren die maximale und minimale Gültigkeitsdauer eines Passworts. Die Standardwerte für neu erstellte Benutzerkonten sind in /etc/login.defs gespeichert.
Verwenden Sie grep, um die relevanten Einstellungen in dieser Datei zu finden.
grep -E 'PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_WARN_AGE' /etc/login.defs
Sie werden die Standardwerte sehen, die oft für PASS_MAX_DAYS auf einen sehr hohen Wert gesetzt sind, wodurch die Ablaufsteuerung effektiv deaktiviert wird.
## PASS_MAX_DAYS Maximum number of days a password may be used.
PASS_MAX_DAYS 99999
## PASS_MIN_DAYS Minimum number of days allowed between password changes.
PASS_MIN_DAYS 0
## PASS_WARN_AGE Number of days warning is given before a password expires.
PASS_WARN_AGE 7
Lassen Sie uns eine Ablaufrichtlinie von 9000 Tagen erzwingen. Öffnen Sie die Datei mit sudo nano.
sudo nano /etc/login.defs
Suchen Sie die Zeile PASS_MAX_DAYS und ändern Sie ihren Wert von 99999 auf 9000. Sie können auch PASS_MIN_DAYS auf 7 setzen, um zu verhindern, dass Benutzer ihr Passwort zu häufig ändern.
## PASS_MAX_DAYS Maximum number of days a password may be used.
PASS_MAX_DAYS 9000
## PASS_MIN_DAYS Minimum number of days allowed between password changes.
PASS_MIN_DAYS 7
## PASS_WARN_AGE Number of days warning is given before a password expires.
PASS_WARN_AGE 14
Speichern Sie die Datei und beenden Sie nano. Diese Einstellungen in /etc/login.defs gelten für Benutzer, die nach dieser Änderung erstellt werden. Um die Richtlinie auf einen bestehenden Benutzer, wie unseren Benutzer labex, anzuwenden, verwenden wir den Befehl chage.
Überprüfen Sie zunächst die aktuellen Alterungsinformationen für den Benutzer labex.
sudo chage -l labex
Die Ausgabe zeigt, dass das Passwort niemals abläuft.
Last password change : Jul 22, 2023
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
Wenden Sie nun chage mit dem Flag -M an, um die maximale Anzahl von Tagen auf 9000 für den Benutzer labex festzulegen.
sudo chage -M 9000 labex
Überprüfen Sie die Änderung, indem Sie die Alterungsinformationen des Benutzers erneut überprüfen.
sudo chage -l labex
Sie werden nun sehen, dass das Datum für Password expires aktualisiert wurde und die maximale Anzahl von Tagen auf 9000 gesetzt ist, wodurch die Alterungsrichtlinie erfolgreich angewendet wurde.
Last password change : Jul 22, 2023
Password expires : Jan 01, 2048
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 9000
Number of days of warning before password expires : 7
Sie haben nun erfolgreich sowohl die Passwortkomplexitäts- als auch die Alterungsrichtlinien auf Ihrem Linux-System konfiguriert.