So erzwingen Sie Passwortkomplexitätsrichtlinien in Linux

LinuxBeginner
Jetzt üben

Einführung

Die Aufrechterhaltung starker Passwortrichtlinien ist entscheidend für die Sicherung von Linux-Systemen. Dieses Tutorial führt Sie durch die Grundlagen von Linux-Passwortrichtlinien, die Konfiguration von Passwortkomplexitätsanforderungen und die Durchsetzung dieser Richtlinien, um die allgemeine Sicherheit Ihrer Linux-Umgebung zu erhöhen.

Verständnis der Linux-Passwortrichtliniendateien

Linux-Systeme verwenden mehrere Konfigurationsdateien zur Verwaltung von Passwortrichtlinien. In diesem Schritt werden wir diese Dateien untersuchen und ihre Bedeutung für die Passwortverwaltung verstehen.

Untersuchung der Passwortrichtlinien-Konfigurationsdateien

Beginnen wir mit der Untersuchung der wichtigsten Konfigurationsdateien, die Passwortrichtlinien in Ubuntu steuern:

  1. Öffnen Sie zunächst ein Terminal, indem Sie auf das Terminal-Symbol in der Desktop-Umgebung klicken.

  2. Sehen wir uns die Datei /etc/login.defs an, die grundlegende Passwortrichtlinieneinstellungen enthält:

    cat /etc/login.defs | grep "^PASS_"

    Sie sollten eine Ausgabe ähnlich dieser sehen:

    PASS_MAX_DAYS   99999
    PASS_MIN_DAYS   0
    PASS_WARN_AGE   7

    Diese Einstellungen steuern:

    • PASS_MAX_DAYS: Maximale Anzahl der Tage, an denen ein Passwort gültig ist
    • PASS_MIN_DAYS: Minimale Anzahl der Tage, die zwischen Passwortänderungen erforderlich sind
    • PASS_WARN_AGE: Anzahl der Warntage vor Ablauf des Passworts
  3. Eine weitere wichtige Datei ist /etc/pam.d/common-password, die die PAM (Pluggable Authentication Modules)-Einstellungen für die Passwortauthentifizierung verwaltet:

    cat /etc/pam.d/common-password

    Diese Datei enthält mehrere Zeilen, die konfigurieren, wie Passwörter verwaltet werden, einschließlich Komplexitätsanforderungen.

  4. Das System verwendet die pwquality-Bibliothek, um die Passwortqualität zu erzwingen. Überprüfen wir, ob sie installiert ist:

    dpkg -l | grep libpwquality

    Wenn sie nicht installiert ist, können wir sie installieren:

    sudo apt update
    sudo apt install -y libpam-pwquality
  5. Untersuchen wir nun die Konfigurationsdatei für die Passwortqualität:

    cat /etc/security/pwquality.conf

    Diese Datei hat möglicherweise die meisten Zeilen mit # auskommentiert, was bedeutet, dass Standardwerte verwendet werden.

Verständnis der Passwortrichtlinien-Parameter

Hier sind die wichtigsten Parameter, die Sie konfigurieren können:

  • minlen: Minimale Passwortlänge
  • dcredit: Gutschrift für Ziffern im Passwort
  • ucredit: Gutschrift für Großbuchstaben
  • lcredit: Gutschrift für Kleinbuchstaben
  • ocredit: Gutschrift für Sonderzeichen
  • retry: Anzahl der Wiederholungen für die Eingabe eines neuen Passworts
  • enforce_for_root: Ob diese Richtlinien für den Root-Benutzer erzwungen werden sollen

Diese Parameter bieten einen umfassenden Rahmen zur Steuerung der Passwortkomplexität und -sicherheit in Ihrem Linux-System.

Konfigurieren grundlegender Passwortrichtlinien

In diesem Schritt konfigurieren wir grundlegende Passwortrichtlinien, indem wir die Datei /etc/login.defs ändern, um Anforderungen an die Passwortalterung festzulegen.

