Nemrégiben gondom akadt egy gépen a folyamatos DDoS olás miatt állandóan leakadt az apache szerver. Nagyon megelégeltem és mivel sajnos nincs előtte valamilyen hardveres tűzfal ami szépen eldobálná ezeket a kapcsolatokat muszáj voltam keresni valami szoftveres megoldást. Persze a debian stable és oldstable csomagok között még véletlenül sincs ilyen, csak az unstable és a testing csomagokban találtam apachehoz qos modult. De se gáz, hozzá lehet ezt szépen adni anélkül is.
Mi is a QoS (Quality of Service): A QOS egy olyan hálózati eljárások összessége, amivel a QoS használatára felkészített eszközök vagy programok számára megfelelő minőségű adatforgalmat lehet biztosítani. A QoS segítségével a hálózaton meghatározott sebességgel és adott időkereten belül lehet az adatokat továbbítani. A QOS szolgáltatást az IEEE 802.1p szabvány támogatja. (Forrás: http://hu.net.wikia.com/wiki/QOS)
Tehát az apache QoS modult egyszerűen le lehet tölteni innen: http://opensource.adnovum.ch/mod_qos/ tar.gz formátumban. Ezután a tlelpítés lépései a következők:
- Töltsd le a modult.
- Tömörtsd ki
- A kitömörített modulban lépj be az apach2 könyvtárba
- Ha még nem lenne telepítve a következő két modul akkor install előtt telepíteni kell ezeket (apache2-threaded-dev gcc)
- Telepítsd fel a modult a következő paranccsal: “apxs2 -i -c mod_qos.c”
- Készítsd el a qos modul apache betöltő fájlját a következő parancsal (persze máshogy is lehetséges): echo “LoadModule qos_module /usr/lib/apache2/modules/mod_qos.so” > /etc/apache2/mods-available/qos.load
- Készíts qos.conf fájlt ami a qos modul konfigurációs fájlja lesz, például: touch etc/apache2/mods-available/qos.conf
- Konfiguráld be a modul, ehhez itt egy alap konfig:
“# maximum number of active TCP connections is limited to 896 (limited
# by the available memory, adjust the settings according to the used
# hardware):
MaxClients 896# idle timeout:
Timeout 20# keep alive (for up to 85% of all connections):
KeepAlive on
MaxKeepAliveRequests 60
KeepAliveTimeout 3
QS_SrvMaxConnClose 85%# name of the HTTP response header which marks preferred clients (this
# may be used to let the application decide which clients are “good” and
# have higher privileges, e.g. authenticated users. you may also use
# the QS_VipUser directive when using an Apache authentication module such
# as mod_auth_basic or mod_auth_oid):
QS_VipIPHeaderName mod-qos-login# enables the known client prefer mode (server allows new TCP connections
# from known/good clients only when is has more than 716 open TCP connections):
QS_ClientPrefer 80# minimum request/response speed (deny slow clients blocking the server,
# e.g. defending slowloris):
QS_SrvMinDataRate 120 1500 400# and limit request line, header and body:
LimitRequestLine 7168
LimitRequestFields 30
QS_LimitRequestBody 102400# don’t allow more than 30 TCP connections per client source address:
QS_SrvMaxConnPerIP 30
“ - Kapcsolat be a modult majd apache restart: “a2enmod qos”, “/etc/init.d/apache2 restart”
- örülj!
A konfig nem teljeskörű a fenti linken a teljes paraméterezés is látható, jó szórakozást hozzá!