ПРОЕКТЫ 


  АРХИВ 


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: ошибка в nginx ?


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: ошибка в nginx ?
  • From: Andrei Nigmatulin <andrei.nigmatulin@xxxxxxxxx>
  • Date: Sat, 12 Jul 2008 00:50:36 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:subject:date :user-agent:references:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:message-id; bh=Le1IAVp5wQfsCfY4XnMyhGMPoZxLZwFBlqQXY7ZsuRI=; b=I35cVFCTCo2nGFkYWvRReR6L+qqb95zDlhBYmrq6HHDh5R+oC7sqRkxkqlw2KVdK8i kwJaA86g1xmPxz+9XZicy+T3tLtUQYq3rBX6rIYC5RMoK1NrXaxc1rD8GtkhrGiL3tB4 rNgg1f4OCo5Uka74hwQ9W6twxqw6C82GEY7u0=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:references:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :message-id; b=dqXa6SOsrV6p23Czi5TflJ7jl+SSwBV6RX84sQxGqXFFeKPyhuMJN0l/Hg4cv/Axvb 5wFRPjDBYttjdCeD4I86uHQVeMLVSdr2US9AiJ95A0EtrJpDwY3hlD6u+HVQU4qHaj9o JnnceAYuOP44nvqXRvkH2JsI2YhGqH2MNvMGM=
  • In-reply-to: <1265928018.20080711230119@xxxxxxxxx>
  • References: <68978892.20080708195713@xxxxxxxxx> <20080711052254.GA45632@xxxxxxxxxxxxx> <1265928018.20080711230119@xxxxxxxxx>

On Saturday 12 July 2008 00:01, Gena Makhomed wrote:
> IS> Единственное, что можно делать:
> IS> ждать секунду и повторять попытку до истечения ..._connect_timeout.
>
> backlog обычно бывает переполнен при (очень) большой нагрузке,
> это сделает веб-сервера под управлением nginx на операционной
> системе с ядром Linux гораздо более уязвимыми к DDOS-атакам.

Что за чепуха. А в "не-linux" по-другому ?

> nginx будет ..._connect_timeout секунд держать tcp соединение
> с клиентом, и будет раз в секунду пытаться установить соединение
> с сервером при переполненном backlog`е - впустую растрачивая
> системные ресурсы. и workaround к этой уязвимости неизвестен.

Если бэкенд (на одной машине с nginx, ведь мы до сих пор говорим про локальные 
сокеты) настолько загружен, что не успевает разгребать очередь новых 
запросов, то у nginx должна быть четкая стратегия - держаться до последнего и 
делать все возможное. Если он будет выдавать 502, то это значит атака 
удалась. А продолжать попытки обработать запрос - это правильно, ведь в конце 
концов на это есть fastcgi_connect_timeout секунд, а вдруг получится.

> IS> Пока в следующей версии EAGAIN будет сразу писаться в лог.
>
> это поможет с отладкой ситуации "somaxconn 128", но может быть
> использовано для DDOS-атаки на сервер - сначала переполняется
> backlog, потом error.log nginx`а начинает резко увеличиваться
> и занимает все свободное место на разделе где лежат логи.
> workaround - делать ротацию логов каждую минуту

Если соединение к backend не удалось, то nginx все равно что-то напишет в лог. 
Не нравится - меняйте log level или включайте ротацию чаще. EAGAIN тут не 
причем.


-- 
Andrei Nigmatulin
GPG PUB KEY 6449830D

Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take


 




Copyright © Lexa Software, 1996-2009.