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%\system32\inetsrv\appcmd set config -section:requestFiltering -requestLimits.maxAllowedContentLength:20000000
%systemroot%\system32\inetsrv\appcmd set config -section:requestFiltering -requestLimits.maxURL:2048
%systemroot%\system32\inetsrv\appcmd set config -section:requestFiltering -requestLimits.maxQueryString:2048
%systemroot%\system32\inetsrv\appcmd set config -section:system.webServer/security/requestFiltering /+"requestLimits.headerLimits.[header='Content-type',sizeLimit='100']"
%systemroot%\system32\inetsrv\appcmd set config -section:system.applicationHost/sites /siteDefaults.limits.connectionTimeout:"00:00:30" /commit:apphost
%systemroot%\system32\inetsrv\appcmd set config -section:system.applicationHost/webLimits /headerWaitTimeout:"00:00:30" /commit:apphost
%systemroot%\system32\inetsrv\appcmd set config -section:system.applicationHost/webLimits /minBytesPerSecond:"300" /commit:apphost 


cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40