ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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



 




Copyright © Lexa Software, 1996-2009.