On Thu, 21 Feb 2002, Alex Tutubalin wrote:
> > ощущениям, никакого таймаута у httpready не предусмотрено, т.е. любой
> > может установить соединение на 80-й порт и ничего не передавать. Ядро
> > со своей стороны будет молча и неограниченно долго ждать. Это так?
> >
> > Спрашиваю потому, что сегодня нас, похоже, по такой схеме успешно
> > атаковали. netstat -an показывал несколько сотен соединений в
> > состоянии ESTABLISHED с одного московского IP-адреса на различные
> > виртуальные сервера (IP-based) нашей машины. В логах серверов никаких
>
> Судя по исходникам, таймаута там действительно нет, соответственно
> по переполнению listen queue очередные соединения будут отвергаться.
> netstat -La что кажет ?
Таймауты там вроде есть, но только не на уровне фильтров.
Фильтры же ничего сами не читают. По крайней мере httpready - он
смотрит в буферах. О dataready даже и говорить не стоит.
Вообще же вопрос таймаутов меня тоже недавно заинтересовал, когда
я увидел в Линуксовом TCP_DEFER_ACCEPT таймаут. Надо будет уточнить.
> Справедливости ради, оно и без accept-filter будет так, только еще хуже.
> Можно ведь установить соединение и ничего туда не слать. Его, конечно,
> обрубят по таймауту (апач), но совсем не сразу, типичный таймаут - минут 5.
> За 5 минут несколько сотен тысяч соединений вполне можно открыть.
> С одной стороны, таймаут конечно какой-то есть, с другой - толку от него мало
>
> Внешние эффекты будут ровно такие же ну и вдобавок запустится MaxClient
> апачей.
Это да. Единственный выход - увеличить число сокетов и mbuf.
Игорь Сысоев
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =