Замедление на Apache: достаточно ли mod_reqtimeout + mod_qos?

Несколько дней назад я обнаружил, что мой сервер подвергся медленной атаке (я нашел много значений "-" 408 0 "-" "-" в моем файле access.log).

Я изменил свою конфигурацию следующим образом:

В mod_reqtimeout:

RequestReadTimeout header=5-20,minrate=20

Я установил mod_qos и настроил его так:

QS_SrvMaxConnPerIP 50
QS_SrvMinDataRate 120 1500

Это достаточно? Большинство доступных руководств просто оставляют значения по умолчанию в файлах конфигурации.

Я заметил, что теперь значения "-" 408 0 "-" значительно увеличились. Я полагаю, это хорошо, потому что это означает, что большее количество соединений определяется как вредоносное, и это означает, что они закрыты, потому что они могут "повредить" сервер. Правильно?

Могу ли я сделать что-то еще? Блокировка ips?...

Заранее спасибо за любые отзывы!

1 ответ

Читая этот отчет об ошибке, я обнаружил, что он не должен использовать QS_SrvMinDataRate вариант, потому что:

Очистка соединения занимает слишком много времени.

Они рекомендуют вам использовать только RequestReadTimeout вариант (по крайней мере на Apache 2.4+, но так как RequestReadTimeout опция была доступна раньше, вероятно, в ней не было необходимости в опциях QoS).

Не исключено, что слишком долгая очистка вызвала эти 408 ошибок. Но это только предположение с моей стороны.

Обратите внимание, что от Slowloris трудно избавиться, если вы не заблокируете IP-адрес в брандмауэре. Что-то Apache2/QoS не предлагает, к сожалению. Атакующему очень легко создать новое соединение, когда он получит 408, и, таким образом, съесть еще одно из вашего открытого слота Apache2.

Другие вопросы по тегам