SSH-Sicherheit: Fehlgeschlagene Anmeldeversuche mit pam_faillock sperren
Das pam_tally2-Modul, das einst zum Sperren von Benutzerkonten nach einer bestimmten Anzahl fehlgeschlagener SSH-Anmeldeversuche verwendet wurde, wurde aufgrund von mehr Flexibilität und Sicherheitsoptionen veraltet und durch pam_faillock in RHEL-basierten Distributionen und anderen modernen Linux-Distributionen ersetzt.
Zuvor war das pam_tally2-Modul für das Zählen fehlgeschlagener Anmeldeversuche und das Sperren von Konten verantwortlich. Im Rahmen der Sicherheitsverbesserungen ist pam_faillock jedoch zum Standard für die Verwaltung fehlgeschlagener Anmeldeversuche in neueren Linux-Versionen geworden, indem es eine bessere Integration und mehr Konfigurationsoptionen bietet.
Übergang von pam_tally2 zu pam_faillock
Obwohl pam_tally2 aus zwei Teilen bestand – pam_tally2.so und dem pam_tally2-Befehl – wurde es zugunsten von pam_faillock eingestellt, das darauf ausgelegt ist, Anmeldeversuche sicherer und flexibler zu handhaben.
pam_faillock bietet ähnliche Funktionen, jedoch mit Verbesserungen wie:
- Verbesserte Protokollierung und Berichterstellung von fehlgeschlagenen Versuchen.
- Bessere Handhabung von Richtlinien für die Kontosperrung.
- Unterstützung für konfigurierbare Limits für fehlgeschlagene Anmeldeversuche und automatisches Entsperren des Kontos nach einer Zeitüberschreitung.
In diesem Artikel wird veranschaulicht, wie Sie SSH-Kontosperrungen mit dem pam_faillock-Modul nach einer bestimmten Anzahl fehlgeschlagener Anmeldeversuche konfigurieren.
So sperren und entsperren Sie Benutzerkonten mit pam_faillock
Öffnen Sie die beiden PAM-Konfigurationsdateien /etc/pam.d/password-auth und /etc/pam.d/sshd, abhängig von Ihrem System und dem Dienst, den Sie konfigurieren.
sudo vi /etc/pam.d/password-auth
sudo vi /etc/pam.d/sshd
Fügen Sie die folgenden Zeilen am Anfang des Authentifizierungsabschnitts hinzu, um Richtlinien für fehlgeschlagene Anmeldeversuche zu konfigurieren:
auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200
auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=1200
Fügen Sie dem Kontoabschnitt die folgende Zeile hinzu, um die Kontoverwaltung für Anmeldefehler zu aktivieren:
account required pam_faillock.so
Erläuterung der Parameter:
deny=3: Zugriff nach 3 fehlgeschlagenen Versuchen verweigern.even_deny_root: Wenden Sie die Richtlinie auch auf den Root-Benutzer an.unlock_time=1200: Entsperren Sie das Konto automatisch nach 20 Minuten (1200 Sekunden). Entfernen Sie diese Option, wenn das Konto bis zum manuellen Zurücksetzen gesperrt bleiben soll.audit: Protokolliert fehlgeschlagene Anmeldeversuche im Systemüberwachungsprotokoll.
Öffnen Sie nun die Datei /etc/security/faillock.conf und geben Sie an, wie viele fehlgeschlagene Versuche eine Sperre auslösen und wie lange die Sperrfrist dauern soll.
# Number of allowed failures before lockout
deny = 5
Lockout duration in minutes
unlock_time = 15
Path to the faillock database
Optional: You can specify where to store faillock information
faillock_path = /var/lib/faillock
Öffnen Sie als Nächstes die Datei /etc/ssh/sshd_config und aktivieren Sie die folgende Einstellung, um PAM für die SSH-Authentifizierung zu verwenden.
UsePAM yes
Um die Änderungen zu übernehmen, starten Sie den SSH-Dienst neu:
sudo systemctl restart sshd
So testen Sie die Funktion der SSH-Kontosperrung
Nachdem Sie die obige Konfiguration gespeichert haben, können Sie den Login-Lockout-Mechanismus testen, indem Sie 3 fehlgeschlagene Anmeldeversuche beim SSH-Server durchführen.
ssh [email
[email 's password:
Permission denied, please try again.
[email 's password:
Permission denied, please try again.
[email 's password:
Account locked due to 3 failed logins
So überprüfen Sie Fehler bei der SSH-Anmeldung von Benutzern
Verwenden Sie den folgenden Befehl, um die fehlgeschlagenen Anmeldeversuche für einen bestimmten Benutzer zu überprüfen:
sudo faillock --user username
Beispielausgabe:
Login Failures Latest failure From
user 3 10/17/2024 14:15 192.168.0.5
Zurücksetzen oder Entsperren eines Benutzerkontos
Verwenden Sie den folgenden Befehl, um die fehlgeschlagenen Versuche zurückzusetzen und das Benutzerkonto zu entsperren:
sudo faillock --user username --reset
Mit diesem Befehl wird die Anzahl der fehlgeschlagenen Versuche gelöscht und der Benutzer entsperrt.
Überprüfen, ob das Benutzerkonto entsperrt ist
Sie können bestätigen, dass das Konto entsperrt ist, indem Sie den Befehl faillock erneut ausführen:
sudo faillock --user username
Wenn es keine fehlgeschlagenen Anmeldeversuche gibt, ist die Ausgabe leer, was darauf hinweist, dass das Benutzerkonto entsperrt ist.
Schlussfolgerung
Zusammenfassend lässt sich sagen, dass das pam_faillock-Modul eine verbesserte und sicherere Möglichkeit bietet, fehlgeschlagene Anmeldeversuche zu verwalten und das inzwischen veraltete pam_tally2 zu ersetzen. Stellen Sie sicher, dass Sie Ihre PAM-Konfigurationsdateien aktualisieren, um pam_faillock zu verwenden und mit Best Practices und Sicherheitsstandards auf dem neuesten Stand zu bleiben.
Für weitere Informationen können Sie den man-pam_faillock über die Befehlszeile verwenden.
man pam_faillock