Slowloris – мерзенький DDoS веб-серверов на основании неполной отправки заголовков.
Рассмотрим, как защитить Apache от него.
mod_reqtimeout поможет ограничить время, разрешенное для приема заголовков:
IfModule mod_reqtimeout.c RequestReadTimeout header=20-40,MinRate=500 body=20-40,MinRate=500
Тут на отправку заголовка выделяется 20 секунд, но если он приходит со скоростью от 500 байт в секунду, то сервер готов подождать и 40 секунд. То же самое с телом.
mod_qos для контроля нагрузки на сервер:
<IfModule mod_qos.c> # handle connections from up to 100000 different IPs QS_ClientEntries 100000 # allow only 50 connections per IP QS_SrvMaxConnPerIP 50 # limit maximum number of active TCP connections limited to 4096 MaxClients 4096 # disables keep-alive when 180 (70%) TCP connections are occupied QS_SrvMaxConnClose 180 # minimum request/response speed (deny slow clients blocking the server, keeping connections open without requesting anything QS_SrvMinDataRate 150 1200 </IfModule>
от проблем доступности сервера не спасут, а вот две последние настроечки оптимизируют трату ресурсов сервера.
Рассмотрим ту же проблему для IIS.
Первым делом нужно установить его компонент Security/Request Filtering через стадартный менеджер компонентов Windows.
Ну а дальше можно конфигурить ограничения:
%systemroot%system32inetsrvappcmd set config -section:requestFiltering -requestLimits.maxAllowedContentLength:20000000 %systemroot%system32inetsrvappcmd set config -section:requestFiltering -requestLimits.maxURL:2048 %systemroot%system32inetsrvappcmd set config -section:requestFiltering -requestLimits.maxQueryString:2048 %systemroot%system32inetsrvappcmd set config -section:system.webServer/security/requestFiltering /+"requestLimits.headerLimits.[header='Content-type',sizeLimit='100']" %systemroot%system32inetsrvappcmd set config -section:system.applicationHost/sites /siteDefaults.limits.connectionTimeout:"00:00:30" /commit:apphost %systemroot%system32inetsrvappcmd set config -section:system.applicationHost/webLimits /headerWaitTimeout:"00:00:30" /commit:apphost %systemroot%system32inetsrvappcmd set config -section:system.applicationHost/webLimits /minBytesPerSecond:"300" /commit:apphost
Источник: https://t.me/informhardening
2018-02-26T11:13:39
Закрытие уязвимостей