Jak zmienić opóźnienie występujące po wprowadzeniu nieprawidłowego hasła?


32

Po wprowadzeniu niepoprawnego hasła przy logowaniu następuje około 3-sekundowe opóźnienie. Jak mogę to zmienić w systemie Linux za pomocą PAM?


1
Potrzebuję opóźnienia z punktu widzenia bezpieczeństwa, ale domyślne opóźnienie jest raczej denerwujące
Mike Pennington

3
To było interesujące; może napiszę moduł, który pozwala N próbować bez opóźnienia, a następnie dowolną liczbę prób z dużym opóźnieniem.
Shawn J. Goff,

1
Zamiast nowego modułu (sugerowane w moim poprzednim komentarzu), użyłem pam_unixz nodelayopcją oraz pam_tally2z deny=5 unlock_time=15; pozwala to na 5 natychmiastowych prób, ale odmawia dostępu (nawet przy udanym haśle) na 15 sekund. Nadal zamierzam spróbować napisać opisany model, ale teraz jest to projekt back-burnera, ponieważ nie byłby odpowiedni, gdyby twój podstawowy dostęp do systemu był oparty na sieci, ponieważ sprawia, że ​​atak DOS jest banalny.
Shawn J. Goff,

1
jeśli obawiasz się o DoS z sieci po przekroczeniu limitu czasu, użyj fail2ban ... w rzeczywistości użyj go, nawet jeśli uważasz, że jesteś bezpieczny :-). używam dwudniowego zakazu
Mike Pennington,

Odpowiedzi:


21

Zakładam, że używasz Linuksa i pam. Opóźnienie jest prawdopodobnie spowodowane przez pam_faildelay.so. Sprawdź konfigurację pam w /etc/pam.dużyciu pam_faildelay, np .:

# 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

Aby zmienić czas, dostosuj parametr opóźnienia. Jeśli chcesz pozbyć się opóźnienia, możesz usunąć / skomentować całą linię.

Innym źródłem opóźnienia może być pam_unix.so. Aby wyłączyć opóźnienie spowodowane przez pam_unix.sododanie nodelayparametru i opcjonalnie dodaj linię wywołującą, pam_faildelay.soaby dodać (zmienne) opóźnienie, np .:

auth       optional   pam_faildelay.so  delay=100000

2
Nigdzie nie ma wzmianki o opóźnieniu /etc/pam.d/*. Najbliższą rzeczą, jaką widzę, jest pam_tally.somożliwość blokowania po pewnej liczbie prób. Ale mam n /etc/login.defs, co może być tym, czego potrzebuję.
Shawn J. Goff,

@ ShawnJ.Goff pam_tally.sonie powoduje opóźnienia, o ile mi wiadomo. Innym źródłem może być pam_unix.so- możesz to wyłączyć za pomocą nodelayopcji - więcej informacji znajdziesz na linux.die.net/man/8/pam_unix
Ulrich Dangel

1
Dodanie nodelayopcji pam_unix.soi dodanie nowego wpisu pam_faildelay.so delay=$some_numberpozwala mi ustawić cokolwiek chcę. Dzięki!
Shawn J. Goff,

2
pam_unix.soKorzystając z pam_faildelay.soFedory 23, musiałem wyłączyć opóźnienie i zacząć korzystać z tego, jak mówi @ ShawnJ.Goff. Jednak większość pam.dkonfiguracji ma „ Ten plik jest generowany automatycznie. Zmiany użytkownika zostaną zniszczone przy następnym uruchomieniu authconfig. ” Więc gdzie mogę na stałe skonfigurować opóźnienie?
jozxyqk

11

Musisz przekazać nodelayparametr do auth pam_unix.so.

W zależności od sposobu uwierzytelnienia, w którym należy ustawić parametr, zmienia się. Jednak większość dystrybucji Linuksa ma coś takiego, /etc/pam.d/system-authco jest zawarte we wszystkich różnych plikach.

Na przykład /etc/pam.d/system-authmożesz mieć linię wyglądającą tak:

auth            sufficient      pam_unix.so try_first_pass nullok

Należy to zmienić na:

auth            sufficient      pam_unix.so try_first_pass nullok nodelay

pam_unix.soModuł jest co dokonuje uwierzytelnienia przed /etc/passwdi /etc/shadow. Jeśli używasz LDAP lub jakiegoś innego backendu hasła, prawdopodobnie powinieneś nadal ustawić nodelayna to pam_unix.so, co kontroluje monit (gdy pam_unix.sonie powiedzie się autoryzacja, zwykle po prostu przekazuje otrzymane hasło do następnego modułu).

Możesz przeczytać więcej o pam_unix.sowykonującman pam_unix


W moim systemie system-authnie istniało; to było /etc/common-auth. Dzięki!
Luc
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.