Die Härtung von Linux-Servern ist eine der wichtigsten Aufgaben für Systemadministratoren, wenn es um Produktionsserver geht. Es wird empfohlen, die Richtlinie für Anmelde- oder SSH-Versuche zu aktivieren, was bedeutet, dass das Benutzerkonto nach n fehlgeschlagenen (oder falschen) Anmelde- oder SSH-Versuchen automatisch gesperrt werden sollte.
In Linux-Distributionen wie CentOS, RHEL und Fedora wird dies durch die Verwendung des Pam-Moduls „pam_faillock erreicht “ und für Debian-ähnliche Distributionen kann dies mit „pam_tally2 erreicht werden ” pam-Modul.
In diesem Tutorial lernen wir, wie man Benutzerkonten nach n fehlgeschlagenen Anmeldeversuchen in CentOS, RHEL, Fedora, Debian &Ubuntu
sperrtFür CentOS / RHEL / Fedora
Fügen Sie die folgenden Zeilen in zwei Dateien hinzu /etc/pam.d/password-auth &/etc/pam.d/system-auth,
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600 account required pam_faillock.so
Wo,
- Audit –> aktiviert Audit-Protokolle für Benutzeranmeldeversuche in einer sicheren Protokolldatei
- Deny=3 –> es wird den Benutzer nach 3 erfolglosen Anmeldeversuchen sperren, Sie können diese Zahl nach Ihren Anforderungen ändern
- unlock_time=600 –> bedeutet, dass das Benutzerkonto für 10 Minuten (600 Sekunden) gesperrt bleibt, wenn Sie möchten, dass das Benutzerkonto für immer gesperrt wird, setzen Sie diesen Parameter auf „unlock_time=never“
Hinweis :Um auch das Root-Konto nach n falschen Anmeldungen zu sperren, fügen Sie „even_deny_root hinzu ”-Parameter in Auth-Abschnittszeilen, Beispiel ist unten gezeigt
auth required pam_faillock.so preauth silent audit even_deny_root deny=3 unlock_time=600 auth [default=die] pam_faillock.so authfail audit even_deny_root deny=3 unlock_time=600
Wie wir oben sehen können, haben wir zwei Zeilen für den Authentifizierungsabschnitt und eine Zeile für den Kontoabschnitt. Die Reihenfolge ist sehr wichtig, wenn diese Zeilen zu den Dateien hinzugefügt werden. Das Beispiel wird unten gezeigt, wo diese Zeilen hinzugefügt werden müssen,
[[email protected] ~]# vi /etc/pam.d/password-auth
[[email protected] ~]# vi /etc/pam.d/system-auth
Nachdem Sie Änderungen in beiden Dateien vorgenommen haben, starten Sie den ssh-Dienst mit dem folgenden systemctl-Befehl neu,
[[email protected] ~]# systemctl restart sshd
Lassen Sie uns testen, ob das Benutzerkonto nach drei erfolglosen Anmeldeversuchen gesperrt wird oder nicht.
Nehmen wir an, wir haben ein lokales Konto mit dem Namen „pkumar“, wir werden versuchen, unser Linux-System mit diesem Konto mit falschen Passwörtern zu sshen,
$ ssh [email protected] [email protected]'s password: [email protected]'s password: [email protected]'s password: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Sehen Sie sich jetzt sichere Protokolle mit dem Befehl tail an,
[[email protected] ~]# tail /var/log/secure
Die obigen Protokolle bestätigen, dass das Konto nach drei falschen Anmeldeversuchen gesperrt wurde. Lassen Sie uns dies auch anhand des Faillock-Befehls überprüfen,
[[email protected] ~]# faillock --user pkumar pkumar: When Type Source Valid 2019-12-15 01:50:39 RHOST 192.168.29.157 V 2019-12-15 01:50:43 RHOST 192.168.29.157 V 2019-12-15 01:50:47 RHOST 192.168.29.157 V [[email protected] ~]#
Um diese erfolglosen Anmeldeversuche zu leeren oder zu löschen, führen Sie den folgenden Faillock-Befehl aus,
[[email protected] ~]# faillock --user pkumar --reset [[email protected] ~]# faillock --user pkumar pkumar: When Type Source Valid [[email protected] ~]#
Wechseln wir zu einer Debian-ähnlichen Distribution (Ubuntu, Linux Mint und Debian)
Für Debian, Ubuntu und Linux Mint
Fügen Sie die folgende Zeile in die Datei „/etc/pam.d/common-auth“,
einauth required pam_tally2.so onerr=fail deny=3 unlock_time=600 audit
Wenn Sie nach drei falschen Anmeldungen auch das Root-Konto sperren möchten, fügen Sie die folgende Zeile hinzu ,
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 audit even_deny_root root_unlock_time=600
Wo:
- Onerr=fail –> Im Fehlerfall ein Fail ausgeben
- deny=3 –> Nach drei erfolglosen Anmeldeversuchen wird das Konto gesperrt
- unlock_time=600 –> Dies bedeutet, dass das Konto für 10 Minuten oder 600 Sekunden gesperrt bleibt
- audit –> Es bedeutet, die Protokolle in der audit.log-Datei zu prüfen
- even_deny_root –> Sperren Sie das Root-Konto nach drei falschen Anmeldungen
- root_unlock_time=600 –> Das Root-Konto bleibt nach 3 erfolglosen Anmeldeversuchen für 10 Minuten oder 600 Sekunden gesperrt
Lassen Sie uns die obige Diskussionszeile in der Datei „/etc/pam.d/common-auth hinzufügen ” mit dem vi-Editor,
[email protected]:~$ sudo vi /etc/pam.d/common-auth
Nachdem Sie die obigen Änderungen vorgenommen haben, speichern und beenden Sie die Datei und starten Sie den ssh-Dienst mit dem folgenden Befehl neu:
[email protected]:~$ sudo systemctl restart sshd
Lassen Sie uns testen, ob Konten nach 3 falschen SSH-Anmeldungen gesperrt werden,
Nehmen wir an, wir haben einen lokalen „devops“-Benutzer, wir werden versuchen, das Ubuntu-System mit falschen Passwörtern zu sshen
$ ssh [email protected] [email protected]'s password: [email protected]'s password: d [email protected]'s password: Permission denied (publickey,password).
Sehen Sie sich jetzt die Authentifizierungsprotokolldatei an, um zu sehen, ob falsche Anmeldeversuche erfasst werden oder nicht,
[email protected]:~$ tail /var/log/auth.log
Die obigen Protokolle bestätigen, dass das Konto gesperrt wurde, lassen Sie uns dies anhand des Befehls pam_tally2 überprüfen,
[email protected]:~$ sudo pam_tally2 -u devops Login Failures Latest failure From devops 6 12/15/19 07:45:02 192.168.29.157 [email protected]:~$
Um diese erfolglosen Anmeldeversuche zu löschen, verwenden Sie den folgenden pam_tally2-Befehl,
[email protected]:~$ sudo pam_tally2 -u devops --reset Login Failures Latest failure From devops 6 12/15/19 07:45:02 192.168.29.157 [email protected]:~$ [email protected]:~$ sudo pam_tally2 -u devops Login Failures Latest failure From devops 0 [email protected]:~$
Damit ist der Artikel abgeschlossen. Bitte zögern Sie nicht, Feedback und Kommentare zu teilen.