FastNetMon

суббота, 16 января 2010 г.

Защита от DoS/DDoS атак посредством анализа логов (access.log) и фаерволла

cat access.log | awk '{print $1}' | sort | uniq -c | awk '{if($1>50){print $1 " " $2}}' | awk '{print $2}' > /tmp/ips


Также кроме безусловного анализа есть атаки, когда в логе появляются крайне странные записи примерно такого вида:
94.180.27.51 - - [17/Mar/2010:16:28:45 +0300] xxx.net 88.198.45.197 - 400 0 "-" "-" "-" 0.000--
94.180.27.51 - - [17/Mar/2010:16:28:46 +0300] xxx.net 88.198.45.197 - 400 0 "-" "-" "-" 0.000--
94.180.27.51 - - [17/Mar/2010:16:28:46 +0300] xxx.net 88.198.45.197 - 400 0 "-" "-" "-" 0.000--
94.180.27.51 - - [17/Mar/2010:16:28:46 +0300] xx.net 88.198.45.197 - 400 0 "-" "-" "-" 0.000--
94.180.27.51 - - [17/Mar/2010:16:28:46 +0300] xxx.net 88.198.45.197 - 400 0 "-" "-" "-" 0.000--
94.180.27.51 - - [17/Mar/2010:16:28:46 +0300] xxx.net 88.198.45.197 - 400 0 "-" "-" "-" 0.000--


Для них правило будет вот такое:

cat access.log | grep '400 0 "-" "-" "-" 0.000--' | awk '{print $1}' | sort | uniq > /tmp/ips


Теперь узнаем свой IP:

w | grep 'root' | awk '{print $3}'


IP сервера:

ifconfig -a | grep 'inet addr' | tr ':' ' ' | awk '{print $3}'


И удаляем их из списка.

И теперь достаточно одной команды, чтобы всех забанить:

for ip in `cat /tmp/ips`; do iptables -I INPUT -p tcp --dport 80 -s $ip -j DROP ; done



Только будьте аккуратны и себя не забаньте :)

Комментариев нет :

Отправка комментария

Примечание. Отправлять комментарии могут только участники этого блога.