مقابله با slowloris dDoS attack با استفاده از ماژول mod_qos:
(تست شده روی Apache2/Debian)
ماژول quality of service برای وب سرورهای Apache، مکانیزمی برای اولویت بندی و کنترل
درخواستهای http هست.
slowloris توسط RSnake و به زبان perl نوشته شده و میتونه درحمله dDoS بر روی وب سرور
apache و سرور squid caching pro/xy استفاده بشه.
البته سرورهای IBM http و IBM webSphere edge caching pro/xy هم نسبت به slowloris
آسیب پذیرن.
slowloris بطورمداوم صدها درخواست معتبر http رو به سمت سرور ارسال میکنه وبا تولید کمترین ترافیک tcp برای این درخواستها، این کانکشن ها رو باز نگه داره تا سرور ازپا دربیاد ودیگه سرورنمیتونه به ترافیک سالم http پاسخ بده...
حتی شبکه هایی که از سخت افزارهای load balancer هم استفاده میکنن، وب سرورشون به slowloris dos آسیب پذیر هست.
mod-qos میتونه با محدود کردن تعداد کانکشن های tcp وغیرفعال کردن keep-alive برای کانکشن tcp (مثلا هنگامیکه کانکشن های tcp به بیش از 70% برسه) و برای جلوگیری از بازبودن کانکشن های slowloris که هیچ درخواستی ندارن با درنظر گرفتن حداقل میزان data rate برای این درخواستها وپاسخ دادن به اونا با slowloris مقابله کنه.
ماژول mod-qos ازلینک mod_qos | Free software downloads at SourceForge.net قابل دریافت هست.
فعال سازی و پیکربندی mod-qos:
ویراش فایل vi qos.load# :
کد:
LoadModule qos_module /usr/lib/apache2/modules/mod_qos.so
ویراش فایل vi qos.conf# :
کد:
## QoS Settings <IfModule mod_qos.c> # handles connections from up to 100000 different IPs: QS_ClientEntries 100000 # will allow only 50 connections per IP: QS_SrvMaxConnPerIP 50 # maximum number of active TCP connections is limited to 256: MaxClients 256 # disables keep-alive: QS_SrvMaxConnClose 180 # minimum request/response speed (slowloris keeping connections open without requesting anything): QS_SrvMinDataRate 150 1200 # and limit request header and body: # LimitRequestFields 30 # QS_LimitRequestBody 102400 </IfModule>
فعال کردن ماژول و راه اندازی مجدد apache:
کد:
a2enmod qos /etc/init.d/apache2 restart