Wie ändert man die Verzögerung, die nach der Eingabe eines falschen Passworts auftritt?

32

Nach der Eingabe eines falschen Passworts an einer Anmeldeaufforderung tritt eine Verzögerung von ca. 3 Sekunden auf. Wie kann ich das auf einem Linux-System mit PAM ändern?

Shawn J. Goff
quelle
1
Ich bekomme die Notwendigkeit einer Verzögerung aus Sicht der Sicherheit, aber die Standardverzögerung ist ziemlich ärgerlich
Mike Pennington
3
Das war interessant; Vielleicht schreibe ich ein Modul, das N Versuche ohne Verzögerung zulässt, gefolgt von einer beliebigen Anzahl von Versuchen mit langer Verzögerung.
Shawn J. Goff
1
Anstelle eines neuen Moduls (vorgeschlagen in meinem vorherigen Kommentar) habe ich pam_unixmit der nodelayOption und pam_tally2mit deny=5 unlock_time=15; Dies ermöglicht 5 sofortige Wiederholungsversuche, verweigert jedoch den Zugriff (auch bei erfolgreichem Kennwort) für 15 Sekunden. Ich beabsichtige immer noch, das beschriebene Modell zu schreiben, aber jetzt ist es ein Back-Burner-Projekt, da dies nicht geeignet wäre, wenn Ihr primärer Zugriff auf das System netzwerkbasiert ist, da es einen DOS-Angriff trivial macht.
Shawn J. Goff
1
Wenn Sie sich wegen Zeitüberschreitungen wegen eines Netzwerk-DoS Sorgen machen, verwenden Sie fail2ban. Ich benutze zwei Tage Sperrzeiten
Mike Pennington

Antworten:

21

Ich gehe davon aus, dass Sie Linux und Pam verwenden. Die Verzögerung wird wahrscheinlich durch verursacht pam_faildelay.so. Überprüfen Sie Ihre Pam-Konfiguration /etc/pam.dmit pam_faildelay:

# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth       optional   pam_faildelay.so  delay=3000000

Um die Zeit zu ändern, stellen Sie den Verzögerungsparameter ein. Wenn Sie die Verzögerung beseitigen möchten, können Sie die gesamte Zeile löschen / kommentieren.

Eine andere Quelle für die Verzögerung kann sein pam_unix.so. So deaktivieren Sie die Verzögerung, die durch pam_unix.soHinzufügen des nodelayParameters verursacht wird , und fügen optional einen Zeilenaufruf pam_faildelay.sohinzu, um stattdessen eine (variable) Verzögerung hinzuzufügen, z.

auth       optional   pam_faildelay.so  delay=100000
Ulrich Dangel
quelle
2
Es gibt keine Erwähnung einer Verzögerung irgendwo in /etc/pam.d/*. Das Nächste, was ich sehe, ist pam_tally.sodas Sperren nach einer bestimmten Anzahl von Versuchen. Aber ich habe n /etc/login.defs, das könnte das sein, was ich brauche.
Shawn J. Goff
@ ShawnJ.Goff pam_tally.soverursacht meines Wissens keine Verzögerung. Eine andere Quelle für Gehörlose ist möglicherweise pam_unix.so- Sie können sie mit der nodelayOption deaktivieren - Weitere Informationen finden Sie unter linux.die.net/man/8/pam_unix
Ulrich Dangel,
1
Durch Hinzufügen der nodelayOption zu pam_unix.sound Hinzufügen eines neuen Eintrags mit kann pam_faildelay.so delay=$some_numberich festlegen, was ich möchte. Vielen Dank!
Shawn J. Goff
2
Mit Fedora 23 musste ich die pam_unix.soVerzögerung deaktivieren und die pam_faildelay.soerste verwenden, wie @ ShawnJ.Goff sagt. Die meisten pam.dKonfigurationen haben jedoch " Diese Datei wird automatisch generiert. Benutzeränderungen werden beim nächsten Ausführen von authconfig zerstört. " Wo kann ich also die Verzögerung dauerhaft konfigurieren?
Josxyqk
11

Sie müssen den nodelayParameter an das übergeben auth pam_unix.so.

Abhängig davon, wie Sie sich authentifizieren, variiert der Ort, an dem Sie den Parameter einstellen müssen. Allerdings haben die meisten Linux-Distributionen so etwas wie /etc/pam.d/system-authdas, was in den verschiedenen Dateien enthalten ist.

Zum Beispiel /etc/pam.d/system-authkönnten Sie in eine Zeile haben, die so aussieht:

auth            sufficient      pam_unix.so try_first_pass nullok

Dies sollte geändert werden in:

auth            sufficient      pam_unix.so try_first_pass nullok nodelay

Das pam_unix.soModul führt die Authentifizierung für /etc/passwdund durch /etc/shadow. Wenn das youre , LDAP oder einen anderen Passwort - Backend verwenden, sollten Sie wahrscheinlich noch werden Einstellung nodelayauf dem pam_unix.sowie das ist , was die Aufforderung steuert (wenn pam_unix.sozu Auth ausfällt, es in der Regel geht nur das Passwort es zum nächsten Modul erhalten).

Sie können mehr darüber lesen, pam_unix.soindem Sie tunman pam_unix

Patrick
quelle
Auf meinem System system-authexistierte nicht; es war /etc/common-auth. Vielen Dank!
Luc