mod_evasive e un modul Apache care ofera o metoda eficienta de protectie impotriva atacurilor HTTP de tip DoS, DDoS sau brute force. Protectia exista datorita unor tabele de tip hash (Key->Value) interne care includ IP-urile vizitatorilor si URI-urile vizitate. Cand se cere de prea multe ori aceeasi pagina intr-un interval de o secunda IP-ul vizitatorului este blocat pentru o perioada de timp. De asemenea se blocheaza si cand se fac mai mult de 50 de cereri de la aceeasi adresa IP, pe acelasi proces apache.
Ultima varianta stabila a mod_evasive e 1.10.1 si o putem instala urmand pasii de mai jos:
[root@server ~]# mkdir install [root@server ~]# cd install [root@server ~/install]# wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz [root@server ~/install]# tar -zxvf mod_evasive_1.10.1.tar.gz x mod_evasive/ x mod_evasive/.cvsignore x mod_evasive/LICENSE x mod_evasive/Makefile.tmpl x mod_evasive/README x mod_evasive/mod_evasive.c x mod_evasive/mod_evasive20.c x mod_evasive/mod_evasiveNSAPI.c x mod_evasive/test.pl x mod_evasive/CHANGELOG [root@server ~/install]# cd mod_evasive [root@server ~/install/mod_evasive]# /usr/local/sbin/apxs -cia mod_evasive.c cc -DLOGIN_CAP -funsigned-char -O2 -fno-strict-aliasing -pipe -DDOCUMENT_LOCATION="/usr/local/www/data" -DDEFAULT_PATH="/bin:/usr/bin:/usr/local/bin" -DHARD_SERVER_LIMIT=512 -fpic -DSHARED_MODULE -I/usr/local/include/apache -c mod_evasive.c cc -shared -o mod_evasive.so mod_evasive.o [activating module `evasive' in /usr/local/etc/apache/httpd.conf] cp mod_evasive.so /usr/local/libexec/apache/mod_evasive.so chmod 755 /usr/local/libexec/apache/mod_evasive.so cp /usr/local/etc/apache/httpd.conf.new /usr/local/etc/apache/httpd.conf rm /usr/local/etc/apache/httpd.conf.new [root@server ~/install/mod_evasive]#
Dupa cum se vede, am downloadat ultima versiune de mod_evasive, am dezarhivat-o folosind comanda tar -zxvf mod_evasive_1.10.1.tar.gz si apoi am instalat modulul folosind binarul apxs, care vine cu instalarea serverului apache /usr/local/sbin/apxs -cia mod_evasive.c. E posibil ca in functie de sistemul de operare folosit sau de modul de personalizare a instalarii apache locatia fisierului apxs sa difere caz in care trebuie sa cautati calea corecta catre binar.
Daca versiunea serverului apache e 2.x, nu 1.3 ca in cazul serverului pe care am instalat, trebuie sa inlocuiti parametrul transmis binarului apxs din mod_evasive.c in mod_evasive20.c.
In mod normal apxs modifica fisierul httpd.conf pentru a include modulul. Putem verifica daca a fost introdus folosind comanda awk:
[root@server ~/install]# awk '/mod_evasive/' /usr/local/etc/apache/httpd.conf LoadModule evasive_module libexec/apache/mod_evasive.so AddModule mod_evasive.c [root@server ~/install]#
De data asta modulul a fost adaugat corect. Daca nu gasiti cele doua linii in httpd.conf va trebui sa editati manual fisierul si sa le adaugati.
Dupa instalare putem personaliza putin modul de protectie adaugand urmatorul bloc de instructiuni in fisierul httpd.conf:
<ifmodule mod_evasive.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 90 </ifmodule>
Cu toate ca e un modul foarte util, se pare ca autorul nu si-a facut timp pentru a scrie un manual de instructiuni. Oricum, numele directivelor sunt sugestive pentru orice cunoscator al limbii engleze.
Pe langa directivele de mai sus mai sunt cel putin inca doua care ar starni interesul. Prima este DOSWhitelist care permite crearea de exceptii si se foloseste de forma DOSWhitelist 1.2.3.4 unde 1.2.3.4 e IP-ul privilegiat. A doua este DOSSystemCommand cu ajutorul careia putem determina modulul sa interactioneze cu alte componente ale serverului – ex. firewall sau sistem de alertare. Pentru a bloca automat IP-urile care creaza probleme putem folosi directiva DOSSystemCommand sub forma DOSSystemCommand “sudo -u root /sbin/ipfw -q add 51000 deny ip from %s to any in via em0″.
Popularity: 4% [?]


