Наработки борьбы с DDOS и DOS

Alex Vorona voron at amhost.net
Sat Oct 27 11:48:28 MSD 2007


elifan пишет:
> Здравствуйте, коллеги.
>
> Кто-нибудь занимался борьбой с такими DoS аттаками на уровне nginx?
> Если не жалко - поделитесь идеями. Скоро переедет ко мне несколько
> сайтов которые периодически валят, надо подготовится...
>
>   
FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter
в sysctl
kern.maxfiles=90000
kern.maxfilesperproc=80000
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
kern.polling.burst_max=1000
kern.polling.each_burst=50
net.inet.tcp.msl=10000
kern.ipc.somaxconn=32768

в 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/nginx/ban IP;
                return 404;
            }
          proxy_pass http://127.0.0.1:8000;#тут живёт апач
       }

ну и по крону уже раз в минуту добавлять в ipfw table новые ИП из лога

25Мбитный DDoS, преимущесвенно режущийся ipfw, остатки проходят на 
nginx, который по критерию обучает ipfw и остатки проксирует на апач - 
LA 0, сайт работает.

Чуть более мощный сервер на гигабитном Realtek re и 100Мбит порту  с 
поллингом загибался от pps где-то до 20Мбит
> И еще один вопрос по этой же теме.
> Может ли nginx раскидывать запросы по разным бекэндам для распределения
> нагрузки на один server {} ?
>
>
>   
да, http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html





More information about the nginx-ru mailing list