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:
Öffnen Sie zunächst ein Terminal, indem Sie auf das Terminal-Symbol in der Desktop-Umgebung klicken.
Sehen wir uns die Datei
/etc/login.defsan, 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 7Diese Einstellungen steuern:
PASS_MAX_DAYS: Maximale Anzahl der Tage, an denen ein Passwort gültig istPASS_MIN_DAYS: Minimale Anzahl der Tage, die zwischen Passwortänderungen erforderlich sindPASS_WARN_AGE: Anzahl der Warntage vor Ablauf des Passworts
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-passwordDiese Datei enthält mehrere Zeilen, die konfigurieren, wie Passwörter verwaltet werden, einschließlich Komplexitätsanforderungen.
Das System verwendet die
pwquality-Bibliothek, um die Passwortqualität zu erzwingen. Überprüfen wir, ob sie installiert ist:dpkg -l | grep libpwqualityWenn sie nicht installiert ist, können wir sie installieren:
sudo apt update sudo apt install -y libpam-pwqualityUntersuchen wir nun die Konfigurationsdatei für die Passwortqualität:
cat /etc/security/pwquality.confDiese 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ängedcredit: Gutschrift für Ziffern im Passwortucredit: Gutschrift für Großbuchstabenlcredit: Gutschrift für Kleinbuchstabenocredit: Gutschrift für Sonderzeichenretry: Anzahl der Wiederholungen für die Eingabe eines neuen Passwortsenforce_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
Erstellen wir zunächst eine Sicherungskopie der Originaldatei:
sudo cp /etc/login.defs /etc/login.defs.backupÖffnen Sie nun die Datei zur Bearbeitung mit nano:
sudo nano /etc/login.defsSuchen Sie im Editor nach diesen Parametern (verwenden Sie Strg+W zum Suchen):
PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGEÄndern Sie diese Werte, um eine sicherere Passwortalterungsrichtlinie zu implementieren:
- Ändern Sie
PASS_MAX_DAYSvon99999auf90(Passwörter laufen nach 90 Tagen ab) - Ändern Sie
PASS_MIN_DAYSvon0auf7(mindestens 7 Tage zwischen Passwortänderungen) - Ändern Sie
PASS_WARN_AGEvon7auf14(Benutzer 14 Tage vor Ablauf des Passworts warnen)
- Ändern Sie
Speichern Sie die Datei, indem Sie Strg+O und dann Eingabe drücken, und beenden Sie sie mit Strg+X.
Ü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:
Erstellen Sie einen neuen Benutzer:
sudo useradd -m testuserLegen Sie ein Passwort für den neuen Benutzer fest:
sudo passwd testuserGeben Sie bei Aufforderung ein einfaches Passwort ein (wir werden es in späteren Schritten verstärken).
Überprüfen Sie die Informationen zur Passwortalterung für den neuen Benutzer:
sudo chage -l testuserSie 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
Erstellen wir zunächst eine Sicherungskopie der PAM-Konfigurationsdatei:
sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.backupÖffnen Sie nun die Datei zur Bearbeitung:
sudo nano /etc/pam.d/common-passwordSuchen Sie nach einer Zeile, die
pam_pwquality.soenthält. Sie könnte so aussehen:password requisite pam_pwquality.so retry=3Ä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_rootDiese Konfiguration bedeutet:
minlen=12: Minimale Passwortlänge beträgt 12 Zeichendcredit=-1: Mindestens 1 Ziffer ist erforderlichucredit=-1: Mindestens 1 Großbuchstabe ist erforderlichlcredit=-1: Mindestens 1 Kleinbuchstabe ist erforderlichocredit=-1: Mindestens 1 Sonderzeichen ist erforderlichenforce_for_root: Wenden Sie diese Richtlinien auch auf den Root-Benutzer an
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
Ä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.confEntkommentieren (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 = 1Der Parameter
difok = 4erfordert, dass sich mindestens 4 Zeichen vom vorherigen Passwort unterscheiden.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
Testen wir unsere neue Richtlinie, indem wir das Passwort für unseren Testbenutzer ändern:
sudo passwd testuserVersuchen Sie, ein einfaches Passwort wie
password123einzugeben. Das System sollte es ablehnen, da es die Komplexitätsanforderungen nicht erfüllt.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
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Öffnen Sie die Datei zur Bearbeitung:
sudo nano /etc/pam.d/common-passwordSuchen Sie nach einer Zeile, die
pam_unix.soenthält. Sie könnte so aussehen:password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512Ändern Sie diese Zeile, um den Parameter
rememberhinzuzufügen. Fügen Sie am Ende der Zeileremember=5hinzu:password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 remember=5Dies verhindert, dass Benutzer eines ihrer 5 letzten Passwörter wiederverwenden.
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
Versuchen wir, das Passwort des Testbenutzers mehrmals zu ändern, um den Verlaufmechanismus in Aktion zu sehen:
sudo passwd testuserLegen Sie ein komplexes Passwort wie
Complex@Password1fest.Versuchen Sie nun, es sofort erneut zu ändern:
sudo passwd testuserVersuchen Sie, dasselbe Passwort erneut festzulegen. Das System sollte es aufgrund der Verlaufrichtlinie ablehnen.
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:
Überprüfen Sie zunächst den aktuellen Status eines Benutzerkontos:
sudo chage -l labexDies zeigt die Passwortalterungsinformationen für den aktuellen Benutzer an.
Um einen Benutzer zu zwingen, sein Passwort beim nächsten Login zu ändern:
sudo chage -d 0 testuserDies setzt das Datum der letzten Passwortänderung auf 0 und erzwingt eine Passwortänderung beim nächsten Login.
Um das Passwortablaufdatum manuell festzulegen:
sudo chage -E $(date -d "90 days" +%Y-%m-%d) testuserDies 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:
Anzeigen aller lokalen Benutzerkonten:
cat /etc/passwdÜberprüfen des Passwortstatus für einen bestimmten Benutzer:
sudo passwd -S testuserAuflisten von Benutzern mit einer bestimmten Passworteinstellung:
awk -F: '($3 >= 1000) {print $1}' /etc/passwdDies 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:
- Die wichtigsten Konfigurationsdateien, die Passwortrichtlinien steuern, erkundet
- Grundlegende Passwortalterungsrichtlinien konfiguriert, um regelmäßige Passwortaktualisierungen sicherzustellen
- Starke Passwortkomplexitätsanforderungen implementiert, um sichere Passwörter zu erzwingen
- Passwortverlaufskontrollen eingerichtet, um die Wiederverwendung von Passwörtern zu verhindern
- 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.



