2014-06-08 9 views
6

Jak mogę zbiorczo dodać plik tekstowy pełen bloków IP do IPTables przy użyciu BASH (lub innego języka skryptowego)? Czy istnieje inny sposób blokowania tych zakresów adresów?Jak używać bash do zbiorczego dodawania pliku pełnego bloków IP do tabel IPTables

EDYCJA: Innymi słowy, czy istnieje sposób zaprogramowania czegoś do iterowania pliku i tworzenia odpowiednich wpisów?

+0

Czy jesteś ustawiony na użyciu Webmin zarządzać firewall? Jeśli nie, istnieje kilka opcji robienia tego, co próbujesz zrobić. Nie wiedząc więcej o rzeczywistym problemie (np. Żądania HTTP są nieprawidłowe), trudno jest podać dokładną odpowiedź. Możesz na przykład spojrzeć na OSSEC, aby zablokować zapytania spamowe. – Ketola

+0

https://kirkkosinski.com/2013/11/mass-blocking-evil-ip-addresses-iptables-ip-sets/ Spróbuj tego. Może być pomocny –

+0

Używałem Webmina do dodawania wpisów do listy blokowej IPtables (łańcuch odmowy zakresów). Mogłem ręcznie wprowadzić wszystkie te dane, ale wydaje mi się, że musi być łatwiejszy sposób. –

Odpowiedz

11

Czy możesz po prostu utworzyć pętlę w skrypcie konfiguracyjnym iptables? Coś jak

#!/bin/bash 
for x in $(cat ip_list.txt) 
do 
    iptables -A INPUT -s $x -j DROP 
done 

Jeżeli plik ip_list.txt po prostu wyglądać

1.1.1.1 
2.2.2.2 
3.3.3.3 
etc 
+0

Czy mówimy właściwie w "/ etc/sysconfig/iptables-config" ? Rozumiem, że mogę to zrobić bez rozbijania czegokolwiek? –

+1

Nie, zazwyczaj podczas manipulowania regułami IPTables wszystko jest skonfigurowane w skrypcie bash, a następnie, aby zastosować reguły, należy wykonać skrypt. Pozwala to na wykonanie typowego voodoo skryptu bash, aby pomóc ci w twoich regułach. Zajrzyj do sekcji 3 na tej stronie na przykład: http://wiki.centos.org/HowTos/Network/IPTables – Safado

+1

Więcej jak 'sed 's /.*/ iptables -A INPUT -s & -j DROP /' | sh', aby uniknąć Bezużytecznego Wykorzystania Kota i zmiennej niecytowanej. – tripleee

0

duża liczba wniosków oraz wykorzystania przepustowości może być spowodowane przez boty wyszukiwarek próbują indeksowania witryny, a także gdy strony takie jak Facebook lub linkedin tworzą miniatury, ponieważ ktoś łączy się z Twoją witryną z mediów społecznościowych.

Do zatrzymywania botów powinieneś użyć pliku robots.txt w swojej witrynie. Przeczytaj więcej o pliku i skonfiguruj go pod numerem robotstxt.org. Myślę, że jest też kilka postów na ten temat na stackoverflow.

+0

Boty, z którymi nie mam problemu. Serwer może obsłużyć trochę Google Mówię o zakresach od 20 do 30 aktywnych połączeń z zakresu należących do znanych bezpiecznych portów dla typów nadużywających. Na poziomie witryny robots.txt dla dobrze zachowujących się skryptów i badBehaviour dla nie. Niektóre zakresy adresów IP od firm hostingowych wciąż wykorzystują więcej niż sprawiedliwy udział mojego procesora przy zbyt dużej liczbie połączeń. Oprócz zablokowania całej Ameryki i Chin, chciałbym po prostu zablokować bardzo dużą listę adresów IP, które należą do hostingu, które nie mają wpływu na mój serwer. –

2

Można analizować ip listę i sprawdzić, czy adres IP jest już zablokowane lub nie:

#!/bin/bash 

for i in $(cat iptables.log) 
do 
    /sbin/iptables -L -n -v | grep -q "${i}" 
    RETVAL=$? 
    if [ $RETVAL -ne 0 ]; then 
    /sbin/iptables -A INPUT -s "${i}" -j DROP 
    fi 
done 
Powiązane problemy