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?
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.
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 authpam_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:
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
pam_unix
mit dernodelay
Option undpam_tally2
mitdeny=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.Antworten:
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.d
mitpam_faildelay
: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 durchpam_unix.so
Hinzufügen desnodelay
Parameters verursacht wird , und fügen optional einen Zeilenaufrufpam_faildelay.so
hinzu, um stattdessen eine (variable) Verzögerung hinzuzufügen, z.quelle
/etc/pam.d/*
. Das Nächste, was ich sehe, istpam_tally.so
das Sperren nach einer bestimmten Anzahl von Versuchen. Aber ich habe n/etc/login.defs
, das könnte das sein, was ich brauche.pam_tally.so
verursacht meines Wissens keine Verzögerung. Eine andere Quelle für Gehörlose ist möglicherweisepam_unix.so
- Sie können sie mit dernodelay
Option deaktivieren - Weitere Informationen finden Sie unter linux.die.net/man/8/pam_unixnodelay
Option zupam_unix.so
und Hinzufügen eines neuen Eintrags mit kannpam_faildelay.so delay=$some_number
ich festlegen, was ich möchte. Vielen Dank!pam_unix.so
Verzögerung deaktivieren und diepam_faildelay.so
erste verwenden, wie @ ShawnJ.Goff sagt. Die meistenpam.d
Konfigurationen 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?Sie müssen den
nodelay
Parameter an das übergebenauth
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-auth
das, was in den verschiedenen Dateien enthalten ist.Zum Beispiel
/etc/pam.d/system-auth
könnten Sie in eine Zeile haben, die so aussieht:Dies sollte geändert werden in:
Das
pam_unix.so
Modul führt die Authentifizierung für/etc/passwd
und durch/etc/shadow
. Wenn das youre , LDAP oder einen anderen Passwort - Backend verwenden, sollten Sie wahrscheinlich noch werden Einstellungnodelay
auf dempam_unix.so
wie das ist , was die Aufforderung steuert (wennpam_unix.so
zu 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.so
indem Sie tunman pam_unix
quelle
system-auth
existierte nicht; es war/etc/common-auth
. Vielen Dank!