Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

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”.

Apache

One Response so far.

  1. Costin Bucuresteanu says:

    sunt atacat de 4-5 zile incontinu de un astfel de atac DoS , si nu pot face nimic problemea mea este ca sunt un noob la apache practic nu stiu nimic , spre exemplu as putea intelege explicatia facuta de tine daca as sti cum ai ajuns la acel [email protected] install , eu nu ajung acolo!! din cmd cum ce fac