фильтрацию url например по критерию POST index.php?action=login с
пустым реферером можно реализовать так
set $add 1;
location /index.php {
limit_except GET POST {
deny all;
}
set $ban "";
if ($http_referer = "" ) {set $ban $ban$add;}
if ($request_method = POST ) {set $ban $ban$add;}
if ($query_string = "action=login" ){set $ban $ban$add;}
if ($ban = 111 ) {
access_log /var/log/[133]nginx/ban IP;
return 404;
}
proxy_pass http://127.0.0.1:8000; #тут живёт апач
}
Дальше резали на уровне pf - загружали в таблицу IP с которых
приходило слишком
много хитов. PF с таблицами работает очень быстро. Исходники парсера
логов (ddetect) есть на http://www.comsys.com.ua/files
ну и по крону уже раз в минуту добавлять в ip table новые ip из лога
25Мбитный DDoS, преимущесвенно режущийся ip, остатки проходят на
nginx, который по критерию обучает ip и остатки проксирует на
апач - LA 0, сайт работает.
1276 Прочтений • [Борьба с DDOS и DOS на уровне nginx (nginx dos ddos flood attack cache proxy web)] [08.05.2012] [Комментариев: 0]