В предната публикация (Как да счупим Apache със Slowloris) обясних какво е Slowloris , за какво се ползва и как работи т.е. как се чупи Apache с него. Както е всеизвестно най- лесно е да се счупи нещо(като се ползва готов инструмент разбира се), но също интересно е и да имаме добри превантимни мерки.
За защита на Apache от Slowloris и други подобни DoS атаки ще използваме един сравнително млад модул за Apache: qos (http://sourceforge.net/projects/mod-qos/) .
mod_qos е quality of service(QOS) модул за Apache. Той изпълнява механизми за контрол които могат да предоставят различни приоритети на различните заявки и да контролира достъпа до сървъра на базата на наличните ресурси
1. Ще инсталираме необходимите ни пакети за компилацията
apt-get install apache2-threaded-dev gcc
2. Изтегляме qos модула
cd /tmp/
wget http://freefr.dl.sourceforge.net/project/mod-qos/mod-qos/9.7/mod_qos-9.7.tar.gz
3. Ще го разархивираме и компилираме
tar zxvf mod_qos-9.7.tar.gz
cd mod_qos-9.7/apache2/
apxs2 -i -c mod_qos.c
Става ясно, че се е инсталирал във "/usr/lib/apache2/modules"
4. Сега ще направим конфигурация на модула
cd /etc/apache2/mods-available/
vim qos.load
LoadModule qos_module /usr/lib/apache2/modules/mod_qos.so
vim 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 when 70% of the TCP connections are occupied:
QS_SrvMaxConnClose 180
# minimum request/response speed (deny slow clients blocking the server, ie. slowloris keeping connections open without requesting anything):
QS_SrvMinDataRate 150 1200
# and limit request header and body (carefull, that limits uploads and post requests too):
# LimitRequestFields 30
# QS_LimitRequestBody 102400
</IfModule>
5. Сега зареждаме qos модула и рестартираме apache:
a2enmod qos
/etc/init.d/apache2 restart
Сега системата ни е защитена от Slowloris. За целта от предния урок може да тествате да я атакувате и ще се съгласите.
PS: Надявам се, че ще има благодарни адмнистратори които са го пропуснали в близките 6-7 месеца :(случва се на всеки затова го правя, за да се информираме взаимно)
Как да защитим Apache от счупване причинено от Slowloris,
Най ме нерви гадната ти "СЕЛО" оптимизация :D
Не за друго, еми не е добре много хора да научават как се фикс-ва… смисъл такъв, че трябва да има терор :P
haha :))
Полезно :)
хаха, тва е пълна дупка за апачето, има хиляди други варианти за конекшън защитата. Тая дупка ти отваря още 100 такива:) браво за тоя който го е измислил,,
А мерси ! Че зе да ми писва вече от нагли дечурлига …
за какво изобщо ще инсталират нови модули, които не са особено добре проверени и за какво ще пускат точно tcpdump като могат да видят с netstat кое IP отваря по толкова много конекции към apache и да го блокират за една секунда, без да се опасяват че ще счупят уеб сървъра?
Със netstat ще видиш едно, а с tcpdump можеш да видиш доста по детайлна информация за сорса на изпратените пакети или с други думи това е лично предпочитание. На които не му допада има толкова много тулки за тази цел :)
Да не би бутането на Slowloris да е единствения начин..
Браво! Много добра работа беше ми наистина полезно, че ми писна да ми събарят сайта!