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 .:
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 authpam_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:
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
pam_unix
znodelay
opcją orazpam_tally2
zdeny=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.Odpowiedzi:
Zakładam, że używasz Linuksa i pam. Opóźnienie jest prawdopodobnie spowodowane przez
pam_faildelay.so
. Sprawdź konfigurację pam w/etc/pam.d
użyciupam_faildelay
, np .: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 przezpam_unix.so
dodanienodelay
parametru i opcjonalnie dodaj linię wywołującą,pam_faildelay.so
aby dodać (zmienne) opóźnienie, np .:źródło
/etc/pam.d/*
. Najbliższą rzeczą, jaką widzę, jestpam_tally.so
możliwość blokowania po pewnej liczbie prób. Ale mam n/etc/login.defs
, co może być tym, czego potrzebuję.pam_tally.so
nie powoduje opóźnienia, o ile mi wiadomo. Innym źródłem może byćpam_unix.so
- możesz to wyłączyć za pomocąnodelay
opcji - więcej informacji znajdziesz na linux.die.net/man/8/pam_unixnodelay
opcjipam_unix.so
i dodanie nowego wpisupam_faildelay.so delay=$some_number
pozwala mi ustawić cokolwiek chcę. Dzięki!pam_unix.so
Korzystając zpam_faildelay.so
Fedory 23, musiałem wyłączyć opóźnienie i zacząć korzystać z tego, jak mówi @ ShawnJ.Goff. Jednak większośćpam.d
konfiguracji 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?Musisz przekazać
nodelay
parametr doauth
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-auth
co jest zawarte we wszystkich różnych plikach.Na przykład
/etc/pam.d/system-auth
możesz mieć linię wyglądającą tak:Należy to zmienić na:
pam_unix.so
Moduł jest co dokonuje uwierzytelnienia przed/etc/passwd
i/etc/shadow
. Jeśli używasz LDAP lub jakiegoś innego backendu hasła, prawdopodobnie powinieneś nadal ustawićnodelay
na topam_unix.so
, co kontroluje monit (gdypam_unix.so
nie powiedzie się autoryzacja, zwykle po prostu przekazuje otrzymane hasło do następnego modułu).Możesz przeczytać więcej o
pam_unix.so
wykonującman pam_unix
źródło
system-auth
nie istniało; to było/etc/common-auth
. Dzięki!