Nginx - веб сервер предназначеный для работы на высоконагруженных серверах. Ddos атака как раз и является той нагрузкой с которой этот web сервер может вполне удачно справится. Решения которые предоставляет Antiddos.org построены на кластерах под управлением FreeBSD и веб сервера Nginx. Мы провели очень много экспериментов по реакции nginx под нагрузкой и пришли к мнению что он является правильным выбором для работы на серверах которые подвергаются ddos атакам. Ниже привожу основные настройки данного сервера.
FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter
в sysctl
фильтрацию url например по критерию POST index.php?actio
Код:
n=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/nginx/ban IP;
return 404;
}
proxy_pass http://127.0.0.1:8000; #тут живёт апач
}
Дальше резали на уровне pf - загружали в таблицу IP с которых приходило слишком
много хитов. PF с таблицами работает очень быстро. Исходники парсера логов есть на http://www.comsys.com.ua/files.
ну и по крону уже раз в минуту добавлять в ip table новые ip из лога
25Мбитный DDoS, преимущесвенно режущийся ip, остатки проходят на nginx, который по критерию обучает ip и остатки проксирует на апач - LA 0, сайт работает.