Festlegen von Parametern für die Passwortalterung

  1. Erstellen wir zunächst eine Sicherungskopie der Originaldatei:

    sudo cp /etc/login.defs /etc/login.defs.backup
  2. Öffnen Sie nun die Datei zur Bearbeitung mit nano:

    sudo nano /etc/login.defs
  3. Suchen Sie im Editor nach diesen Parametern (verwenden Sie Strg+W zum Suchen):

    PASS_MAX_DAYS
    PASS_MIN_DAYS
    PASS_WARN_AGE
  4. Ändern Sie diese Werte, um eine sicherere Passwortalterungsrichtlinie zu implementieren:

    • Ändern Sie PASS_MAX_DAYS von 99999 auf 90 (Passwörter laufen nach 90 Tagen ab)
    • Ändern Sie PASS_MIN_DAYS von 0 auf 7 (mindestens 7 Tage zwischen Passwortänderungen)
    • Ändern Sie PASS_WARN_AGE von 7 auf 14 (Benutzer 14 Tage vor Ablauf des Passworts warnen)
  5. Speichern Sie die Datei, indem Sie Strg+O und dann Eingabe drücken, und beenden Sie sie mit Strg+X.

  6. Überprüfen Sie Ihre Änderungen:

    cat /etc/login.defs | grep "^PASS_"

    Sie sollten Folgendes sehen:

    PASS_MAX_DAYS   90
    PASS_MIN_DAYS   7
    PASS_WARN_AGE   14

Testen der Richtlinie für einen neuen Benutzer

Erstellen wir einen Testbenutzer, um zu sehen, wie diese Richtlinien angewendet werden:

  1. Erstellen Sie einen neuen Benutzer:

    sudo useradd -m testuser
  2. Legen Sie ein Passwort für den neuen Benutzer fest:

    sudo passwd testuser

    Geben Sie bei Aufforderung ein einfaches Passwort ein (wir werden es in späteren Schritten verstärken).

  3. Überprüfen Sie die Informationen zur Passwortalterung für den neuen Benutzer:

    sudo chage -l testuser

    Sie sollten sehen, dass die Passwortrichtlinien auf diesen neuen Benutzer angewendet wurden, wobei das Ablaufdatum basierend auf Ihren Einstellungen angezeigt wird.

Beachten Sie, dass diese Änderungen nur für neue Konten oder bei einer Passwortänderung gelten. Bestehende Konten behalten ihre vorherigen Einstellungen bei, bis Sie sie manuell aktualisieren.

Konfigurieren von Passwortkomplexitätsanforderungen

In diesem Schritt konfigurieren wir Regeln für die Passwortkomplexität, um starke Passwörter auf unserem System zu erzwingen.

Einrichten von Regeln für die Passwortkomplexität

  1. Erstellen wir zunächst eine Sicherungskopie der PAM-Konfigurationsdatei:

    sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.backup
  2. Öffnen Sie nun die Datei zur Bearbeitung:

    sudo nano /etc/pam.d/common-password
  3. Suchen Sie nach einer Zeile, die pam_pwquality.so enthält. Sie könnte so aussehen:

    password        requisite                       pam_pwquality.so retry=3
  4. Ändern Sie diese Zeile, um Komplexitätsanforderungen hinzuzufügen. Ersetzen Sie sie durch:

    password        requisite                       pam_pwquality.so retry=3 minlen=12 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 enforce_for_root

    Diese Konfiguration bedeutet:

    • minlen=12: Minimale Passwortlänge beträgt 12 Zeichen
    • dcredit=-1: Mindestens 1 Ziffer ist erforderlich
    • ucredit=-1: Mindestens 1 Großbuchstabe ist erforderlich
    • lcredit=-1: Mindestens 1 Kleinbuchstabe ist erforderlich
    • ocredit=-1: Mindestens 1 Sonderzeichen ist erforderlich
    • enforce_for_root: Wenden Sie diese Richtlinien auch auf den Root-Benutzer an
  5. Speichern Sie die Datei, indem Sie Strg+O und dann Eingabe drücken, und beenden Sie sie mit Strg+X.

