The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Защита от DoS атак в nginx (dos ddos attack flood traffic limit tune optimization freebsd web nginx)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: dos, ddos, attack, flood, traffic, limit, tune, optimization, freebsd, web, nginx,  (найти похожие документы)
From: Alex Vorona <voron@amhost.net.> Newsgroups: nginx-ru.sysoev.ru Date: Mon, 29 Oct 2007 18:21:07 +0000 (UTC) Subject: Защита от DoS атак в nginx > Кто-нибудь занимался борьбой с такими 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Мбит
Sergey Smitienko <hunter@comsys.com.ua.> Будьте готовы, что при атаке в системе закончатся сокеты для соединиея nginx - backend. Так что я бы добавил sysctl net.inet.tcp.msl=3000 - уменьшаем время TIMEWAIT sysctl net.inet.tcp.maxtcptw=40960 - ограничиваем количество TIMEWAIT сокетов sysctl net.inet.tcp.nolocaltimewait=1 - отключаем TIMEWAIT для локальных сокетов. sysctl net.inet.ip.portrange.first=1024 sysctl net.inet.ip.portrange.last=65535 sysctl net.inet.ip.portrange.randomized=0 Дальше резали на уровне pf - загружали в таблицу IP с которых приходило слишком много хитов. PF с таблицами работает очень быстро. Исходники парсера логов есть на http://www.comsys.com.ua/files

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, Wizard (??), 07:37, 22/02/2008 [ответить]  
  • +/
    Здесь это поподробнее описано http://wiz.su/2007/10/28/borba-s-ddos-i-dos-na-urovne-nginx/
     
  • 2, voron (??), 00:33, 07/03/2008 [ответить]  
  • +/
    >поподробнее описано

    да. особенно последняя фраза с обучением ip подробней некуда описывает "25Мбитный DDoS, преимущесвенно режущийся ip, остатки проходят на nginx, который по критерию обучает ip и остатки проксирует на апач - LA 0, сайт работает." Даже слепить нормально не получилось из 2-х писем

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру