Blokuj zakres adresów IP

48

Jestem bombardowany próbami włamań z Chin, wszystkie o podobnych adresach IP.

Jak zablokować zakres adresów IP za pomocą czegoś takiego jak 116.10.191. * Itp.

Używam Ubuntu Server 13.10.

Obecna linia, której używam to:

sudo /sbin/iptables -A INPUT -s 116.10.191.207 -j DROP

To pozwala mi tylko blokować każdy z nich na raz, ale hakerzy zmieniają adresy IP przy każdej próbie.

Stephen Cioffi
źródło
4
powinieneś rzucić okiem na fail2ban, który jest naprawdę dobry w dynamicznym blokowaniu uciążliwych adresów IP.
user9517 obsługuje GoFundMonica
Lubię również dodać knockd, aby wyeliminować praktycznie 100% nieudanych prób dostępu z moich logów. help.ubuntu.com/community/PortKnocking
Bruno Bronosky
pam_shield może tu być pomocny. github.com/jtniehof/pam_shield
Daniel

Odpowiedzi:

86

Aby zablokować adresy 116.10.191. *:

$ sudo iptables -A INPUT -s 116.10.191.0/24 -j DROP

Aby zablokować adresy 116.10. *. *:

$ sudo iptables -A INPUT -s 116.10.0.0/16 -j DROP

Aby zablokować adresy 116. *. *. *:

$ sudo iptables -A INPUT -s 116.0.0.0/8 -j DROP

Ale uważaj, co blokujesz za pomocą tej metody. Nie chcesz uniemożliwiać ruchowi osób uprawnionych docierających do hosta.

edycja : jak wskazano, iptables ocenia reguły w kolejności sekwencyjnej. Reguły znajdujące się wyżej w zestawie reguł są stosowane przed regułami znajdującymi się niżej w zestawie reguł. Więc jeśli w twoim zestawie reguł znajduje się reguła, która zezwala na wspomniany ruch, to dodanie ( iptables -A) reguły DROP nie da zamierzonego wyniku blokowania. W takim przypadku wstaw ( iptables -I) regułę:

  • jako pierwsza zasada

sudo iptables -I ...

  • lub przed regułą zezwalającą

sudo iptables --line-numbers -vnL

powiedzmy, że pokazuje regułę numer 3 zezwala na ruch ssh i chcesz zablokować ssh dla zakresu ip. -Ipobiera argument liczby całkowitej, która jest lokalizacją w twoim zestawie reguł, do którego chcesz wstawić nową regułę

iptables -I 2 ...

zatoczka
źródło
Sprawdź arin.net i zablokuj cały zakres posiadanych przez Amsterdam zakresów adresów IP . To miejsce RIPE z sondami-pająkami - wątpię, czy stamtąd wydobywa się legalny ruch.
WEBjuju
należy pamiętać, że może to nie działać w zależności od kolejności reguł iptable , patrz odpowiedź serverfault.com/a/507502/1
Jeff Atwood
2
o snap @JeffAtwood Jestem zaszczycony twoim komentarzem. odpowiedź zaktualizowana;)
Creek
A jak odblokować pewien zakres?
bzero,
11

sudo /sbin/iptables -A INPUT -s 116.10.191.0/24 -j DROP

To blokuje zasięg. W razie potrzeby można rozwinąć podsieć za pomocą tego samego ogólnego formatu.

Nathan C.
źródło
czy to zadziała na całym 4 zestawie? Podobnie jak 0/24 tylko 0-24. Próbowałem na przykład 500, ale to nie działało. Czy 0/24 obejmie wszystkie pozostałe liczby w latach 100. i 200.
Stephen Cioffi
3
@Stephen Jest to zakres CIDR. Jeśli chcesz obliczyć dla innego zakresu, użyj tego: subnet-calculator.com/cidr.php
Nathan C
4

Jako alternatywne podejście możesz użyć czegoś tak prostego jak fail2ban. Ustanawia limit czasu dla kolejnych nieudanych prób logowania i sprawia, że ​​brutowanie jest niemożliwe, ponieważ mają tylko kilka szans na przekroczenie limitu czasu. Ustawiłem swój czas oczekiwania na 30 minut. Zanim nadejdą godzinę lub dwie, zdają sobie sprawę, że nie będą w stanie zrobić żadnego postępu i się poddać.

temet
źródło
Również blokowanie całych krajów może hamować autoryzowane użycie.
Esa Jokinen
Zdaję sobie sprawę, że ten wątek ma ponad rok, ale chciałem, aby ludzie coś wiedzieli. Mam zainstalowany i uruchomiony fail2ban, ale regularnie sprawdzam także logi serwera. Istnieje zakres adresów IP 89.248.x.x, który próbuje wypróbować różne loginy e-mail z grubsza po godzinie od ostatniej próby w ciągu dnia. Najwyraźniej utrzymywanie findtimetrybu fail2ban na 30 minut nie jest już wystarczające, aby powstrzymać każdego nieprzyjemnego skrypciarza.
Tanzeel Kazi