2006-07-25 15:21:12 noctivus napisał:
> Witam. Jeżeli taki temat już był to sorry. Szukałem na google i na tym forum ale nie umiałem
> znaleźć.
>
> Mam firewall na serwerze napisany w iptables. Są tam regułki zabezpieczające np. przed
> skanowaniem SYN/FIN:
>
> iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 10/s --limit-burst 4 -j
> LOG
>
> chciałbym aby każdy numer IP (który zostanie \\"złapany\\" na skanowaniu portów SYN/FIN a
> także wyświetlony w logach systemowych) dodawał się automatycznie do pliku z banami. Ten plik
> wyglądałby tak:
> iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
>
> Czy jest możliwe napisanie skryptu, który automatycznie dopisywałby do pliku z banami numer IP,
> który został \\"złapany\\" na skanowaniu portów ?
>
> *******
> Nie znam się za bardzo na bashu więc musiałem się zapytać na jakimś forum.
> Nie wiem czy napisałem to zrozumiale....
> Z góry dziękuję
> Pozdrowienia
Przy \\'-j LOG\\' możesz również (o ile dobrze pamiętam) zdefiniować postać linii z logiem. Taki log wędruje do sysloga/metaloga (zależy co masz) jeśli ten jest odpowiednio skonfigurowany.
To daje Ci zaplecze do napisania prostego skryptu, który czytałby plik z logiem i - jeśli trafi na odpowiedni format loga - wykonywałby odpowiednie działania.
Powinieneś przestudiowac dokumentację iptables (żeby znaleźć opcję do formatowania logu), zainteresować się np. poleceniem tail (zwłaszcza opcją -f) oraz grep (i wyrażeniami regularnymi).
Tyle tylko, że nie pamiętam dokładnie czy taka opcja do formatowania loga jest w iptables (nawet jak jej nie ma to sobie poradzisz z grepem).
Powodzenia