How to Secure Apache with Mod_evasive On Ubuntu 14.04

Protéjase contra DDoS con Mod_evasive en el servidor Apache

Mod_evasive es un módulo de Apache que proporciona una acción evasiva en caso de un ataque HTTP DoS o DDoS o un ataque de fuerza bruta. mod_evasive actualmente informa actividad maliciosa 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 URI y denegando cualquier dirección IP única de cualquiera de las siguientes condiciones:

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

En este tutorial, discutiré 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 ejecutando:

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á el siguiente resultado:

evasive20_module (shared)

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». De forma predeterminada, las opciones de configuración de mod_evasive están deshabilitadas, por lo que deberá habilitarlas primero. Para hacer esto, edite el archivo “evasive.conf”:

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

Remover # de las siguientes lineas:

    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   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 realiza un seguimiento de quién accede a qué. Aumentar 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 solicitudes idénticas a un URI específico puede realizar un visitante durante el intervalo DOSPageInterval.

DOSSiteCount : Esto es similar a DOSPageCount pero corresponde a cuántas solicitudes en general puede hacer un visitante 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 tiempo de 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 siempre que una dirección IP esté en la 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 funciona o no. Puede hacerlo utilizando un script de 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 resultado:

Apache_mod_evasive_perl_prueba

El script realiza 100 solicitudes a su servidor web. El código de respuesta 403 indica que el servidor web deniega el acceso.

Conclusión

mod_evasive es una herramienta muy importante para asegurar un servidor web Apache contra varias amenazas. Puede experimentar con mod_evasive y diferentes opciones en un entorno de prueba. Si tiene alguna pregunta, puede escribirla en el cuadro de comentarios a continuación.

Experto Geek - Tu Guía en Tendencias Tecnológicas