Борьба с DDOS и DOS на уровне nginx

Добавил Support
Для ITDoc

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 1,00 из 5)
Loading ... Loading ...
3 155 Просмотров!

Издано: апреля 23, 2009

FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter

в sysctl

sysctl kern.maxfiles=90000
sysctl kern.maxfilesperproc=80000
sysctl net.inet.tcp.blackhole=2
sysctl net.inet.udp.blackhole=1
sysctl kern.polling.burst_max=1000
sysctl kern.polling.each_burst=50
sysctl kern.ipc.somaxconn=32768
sysctl net.inet.tcp.msl=3000
sysctl net.inet.tcp.maxtcptw=40960
sysctl net.inet.tcp.nolocaltimewait=1
sysctl net.inet.ip.portrange.first=1024
sysctl net.inet.ip.portrange.last=65535
sysctl net.inet.ip.portrange.randomized=0

в nginx моменты

worker_processes 1;
worker_rlimit_nofile 80000;
events {
worker_connections 50000;
}

server_tokens off;
log_format IP `$remote_addr';
reset_timedout_connection on;

listen  xx.xx.xx.xx:80  default rcvbuf=8192 sndbuf=16384 backlog=32000 accept_filter=httpready;

фильтрацию  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, сайт работает.

Popularity: 20% [?]

. . .

Tagged with: , , , , ,


Спонсор



 WPSN comments




Да человек я, человек! =)

ITDoc самый Последний

. . . . . . . . . . . . . . . . . . . . . . . . . . .