Slowloris DDOS вэб серверов

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 





2018-02-26T11:13:39
Закрытие уязвимостей