Ubuntu Sur

“Las personas nacen libres e iguales en dignidad y derechos”

Protegiendo Apache2 de ataques DoS con mod-evasive

Posted by K|Ke on June 15th, 2009

ataque-ddosPrimero veamos que son los ataques DoS. Conforme nos señala Wikipedia, “En seguridad informática, un ataque de denegación de servicio, también llamado ataque DoS (de las siglas en inglés Denial of Service), es un ataque a un sistema de computadoras o red que causa que un servicio o recurso sea inaccesible a los usuarios legítimos. Normalmente provoca la pérdida de la conectividad de la red por el consumo del ancho de banda de la red de la víctima o sobrecarga de los recursos computacionales del sistema de la víctima.

Se genera mediante la saturación de los puertos con flujo de información, haciendo que el servidor se sobrecargue y no pueda seguir prestando servicios, por eso se le dice “denegación”, pues hace que el servidor no dé abasto a la cantidad de usuarios. Esta técnica es usada por los llamados crackers para dejar fuera de servicio a servidores objetivo.

El llamado DDoS (siglas en inglés de Distributed Denial of Service, denegación de servicio distribuida) es una ampliación del ataque DoS, se efectúa con la instalación de varios agentes remotos en muchas computadoras que pueden estar localizadas en diferentes puntos. El invasor consigue coordinar esos agentes para así, de forma masiva, amplificar el volumen de saturación de información, pudiendo darse casos de un ataque de cientos o millares de computadoras dirigido a una máquina o red objetivo. Esta técnica se ha revelado como una de las más eficaces y sencillas a la hora de colapsar servidores, la tecnología distribuida ha ido sofisticándose hasta el punto de otorgar poder de causar daños serios a los ordenadores de personas con escaso conocimiento técnico”.

Bien, para asegurar nuestro servidor Apache, vamos a instalar el módulo mod-evasive, en Ubuntu como en Debian, esto es bastante simple:

$ sudo apt-get install libapache2-mod-evasive

Luego de instalado el módulo reiniciamos Apache

$ sudo /etc/init.d/apache2 restart

Y podemos hacer una prueba

$ perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl

y podremos ver algo parecido a esto:

kike@servidor:~$ perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden

También puedes ver lo que ocurre cuando actualizas repetidamente el navegador:

Forbidden

You don’t have permission to access / on this server.


Apache Server at kike.ath.cx Port 80
:D listo, asegurado Apache
  • Share/Bookmark

Entradas relacionadas:

  1. HUMOR: 19 cosas tontas contra UBUNTU
  2. Prevenir intrusiones con fail2ban en Ubuntu y Ubuntu Server

6 Respuestas a “Protegiendo Apache2 de ataques DoS con mod-evasive”

  1. mama21mama Dice:

    interesante; pero a mi me salio todas las lineas

    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK

    esta bien eso?

    :S

  2. K|Ke Dice:

    Hola, no claro que no esta bien, debes reiniciar apache.

    Saludos.

  3. mama21mama Dice:

    Ahora si :D

    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 403 Forbidden
    HTTP/1.1 403 Forbidden
    HTTP/1.1 403 Forbidden
    HTTP/1.1 403 Forbidden

  4. Rubén Dice:

    Muy bueno el artículo, pero podrías avisar que durante un rato no se puede acceder a la página haciendo múltiples clicks.

    Un saludo.

  5. Franco Dice:

    Gracias por el post, te comento que lo tuve que combinar con este http://advosys.ca/viewpoints/2006/08/installing-mod_evasive-in-ubuntu/ Todo perfecto, pero cuando lanzo el test obtengo lo siguiente:

    HTTP/1.1 500 Internal Server Error
    HTTP/1.1 500 Internal Server Error
    HTTP/1.1 500 Internal Server Error
    HTTP/1.1 500 Internal Server Error
    HTTP/1.1 500 Internal Server Error
    HTTP/1.1 500 Internal Server Error
    HTTP/1.1 500 Internal Server Error
    HTTP/1.1 500 Internal Server Error
    HTTP/1.1 500 Internal Server Error
    HTTP/1.1 500 Internal Server Error
    HTTP/1.1 500 Internal Server Error

    cuando miro el error.log de apache nada y el access.log me dice lo siguiente:

    127.0.0.1 – - [24/Nov/2009:06:25:08 -0800] “GET /?0 HTTP/1.0″ 500 17524 “-” “-”
    127.0.0.1 – - [24/Nov/2009:06:25:09 -0800] “GET /?1 HTTP/1.0″ 500 17524 “-” “-”
    127.0.0.1 – - [24/Nov/2009:06:25:10 -0800] “GET /?2 HTTP/1.0″ 500 17524 “-” “-”
    127.0.0.1 – - [24/Nov/2009:06:25:11 -0800] “GET /?3 HTTP/1.0″ 500 17524 “-” “-”
    127.0.0.1 – - [24/Nov/2009:06:25:12 -0800] “GET /?4 HTTP/1.0″ 500 17524 “-” “-”
    127.0.0.1 – - [24/Nov/2009:06:25:13 -0800] “GET /?5 HTTP/1.0″ 500 17524 “-” “-”
    127.0.0.1 – - [24/Nov/2009:06:25:14 -0800] “GET /?6 HTTP/1.0″ 500 17524 “-” “-”
    127.0.0.1 – - [24/Nov/2009:06:25:14 -0800] “GET /?7 HTTP/1.0″ 500 17524 “-” “-”

    Tengo trabajando al apache con mongrel para rails. Alguna sugerencia?

  6. Franco Dice:

    perdon, era un error en mi aplicacion, pero ahora tengo lo siguiente:

    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    (…. y muchas lineas mas :P )

    vi en los comentarios mas arriba que le has dicho a alguien que le falta reiniciar su apache, pero ya lo he reiniciado varias veces y sigue dandome lo mismo.

    cuando hago apache2ctl -M veo el modulo evasive20 cargado. La configuracion del modulo la tengo en /etc/apache2/mods-availables/evasive.conf

Deje una respuesta

XHTML: Usted puede usar estos tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>