Chciałem zapewnić opóźnienie logowania podczas logowania przez ssh. Próbowałem zrobić to samo, ale nie mogłem znaleźć pożądanego rezultatu.
Próbowałem kroki podane przez podany link.
http://hostingfu.com/article/ssh-dictionary-attack-prevention-with-iptables
iptables -N SSH_CHECK
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_CHECK
iptables -A SSH_CHECK -m recent --set --name SSH
iptables -A SSH_CHECK -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP
Nie mam zainstalowanego modułu pam na moim komputerze, więc nie mogę dokonywać żadnych modyfikacji związanych z plikami pam
Czy jakieś ciało pozwala mi zasugerować inny sposób na zrobienie tego samego?
Mam nagie jądro Linux działające na platformie osadzonej.
linux
networking
ssh
sshd
Baran
źródło
źródło
fail2ban
używa dokładnej infrastruktury, którą już masz - ssh logi i reguły iptables.Odpowiedzi:
Metoda nr 1 - wyłącz logowanie loginów
Jeśli nie musisz zezwalać na logowanie się za pomocą hasła, po prostu ich wyłączenie da pożądany efekt. Po prostu dodaj tę linię do
/etc/ssh/sshd_config
:Dodatkowo możesz ograniczyć użycie hasła do niektórych użytkowników korzystających z
Match
operatora wsshd_config
:Metoda nr 2 - iptables
Możesz także użyć
iptables
do śledzenia nieudanych prób logowania i upuścić je po określonym progu. Jest to podobne do twojego przykładu z hostingfu, ale jest łatwiejsze do zrozumienia.UWAGA: Pierwszy wiersz zasadniczo tworzy regułę, która dotyczy tylko pakietów używanych do nowych prób połączenia na porcie ssh. Druga linia mówi, że jeśli w ciągu 60 sekund dojdzie do więcej niż 4 prób z adresu IP, wówczas wszelki ruch z tego adresu IP powinien zostać zablokowany. To rozwiązanie nie ma znaczenia, czy próby na różnych kontach użytkowników.
Metoda nr 3 - użyj PAM
Zdaję sobie sprawę, że powiedziałeś, że nie masz dostępu do PAM, ale jeśli tak, możesz opóźnić nieudane próby logowania. Jeśli zamierzasz po prostu opóźnić awarie logowania ssh, możesz użyć modułu PAM
pam_faildelay
. Ten moduł PAM jest na ogół dołączony do domyślnego miksu.W moim systemie Fedora 19 jest to część domyślnej instalacji.
Przykład
Poszukaj plików powiązanych z
pam_faildelay
.Sprawdź, jakie RPM zapewniają:
Stosowanie
Aby stworzyć opóźnienie awarii, po prostu dodaj taką linię do
sshd
pliku konfiguracyjnego pam. Znowu na Fedora / CentOS / systemów RHEL ten plik znajduje się tutaj:/etc/pam.d/sshd
.Aby utworzyć 10-sekundowe opóźnienie:
60 sekundowe opóźnienie:
Przykład
Z opóźnieniem 20 sekund przy użyciu powyższej metody zmieniłem
sshd
plik konfiguracyjny PAM w następujący sposób:Teraz kiedy się zaloguję:
Bibliografia
źródło
--hitcount 4
zostanie przekroczony, reguła będzie czarną dziurą w naruszającym adres IP przez 60 sekund.Wyłącz hasła. Bez haseł, bez brutalnej siły.
Do logowania możesz używać kluczy ssh - które powinny być znacznie bezpieczniejsze i trudniejsze do zhakowania.
źródło
W czystej instalacji Ubuntu 16.04 z
openssh-server
już opóźnieniem jest próba błędnego hasła dłuższa niż zero znaków. Opóźnienie wydaje się dłuższe niż 1 sekunda .W przypadku próby wprowadzenia niepoprawnego hasła z zerowymi znakami nie ma opóźnienia, więc osoba atakująca natychmiast stwierdzi, że hasło nie jest pustym ciągiem, jeśli rzeczywiście nie jest pustym ciągiem. Ponieważ pusty ciąg znaków prawdopodobnie nie jest dozwolony jako hasło, wiedzą już o tym, więc nie będą próbować pustego ciągu.
źródło