[+] bash - netstat, iptables i blokowanie IP

Potrzebujesz pomocy z C, C++, perl, python, itp.
wspo
Posty: 2
Rejestracja: 10 listopada 2008, 10:30
Lokalizacja: Skierniewice

[+] bash - netstat, iptables i blokowanie IP

Post autor: wspo »

Jako, że jestem tu nowy witam wszystkich.
Od pewnego czasu usiłuje napisać prosty skrypcik ale jak się okazało przerósł on moje możliwości więc prosiłbym o małą pomoc.
Sprawa wygląda następująco:
Skrypt ma mieć za zadanie sprawdzenie liczby połączeń do serwera apache z poszczególnych IP.
Używam do tego polecenia:

Kod: Zaznacz cały

netstat -plan | grep :80 | awk {'print $5'} | cut -d: -f 1 | sort | uniq -c | sort -nk 1
a w wyniku tego otrzymuje coś takiego:

Kod: Zaznacz cały

 1 0.0.0.0
      1 83.24.xx.xx
      1 85.202.xx.xx
      1 89.238.xx.xx
      2 78.88.xx.xx
      2 81.15.xx.xx
      2 83.21.xx.xx
      2 85.193.xx.xx
      2 88.220.xx.xx
      2 89.238.xx.xx
      2 93.105.xx.xx
      4 83.1.xx.xx
      4 83.27.xx.xx
      6 85.198.xx.xx
xx - ocenzurowałem IP

I teraz pytanie. Jak napisać skrypt aby w przypadku gdy liczba połączeń z jakiegoś IP przekroczy na przykład wartość 50 (kolumna po lewej stronie) banował adres IP, który ustanowił nadmierną ilość połączeń do apache i tym samym zapycha serwer.

P.S: Banować za pomocą iptables umiem. Mógłbym zabezpieczyć apache na przykład instalując mod-evasive no ale używam Debiana 4.0 Etch, dla którego ten mod coś nie chce mi śmigać. Wiem, że taki skrypt nie jest najlepszym rozwiązaniem jeśli chodzi o bezpieczeństwo apache no ale ciekawi mnie jak w ogóle zabrać się za pisanie takiego skryptu. Jeśli ktoś by był na tyle dobry, aby zechciało się mu napisać gotowy skrypt bardzo byłbym wdzięczny.
salmon
Beginner
Posty: 296
Rejestracja: 12 października 2007, 23:28
Lokalizacja: Gliwice/Bielsko-Biała

Post autor: salmon »

tak na szybko to dodaj na końcu filtrowanie:

Kod: Zaznacz cały

awk '$1> 50{print $2}'
i masz tylko te do zbanowania.

A tak w ogóle to chyba fail2ban już coś takiego robi, możesz się nim zainteresować.
wspo
Posty: 2
Rejestracja: 10 listopada 2008, 10:30
Lokalizacja: Skierniewice

Post autor: wspo »

Dzięki bardzo mi pomogłeś.
maxblink
Posty: 25
Rejestracja: 23 października 2008, 20:15

Post autor: maxblink »

Wie ktoś może jak na przykład zrobić taką listę ale połączeń z moim pc, przez port np.: 6112?
ODPOWIEDZ