Предлагаю в этой теме постить найденные или написанные вами небольшие статьи и заметки по данной теме.
Защита от DDos. Простой, но эффективный скрипт
Недавно озаботился поиском адекватного решения для защиты некоторых подконтрольных ресурсов от DDos атак.
Первое что посоветовали — Cisco Guard. Но так как требовалось что то легкое и не столь дорогое, то решил посмотреть в сторону софтверных продуктов.
После непродолжительного гугления наткнулся на небольшой скриптик (D)DoS Deflate
Работает довольно просто — каждую минуту по крону запускается команда
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
и выбираются все айпишники число соединений с которых превышает заданное в конфиге ограничени(по умолчанию 150).
Время бана тоже настраивается в конфиге. Также можно выбрать с каким файрволом работать — iptables или apf(надстройка над iptables).
Решение довольно очевидное, словесные описания проскакивали и до этого, но такой готовой реализации ранее не встречал.
UPD: не забываем что этот скрипт в силу своей простоты не спасет от серьезных заказных атак, но большинство кулхацкеров остановит. (c)
Борьба с DDOS и DOS на уровне nginx
FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter
в sysctl
фильтрацию 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/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, сайт работает. (c)