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

Slowloris на Apache: достаточно ли mod_reqtimeout + mod_qos?

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

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

В mod_reqtimeout:

RequestReadTimeout header=5-20,minrate=20

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

QS_SrvMaxConnPerIP 50
QS_SrvMinDataRate 120 1500

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

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

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

Заранее благодарим за любые отзывы!

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

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

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

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

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