Ich versuche, eine Kontosperrung in Ubuntu mit pam_tally zu implementieren. Ich habe versucht, die folgenden Zeilen hinzuzufügen /etc/pam.d/common-auth
auth required pam_tally.so deny=3
account required pam_tally.so
Die Fehler werden protokolliert, aber das Konto wird nicht gesperrt, selbst wenn die maximale Anzahl an Fehlern erreicht wird. Ich versuche dies, indem ich mich direkt anmelde (GNOME-Anmeldebildschirm).
Irgendwelche Ratschläge? Muss ich auch pam.d/gdm oder die Anmeldedatei hinzufügen?
Antwort1
Erklärung hinter common-auth
Wenn Sie nur nach einer schnellen Lösung suchen, gehen Sie weiter unten zuSo konfigurieren Sie Common-Auth zum Sperren.
Hoffentlich wird dies dazu beitragen, die Konfiguration der Sperre etwas verständlicher zu machen /etc/pam.d/common-auth
.
Wenn Sie alle Kommentare in entfernen /etc/pam.d/common-auth
, bleibt Folgendes übrig:
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth requisite pam_deny.so
auth required pam_permit.so
Sehen wir uns jede Zeile dieser Datei und ihre Verwendung an.
auth [success=1 default=ignore] pam_unix.so nullok_secure
Liest die Passworteingabe.Wenn das Passwort richtig ist, wird die nächste Zeile der Datei übersprungen (die mit pam_deny.so
). Sie können ändern, wie viele Zeilen übersprungen werden, indem Sie den Wert in festlegen success=1
.
auth requisite pam_deny.so
Der Anmeldeversuch schlägt sofort fehl.Das Wort requisite
hier weist die Authentifizierung an, bei einem Fehler sofort abzubrechen. Die anderen Zeilen verwenden required
stattdessen, wobei bis zum Ende des Moduls gewartet wird, um einen Fehler zu melden.
auth required pam_permit.so
Ermöglicht den Anmeldeversuch.Dies geschieht mithilfe von pam_permit.so
.
Sobald dies geklärt ist, ist die Konfiguration des Moduls zum Aussperren des Benutzers leichter verständlich.
So konfigurieren Sie Common-Auth zum Sperren
Für Ubuntu:
Fügen Sie die folgende Zeile hinzunach pam_deny.so und vor pam_permit.so:
auth required pam_tally2.so onerr=fail deny=3 unlock_time=1800
Ändern Sie die Zeile pam_deny.so wie folgt:
auth required pam_deny.so
Die gesamte Datei würde folgendermaßen aussehen:
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth required pam_deny.so
auth required pam_tally2.so onerr=fail deny=3 unlock_time=1800
auth required pam_permit.so
Sie können die folgenden Optionen Ihren Anforderungen entsprechend konfigurieren:
deny=3
- Die Anzahl der zulässigen Versuche, bevor Sie gesperrt werden.unlock_time=1800
- Die Anzahl der Sekunden, bevor Sie einen erneuten Anmeldeversuch unternehmen dürfen.(Zusätzlicher Hinweis: Wenn das System nach einer Reihe von Fehlschlägen entsperrt wird und Sie sich erneut nicht authentifizieren können, haben Sie keine weiteren 2 Versuche zur Authentifizierung. Das System lässt Sie warten, bisunlock-time
wieder.)
Die meisten Ressourcen empfehlen, diese Zeile am Anfang der Datei hinzuzufügen, um die Wichtigkeit der Reihenfolge hervorzuheben. Auf Ubuntu-Desktopsystemen kann diese Konfiguration Sie jedoch vom GUI-Anmeldebildschirm aussperren.
Warum passiert das? Es scheint, dass, wenn Sie auf dem Anmeldebildschirm von Ubuntu einen Benutzer auswählen, das PAM-Modul sofort startet und an der pam_unix.so
Zeile (der Kennworteingabezeile) wartet, bevor es fortfährt. Wenn Sie die pam_tally2.so
Zeile vor diesem „Haltepunkt“ platzieren, wird die Sperre sofort aktiv, und wenn Sie durch Drücken der Pfeiltasten vom Benutzer weg navigieren, meldet das Modul einen Anmeldefehler und pam_tally2
erhöht die Zahl. Ohne auch nur ein Kennwort einzugeben, stecken Sie bald in einer ähnlichen Situation wie der folgenden fest:
Ein typischer Ubuntu-Anmeldebildschirm mit einer falsch konfigurierten Common-Auth-Datei.
Das Platzieren der pam_tally2.so
Zeile am Ende der Datei behebt dieses Problem. Bei dieser Konfiguration wird die richtige Reihenfolge beibehalten; die erste Zeile springt zu pam_deny.so
oder pam_permit.so
basierend auf der Gültigkeit des Passworts, und bis sie pam_tally2.so
erreicht ist, wurden alle falschen Passworteingaben bereits angezeigt.
Auch wenn pam_permit.so
erreicht wird, unabhängig vom eingegebenen Passwort, schlägt das Modul immer fehl, wenn pam_deny.so
auch erreicht wurde. Dies liegt daran, dass die pam_deny.so
Zeile enthält required
; dadurch können die restlichen Zeilen ausgeführt werden, aber das Modul selbst schlägt am Ende fehl.
Weitere Informationen zur Funktionsweise von PAM erhalten Sie bei Google unter „So funktioniert PAM“ oder hier:http://www.tuxradar.com/content/how-pam-works
Das sollte es tun!
Antwort2
Es ist schon eine Weile her, seit ich das gesehen habe, aber
Ich denke, Sie müssen bearbeiten/etc/pam.d/common-auth
Fügen Sie dies bei derSpitzeder Datei (die Reihenfolge der Regeln ist wichtig).
auth required pam_tally.so per_user magic_root onerr=fail
Anschließend legen Sie die Anzahl der erlaubten Versuche fest
sudo faillog -m 3
So entsperren Sie ein Konto
faillog -u login_name -r
für weitere Einzelheiten siehe
Mein Bloghttp://blog.bohizazen.com/linux/ubuntu-how-to-faillog/
oderMann pam_tally
Antwort3
Sie können auch Faillock versuchen, um die Benutzerkonten nach n fehlgeschlagenen Anmeldeversuchen zu sperren.
Ich konnte es zum Laufen bringen, indem ich den Anweisungen unter dem folgenden Link folgte. Dieser verwendet pam_faillock.so, was vermutlich sowohl unter Ubuntu als auch unter CentOS funktioniert.
Unter CentOS und ähnlichen Derivaten:
/etc/pam.d/system-auth
/etc/pam.d/password-auth
Unter Ubuntu/Debian und ähnlichen Derivaten:
/etc/pam.d/common-auth
/etc/pam.d/common-account
Sperren Sie das Linux-Benutzerkonto nach mehreren fehlgeschlagenen Anmeldeversuchen
hoffe, das hilft auch jemand anderem.