Я переношу некоторые приложения с 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 или выше.