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