22 февраля 2002 г. в 14:36 Игорь Сысоев писал:
IS> On Thu, 21 Feb 2002, Sergey Gershtein wrote:
>> Вопрос вот какой. Под FreeBSD собран apache с httpready. Судя по
>> ощущениям, никакого таймаута у httpready не предусмотрено, т.е. любой
>> может установить соединение на 80-й порт и ничего не передавать. Ядро
>> со своей стороны будет молча и неограниченно долго ждать. Это так?
IS> Автор написал, что таймаутов нет, но DoS быть не должно -
IS> эти соединения остаются в incomplete очереди и если очередь
IS> переполняется, то действует стандартный механизм удаления
IS> из очереди, как если бы не было бы никаких фильтров.
IS> Насколько я понимаю, обычно удаление происходит в порядке FIFO, но
IS> когда входящих соединений много, то в некоторый момент начинается
IS> псевдо-случайное удаление. Подробности - функция sodropablereq() в
IS> /usr/src/sys/kern/uipc_socket2.c
>> Спрашиваю потому, что сегодня нас, похоже, по такой схеме успешно
>> атаковали. netstat -an показывал несколько сотен соединений в
>> состоянии ESTABLISHED с одного московского IP-адреса на различные
>> виртуальные сервера (IP-based) нашей машины. В логах серверов никаких
>> упоминаний об этом адресе. Зайти ни на один сервер невозможно.
>> Видимо, достигнут лимит соединений в ядре.
IS> Как невозможно зайти - по HTTP или вообще ?
IS> По идее фильтр на одном listen не может держать в ESTABLISHED
IS> больше сокетов, чем указано в sysctl kern.ipc.somaxconnш - должно
IS> начаться вышеописаное дропание.
Зайти невозможно было именно по HTTP (уже после того, как я написал
сюда, этот факт показался мне необъяснимым). Сейчас должен признать,
что совсем перестал понимать, что именно произошло. kern.ipc.somaxconn
увеличил на всякий случай с 2048 до 4096...
С уважением,
Сергей Герштейн
=============================================================================
= 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 =