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

Re: SYN-flooding на мой веб-сервак. Предотвратить. Nginx?



On Mon, 26 Apr 2010 18:31:14 +0300
Игорь Чумак <ichumak2008@gmail.com> wrote:

> alexander пишет:
> > Привет.
> > Трафик стал сильно хаваться. Это был syn-flooding на мой веб-сервак.
> > При этом dmesg выдал картинко:
> >
> > [30942.485594] possible SYN flooding on port 80. Sending cookies.
> > [30951.969322] TCPv6: Possible SYN flooding on port 80. Sending
> > cookies. [30960.029739] TCPv6: Possible SYN flooding on port 80.
> > Sending cookies. [30966.058466] TCPv6: Possible SYN flooding on
> > port 80. Sending cookies. [31003.499854] possible SYN flooding on
> > port 80. Sending cookies.
> >
> > Я тут добавил директивы limit для сервака, а потом вдруг возникла
> > идея nginx. Почитал как его хвалят. Если он такой хороший, то что
> > его не используют многие для своих нужд, например
> > debian.org? :( Есть ли смысл ставить nginx? Поможет ли он уменьшить
> > syn-flooding и вообще нагрузку на сервер?
> >
> >
> >   
> Смысл syn-flood атаки:
> На порт сервиса, который нужно повалить, отсылается syn-пакет.
> TCP-стек , в уверенности, что это начало нового соединения, выделяет
> в памяти место, отсылает в ответ ask и ждет какое-то время
> стабилизации соединения. То есть обработка каждого syn-пакета требует
> некоторых ресурсов. Навалить много syn-пакетов - ресурсов в системе
> может не хватить. Навалить syn-пакетов с разных адресов - не поможет
> ничто.
> 
> Поэтому от synflood защиты на уровне  приложения нет.  Надо крутить 
> параметры  ядра  (google в помощь, 
> http://www.symantec.com/connect/articles/hardening-tcpip-stack-syn-attacks)
> 
> Нагрузку на сервер nginx может уменьшить. Например, некоторый запрос 
> обрабатывается апачем (который требует N ресурсов) за n секунд. 
> Результат отдается клиенту за m секунд. Если m>>n (например, канал у 
> клиента плохой; пусть m=n*3) . Тогда для обработки этого
> запроса+отдача клиенту требуется N*n*3 ресурсов. Если между толстым
> апачем и клиентом есть тонкий прокси (nginx), требующий  P ресурсов -
> тогда на 1 запрос потребуется N*n+P*m ресурсов. Выгодно это или нет -
> надо смотреть.. Если нет запросов, которые дооолго выполняются -
> nginx может и не помочь (теоретически).
> 
> 
ясна. ;) спасиб


Reply to: