Cómo protegerse contra DDoS con Mod_evasive en Apache Server

Este artículo forma parte de la serie Guía del servidor Apache :

  • Securing Apache on Ubuntu – Part 1
  • Securing Apache on Ubuntu – Part 2
  • Optimización del rendimiento de Apache – Parte 1
  • Optimizando el rendimiento de Apache – Parte 2
  • Setting Up Name-Based Virtualhost Apache
  • Configuración de IP y Port-Based Virtualhost en Apache
  • Cómo configurar el directorio web de protección con contraseña en Apache
  • Configuración de Apache Server con soporte para SSL en Ubuntu
  • Configurar Fail2ban para proteger a Apache de un ataque DDOS
  • Cómo configurar Webdav con Apache en Ubuntu
  • Monitoree el servidor web Apache usando Mod_status
  • Cómo protegerse contra DDoS con Mod_evasive en Apache Server

Mod_evasive es un módulo de Apache que proporciona acción evasiva en el caso de un ataque HTTP DoS o DDoS o un ataque de fuerza bruta. mod_evasive actualmente informa de actividades maliciosas a través de correo electrónico y syslog. El módulo mod_evasive funciona creando una tabla hash dinámica interna de direcciones IP y URIs y negando cualquier dirección IP desde cualquiera de las siguientes condiciones:

  • Solicitar la misma página más de unas cuantas veces por segundo
  • Hacer más de 50 solicitudes simultáneas sobre el mismo hijo por segundo
  • Hacer cualquier solicitud mientras está temporalmente en la lista negra (en una lista de bloqueo)

En este tutorial explicaré cómo instalar, configurar y usar mod_evasive en su servidor Apache. Este tutorial utiliza un servidor Ubuntu 14.04.

Instalando mod_evasive

Primero, asegúrese de que el servidor Apache esté instalado y funcionando.

A continuación, puede instalar el módulo mod_evasive ejecutándolo:

sudo apt-get install libapache2-mod-evasive

Después de instalar mod_evasive, puede verificar este módulo ejecutando los siguientes comandos:

sudo apachectl -M | grep evasive

Si mod_evasive está habilitado, verá la siguiente salida:

evasive20_module (compartido)

Configurar Mod_evasive

El módulo mod_evasive lee su configuración desde «/etc/apache2/mods-enabled/evasive.conf». Puede personalizar fácilmente el módulo mod_evasive a través del archivo de configuración «evasive.conf». Por defecto, las opciones de configuración de mod_evasive están deshabilitadas, por lo que deberá habilitarlas primero. Para ello, edite el archivo «evasive.conf»:

sudo nano /etc/apache2/mods-enabled/evasive.conf

Eliminar # de las siguientes líneas:

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50

DOSPageInterval 1
DOSSiteIntervalo 1
Período de bloqueo DOSBlocking 10
DOSEmailNotify mail@yourdomain.com
DOSLogDir «/var/log/apache2/»

Guarde el archivo y reinicie Apache para que los cambios surtan efecto:

sudo /etc/init.d/apache2 restart

Puede cambiar los valores anteriores de acuerdo con la cantidad y el tipo de tráfico que su servidor web necesita manejar.

DOSHashTableSize : Esta directiva especifica cómo mod_evasive mantiene un registro de quién está accediendo a qué. El aumento de este número proporcionará una búsqueda más rápida de los sitios que el cliente ha visitado en el pasado.

DOSPageCount : Esta directiva especifica cuántas peticiones idénticas a una URI específica puede hacer un visitante a lo largo del intervalo DOSPageInterval.

DOSSiteCount..: Esto es similar a DOSPageCount pero corresponde al número total de peticiones que un visitante puede hacer a su sitio durante el intervalo DOSSiteInterval.

DOSBlockingPeriod : Si un visitante excede los límites establecidos por DOSSPageCount o DOSSiteCount, su IP será bloqueada durante el período de bloqueo DOSBlockingPeriod. Durante este intervalo, recibirá un error 403 (Prohibido).

DOSEmailNotify : Se enviará un correo electrónico a la dirección de correo electrónico especificada cada vez que se incluya una dirección IP en una lista negra.

DOSLogDir : Esta directiva especifica la ubicación del directorio de registro.

Probando Mod_evasive

Ahora es el momento de probar si el módulo mod_evasive está funcionando o no. Puede hacer esto usando un script perl «test.pl» ubicado en el directorio «/usr/share/doc/libapache2-mod-evasive/examples/».

Puede ejecutar el script ejecutando el siguiente comando:

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

Debería ver el siguiente mensaje:

Cómo protegerse contra DDoS con Mod_evasive en Apache Server

El script hace 100 peticiones a su servidor web. El código de respuesta 403 indica que el acceso es denegado por el servidor web.

Conclusión

mod_evasive es una herramienta muy importante para proteger un servidor web Apache contra varias amenazas. Puede experimentar con las diferentes opciones de mod_evasive en un entorno de pruebas. Si tiene alguna pregunta, puede escribirla en el cuadro de comentarios de abajo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *