Назад | Перейти на главную страницу

Запись запроса на тайм-аут в Apache 2.X

Я переношу некоторые приложения с Apache 1.3 на 2.2.

Мы использовали некоторые тесты, в которых злоумышленник открывает какое-то HTTP-соединение с нашим сервером и ничего не делает. Apache 1.3 может записать следующий код 408, например:

126.1.86.85 - - [01/Dec/2010:06:26:19 +0000] "-" 408 - "-" 0
126.1.86.85 - - [01/Dec/2010:06:26:19 +0000] "-" 408 - "-" 0

Но с Apache 2.2 в файл журнала ничего не записывается. Я провожу тот же тест, используя netcat, чтобы открыть соединение:

$ nc IP_victim PORT_victim
$ nc 10.42.37.3 80

Я хотел бы, чтобы Apache 2.2 записывал тот же код 408 в файл журнала, чтобы мы знали о попытке DoS-атаки извне. Нужна ли мне дополнительная конфигурация в Apache 2, чтобы включить это?

Я пробовал разные конфигурации, такие как LogLevel = Debug, Timeout 30, RequestReadTimeout header=10 body=30.

Спасибо.

Я нашел это в списке рассылки Apache https://issues.apache.org/bugzilla/show_bug.cgi?id=39785. Что говорит об этом. Похоже, это было решено в выпуске Apache 2.2.2. Это соответствующая проверка http://svn.apache.org/viewvc?view=revision&revision=919323. В нем есть комментарий, гласящий: «Регистрировать 408 только в том случае, если это не таймаут поддержки активности».

Поэтому проверьте, установлено ли у вас значение KeepAlive, и убедитесь, что у вас версия 2.2.2 или выше.