Website-Suche

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

Verwandte Artikel: