Jest fajny moduł do apacha2, który w pewnym stopniu blokuje ataki DoS oraz DDoS.
Oczywiście wszystko zależy od możliwości atakującego i naszych zasobów sieciowych oraz sprzętowych.
Ale do rzeczy.
Mowa o mod_qos
aktualna wersja na 10.06.2011:
cd /usr/src
wget http://netcologne.dl.sourceforge.net/project/mod-qos/mod_qos-9.57.tar.gz
tar zxvf mod_qos-9.57.tar.gz
cd mod_qos-9.57/apache2
apxs2 -i -c mod_qos.c
cd / etc/apache2/mods-available
mcedit qos.load
w zawartości:
##########################
LoadModule qos_module /usr/lib/apache2/modules/mod_qos.so## QoS module Settings<IfModule mod_qos.c># zezwalamy na polaczenia z 1000 różnych IP.QS_ClientEntries 1000# Kazde IP moze wykonac 40 polaczenQS_SrvMaxConnPerIP 40# Maksymalna ilosc rownoczesnych polaczen TCPMaxClients 256# Wylacz keep-alive gdy aktywnych jest polaczenQS_SrvMaxConnClose 180# zapytanie / czas odpowiedzi ( ubij polaczenia niczego niezadajace, DoS)QS_SrvMinDataRate 150 1200CustomLog logs/qsaudit_log „%{qos-path}n%{qos-query}n”</IfModule>LoadModule qos_module /usr/lib/apache2/modules/mod_qos.so
## QoS module Settings
<IfModule mod_qos.c>
# zezwalamy na polaczenia z 1000 różnych IP.
QS_ClientEntries 1000
# Kazde IP moze wykonac 40 polaczen
QS_SrvMaxConnPerIP 40
# Maksymalna ilosc rownoczesnych polaczen TCP
MaxClients 256
# Wylacz keep-alive gdy aktywnych jest polaczen
QS_SrvMaxConnClose 180
# zapytanie / czas odpowiedzi ( ubij polaczenia niczego niezadajace, DoS)
QS_SrvMinDataRate 150 1200
</IfModule>
#####################################
Teraz aktywujemy moduł:
a2enmod qos
no i restartujemy apache2:
/etc/init.d/apache2 restart
Oczywiście gdy DDoS będzie pochodził z większej ilości IP jak określonych w QS_ClientEntries to się powiedzie.
Dlatego ważne jest ustalić dokładnie parametry pracy modułu mając na uwadze wydolność naszej sieci oraz moc obliczeniową serwera.
inspiracja – sow 😉