Niedawno postanowiłem przeprowadzić konserwację zabezpieczeń. Widziałem moje logi i było kilka prób przeciwko mojemu serwerowi SSH. W pierwszej chwili odsunął się port SSH z domyślnego 22. Po to, czytałem coś o fail2ban , BlockHosts i DenyHosts .
Spojrzałem na pierwszy: jest prosty w konfiguracji, wszystko jest zrozumiałe; ale kiedy próbowałem „zbadać jego ochronę”, testy nie powiodły się . Wszystko wydaje się być dobre, ale nadal mogę uzyskać dostęp do serwera.
Testowałem także IPtables: # iptables -I INPUT -j DROP
- po tym moje połączenie SSH zostało utracone (więc czego chciałem). Wtedy to # iptables -I INPUT -s 84.x.y.z -j DROP
też zadziałało.
Ale jakie reguły zrobił Fail2ban, to nie działa: ( $ sudo iptables -L
)
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-apache tcp -- anywhere anywhere multiport dports www,https
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-apache (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-ssh (1 references)
target prot opt source destination
DROP all -- 84.x.y.z anywhere
RETURN all -- anywhere anywhere
Chain fail2ban-ssh-ddos (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Załadowane moduły jądra: ( $ lsmod | grep ip
)
iptable_nat 4680 0
nf_nat 15576 1 iptable_nat
nf_conntrack_ipv4 12268 3 iptable_nat,nf_nat
nf_conntrack 55540 4 xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4
xt_multiport 2816 2
iptable_filter 2624 1
ip_tables 10160 2 iptable_nat,iptable_filter
x_tables 13284 5 xt_state,xt_tcpudp,iptable_nat,xt_multiport,ip_tables
ipv6 235396 24
Wersje:
- Debian Lenny 5.06, jądro 2.6.26-2-686
- IPtabele 1.4.2-6
- Fail2ban 0.8.3-2sid1
openssh-server
1: 5.1p1-5
Test # 1 krok po kroku:
- Skonfiguruj Fail2ban na niski czas bantime. 60 sekund Następnie załaduj ponownie.
- Próba zalogowania się (za pomocą SSH), bezpośrednio z niewłaściwym hasłem.
- Po raz szósty wprowadź poprawne hasło (maksymalna liczba prób to tylko 4). Zalogowałem się. Mogę również uzyskać dostęp do strony internetowej obsługiwanej przez ten serwer.
iptables -L
pokazał mi, jak wspomniano powyżej. Tak więc ban był aktywny, kiedy się połączyłem, rozkazałem mojemu serwerowi.
Test # 2 krok po kroku:
- Zatrzymaj Fail2ban. Utwórz
at
skrypt, aby w przyszłości usunąć zapisaną poniżej zasadę zakazu. (iptables -D INPUT 1
) - Utwórz regułę banowania:
iptables -I INPUT 1 -s 84.x.y.z -j DROP
- Nie mogłem wpisać nic innego, połączenie SSH jest nieużywalne. Nie mogłem uzyskać dostępu do strony internetowej. Czego chciałem od iptables.
- Po
at
skrypcie mogę uzyskać dostęp do mojego serwera.
Nie widzę rozwiązania, co powinienem zrobić, aby mój ban IPtables (stworzony przez Fail2ban) działał?