mod_evasive es un módulo de Apache que ayuda a prevenir ataques de Denegación de Servicio (DoS) y Brute Force. Este módulo responde a los ataques detectados con una respuesta de error temporizado (HTTP error 403).
Aquí te dejo los pasos para su instalación y configuración:
1. Instalación:
Para instalar mod_evasive en Ubuntu/Debian podemos hacerlo directamente desde los repositorios:
```bash
sudo apt-get install libapache2-mod-evasive
```
Para instalación en Centos:
```bash
sudo yum install mod_evasive
```
2. Configuración:
Una vez instalado, puedes configurar mod_evasive para que se adapte a tus necesidades. Puedes encontrar el archivo de configuración en /etc/apache2/mods-available/evasive.conf (Ubuntu) o /etc/httpd/conf.d/mod_evasive.conf (CentOS).
Aquí están algunas de las directivas que puedes configurar:
- DOSHashTableSize: Número de nodos de la tabla hash para rastrear actividades de usuarios.
- DOSPageCount: Número máximo de solicitudes permitidas para la misma página por la misma dirección IP en un intervalo de tiempo determinado.
- DOSSiteCount: Número máximo de solicitudes permitidas por la misma dirección IP en un intervalo de tiempo determinado.
- DOSBlockingPeriod: Número de segundos durante el cual se bloqueará una dirección IP.
- DOSEmailNotify: Si se especifica, se enviará un correo electrónico a la dirección de correo electrónico cuando se bloquee una dirección IP.
- DOSSystemCommand: Si se especifica, se ejecutará este comando cuando se bloquee una dirección IP.
Ejemplo de configuración:
```bash
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify you@yourdomain.com
```
3. Reiniciar Apache:
Por último, después de hacer los cambios, reinicia Apache para que los cambios tengan efecto.
En Ubuntu/Debian:
```bash
sudo service apache2 restart
```
En CentOS:
```bash
sudo service httpd restart
```
4. Prueba mod_evasive:
Podemos probar mod_evasive usando una herramienta llamada ‘ab’ (Apache HTTP server benchmarking tool). Esta herramienta está diseñada para darle una idea de la ejecución de su servidor Apache.
```bash
ab -n 100 -c 10 http://yourwebsite.com/
```
Si mod_evasive está funcionando correctamente, deberías ver respuestas HTTP 403 en el terminal.
Esto es un ejemplo básico de cómo puedes instalar y configurar mod_evasive en tu servidor Apache. Te recomendaría hacer más investigaciones sobre cómo darle la mejor configuración para tu sitio web y tus necesidades.