Konfigurieren zusätzlicher Parameter in pwquality.conf

  1. Ändern wir nun die pwquality-Konfigurationsdatei für zusätzliche Kontrollen:

    sudo cp /etc/security/pwquality.conf /etc/security/pwquality.conf.backup
    sudo nano /etc/security/pwquality.conf
  2. Entkommentieren (entfernen Sie das ## am Anfang) und ändern Sie diese Zeilen, oder fügen Sie sie hinzu, falls sie nicht existieren:

    minlen = 12
    dcredit = -1
    ucredit = -1
    lcredit = -1
    ocredit = -1
    difok = 4
    enforce_for_root = 1

    Der Parameter difok = 4 erfordert, dass sich mindestens 4 Zeichen vom vorherigen Passwort unterscheiden.

  3. Speichern Sie die Datei, indem Sie Strg+O und dann Eingabe drücken, und beenden Sie sie mit Strg+X.

Testen der neuen Passwortkomplexitätsrichtlinie

  1. Testen wir unsere neue Richtlinie, indem wir das Passwort für unseren Testbenutzer ändern:

    sudo passwd testuser
  2. Versuchen Sie, ein einfaches Passwort wie password123 einzugeben. Das System sollte es ablehnen, da es die Komplexitätsanforderungen nicht erfüllt.

  3. Versuchen Sie nun ein komplexes Passwort, das alle Anforderungen erfüllt, z. B. Secure@Password123.

    Wenn Sie alles richtig konfiguriert haben, sollte das System dieses Passwort akzeptieren.

Die Komplexitätsanforderungen stellen sicher, dass Benutzer starke Passwörter erstellen, wodurch es für Angreifer schwieriger wird, diese zu erraten oder zu knacken.

Implementieren von Passwortverlaufskontrollen

In diesem Schritt konfigurieren wir Passwortverlaufskontrollen, um zu verhindern, dass Benutzer ihre aktuellen Passwörter wiederverwenden.

Konfigurieren des Passwortverlaufs

  1. Erstellen wir zunächst eine Sicherungskopie der PAM-Konfigurationsdatei, falls Sie dies noch nicht getan haben:

    sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.backup2
  2. Öffnen Sie die Datei zur Bearbeitung:

    sudo nano /etc/pam.d/common-password
  3. Suchen Sie nach einer Zeile, die pam_unix.so enthält. Sie könnte so aussehen:

    password        [success=1 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512
  4. Ändern Sie diese Zeile, um den Parameter remember hinzuzufügen. Fügen Sie am Ende der Zeile remember=5 hinzu:

    password        [success=1 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512 remember=5

    Dies verhindert, dass Benutzer eines ihrer 5 letzten Passwörter wiederverwenden.

  5. Speichern Sie die Datei, indem Sie Strg+O und dann Eingabe drücken, und beenden Sie sie mit Strg+X.

Verstehen, wie der Passwortverlauf funktioniert

Der Parameter remember=5 weist das System an, die Hashes der letzten 5 Passwörter für jeden Benutzer zu speichern. Wenn ein Benutzer versucht, sein Passwort zu ändern, vergleicht das System das neue Passwort mit diesen gespeicherten Hashes, um sicherzustellen, dass es nicht wiederverwendet wird.

Der Passwortverlauf wird in der Datei /etc/security/opasswd gespeichert. Überprüfen wir, ob diese Datei existiert:

ls -la /etc/security/opasswd

Wenn sie nicht existiert, wird sie automatisch erstellt, wenn der erste Benutzer sein Passwort mit der neuen Richtlinie ändert.

Testen des Passwortverlaufs

  1. Versuchen wir, das Passwort des Testbenutzers mehrmals zu ändern, um den Verlaufmechanismus in Aktion zu sehen:

    sudo passwd testuser
  2. Legen Sie ein komplexes Passwort wie Complex@Password1 fest.

  3. Versuchen Sie nun, es sofort erneut zu ändern:

    sudo passwd testuser
  4. Versuchen Sie, dasselbe Passwort erneut festzulegen. Das System sollte es aufgrund der Verlaufrichtlinie ablehnen.

  5. Versuchen Sie dies noch ein paar Mal mit verschiedenen Passwörtern und versuchen Sie dann, ein früheres Passwort wiederzuverwenden. Sie sollten feststellen, dass Sie keines Ihrer 5 letzten Passwörter wiederverwenden können.

Dieser Passwortverlaufmechanismus fügt eine weitere Sicherheitsebene hinzu, indem er die Wiederverwendung von Passwörtern verhindert, was eine häufige Sicherheitslücke darstellt.

Anwenden von Passwortrichtlinien auf bestehende Benutzer

In diesem letzten Schritt erfahren wir, wie wir unsere neuen Passwortrichtlinien auf bestehende Benutzer anwenden und Benutzerpasswortinformationen verwalten.

Verstehen der Passwortablaufverwaltung

Wenn Sie die Passwortrichtlinien in /etc/login.defs ändern, gelten die neuen Einstellungen nur für neu erstellte Benutzer oder wenn Sie bestehende Benutzer manuell aktualisieren. Sehen wir uns an, wie man bestehende Benutzer verwaltet:

  1. Überprüfen Sie zunächst den aktuellen Status eines Benutzerkontos:

    sudo chage -l labex

    Dies zeigt die Passwortalterungsinformationen für den aktuellen Benutzer an.

  2. Um einen Benutzer zu zwingen, sein Passwort beim nächsten Login zu ändern:

    sudo chage -d 0 testuser

    Dies setzt das Datum der letzten Passwortänderung auf 0 und erzwingt eine Passwortänderung beim nächsten Login.

  3. Um das Passwortablaufdatum manuell festzulegen:

    sudo chage -E $(date -d "90 days" +%Y-%m-%d) testuser

    Dies setzt das Kontenablaufdatum auf 90 Tage ab heute.

Festlegen des maximalen Passwortalters für bestehende Benutzer

Um die Richtlinie für das maximale Passwortalter auf einen bestehenden Benutzer anzuwenden:

sudo chage -M 90 testuser

Dies setzt das maximale Passwortalter für den Benutzer auf 90 Tage.

Festlegen des minimalen Passwortalters für bestehende Benutzer

Um die Richtlinie für das minimale Passwortalter auf einen bestehenden Benutzer anzuwenden:

sudo chage -m 7 testuser

Dies setzt das minimale Passwortalter für den Benutzer auf 7 Tage.

Festlegen der Passwortablaufwarnung für bestehende Benutzer

Um die Richtlinie für die Passwortablaufwarnung auf einen bestehenden Benutzer anzuwenden:

sudo chage -W 14 testuser

Dies setzt die Warnperiode für den Passwortablauf für den Benutzer auf 14 Tage.

Anzeigen von Benutzerpasswortinformationen

Sie können die Passwortinformationen eines Benutzers mit verschiedenen Befehlen überprüfen:

  1. Anzeigen aller lokalen Benutzerkonten:

    cat /etc/passwd
  2. Überprüfen des Passwortstatus für einen bestimmten Benutzer:

    sudo passwd -S testuser
  3. Auflisten von Benutzern mit einer bestimmten Passworteinstellung:

    awk -F: '($3 >= 1000) {print $1}' /etc/passwd

    Dies listet alle regulären Benutzer auf dem System auf (UID >= 1000).

Anwenden von Richtlinien auf alle Benutzer

Um die neuen Passwortrichtlinien auf alle regulären Benutzer des Systems anzuwenden, können Sie ein einfaches Skript verwenden. Hier ist ein Beispiel:

for user in $(awk -F: '($3 >= 1000) && ($3 < 60000) {print $1}' /etc/passwd); do
  echo "Updating password policy for user: $user"
  sudo chage -M 90 -m 7 -W 14 $user
done

Dieses Skript aktualisiert alle regulären Benutzer mit unseren neuen Passwortalterungsrichtlinien.

Durch die Anwendung dieser Richtlinien auf bestehende Benutzer stellen Sie eine konsistente Passwortsicherheit über Ihr gesamtes System sicher.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie robuste Passwortrichtlinien in Linux konfigurieren und durchsetzen können. Sie haben:

  1. Die wichtigsten Konfigurationsdateien, die Passwortrichtlinien steuern, erkundet
  2. Grundlegende Passwortalterungsrichtlinien konfiguriert, um regelmäßige Passwortaktualisierungen sicherzustellen
  3. Starke Passwortkomplexitätsanforderungen implementiert, um sichere Passwörter zu erzwingen
  4. Passwortverlaufskontrollen eingerichtet, um die Wiederverwendung von Passwörtern zu verhindern
  5. Gelernt, wie man Passwortrichtlinien auf bestehende Benutzer anwendet

Diese Passwortrichtlinienkonfigurationen sind für die Aufrechterhaltung einer sicheren Linux-Umgebung unerlässlich. Durch die Implementierung starker Passwortanforderungen, regelmäßiger Passwortrotation und die Verhinderung der Passwortwiederverwendung haben Sie die Sicherheitslage Ihres Systems gegen unbefugten Zugriff und potenzielle Verstöße erheblich verbessert.

Denken Sie daran, dass effektive Passwortrichtlinien nur ein Aspekt einer umfassenden Sicherheitsstrategie sind. Sie sollten mit anderen Sicherheitsmaßnahmen wie regelmäßigen Systemaktualisierungen, ordnungsgemäßer Benutzerverwaltung und kontinuierlichem Sicherheitsmonitoring kombiniert werden.