Icono del sitio Binario 0

Guía Completa para Configurar y Utilizar Mod_evasive en Apache con Whitelisting de Direcciones IP

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Artículos Guías Manuales Sistemas Linux Windows Binario 0

FacebookEmailWhatsAppLinkedInRedditXShare

Mod_evasive es un módulo para Apache que ayuda a prevenir ataques de denegación de servicio (DoS) y de fuerza bruta al detectar y bloquear múltiples solicitudes desde la misma dirección IP en un corto período de tiempo. Esta guía detalla cómo instalar, configurar y utilizar Mod_evasive en tu servidor Apache, incluyendo la configuración para hacer "whitelisting" de direcciones IP.

Paso 1: Instalación de Mod_evasive

En Ubuntu/Debian

Primero, actualiza el sistema y luego instala el módulo:

sudo apt-get update
sudo apt-get install libapache2-mod-evasive

En CentOS/RHEL

Habilita el repositorio EPEL e instala Mod_evasive:

sudo yum install epel-release
sudo yum install mod_evasive

Paso 2: Configuración de Mod_evasive

Crear el Archivo de Configuración

Crea o edita el archivo de configuración para Mod_evasive.

En Ubuntu/Debian

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

En CentOS/RHEL

sudo nano /etc/httpd/conf.d/mod_evasive.conf

Configuración Básica

Añade las siguientes líneas al archivo de configuración para establecer los parámetros de Mod_evasive:

<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify you@example.com
DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
DOSLogDir "/var/log/mod_evasive"
DOSWhitelist 127.0.0.1
DOSWhitelist 192.168.1.*
</IfModule>

Descripción de los Parámetros

Paso 3: Creación del Directorio de Registro

Asegúrate de crear el directorio de registro especificado en DOSLogDir y asignar los permisos adecuados:

sudo mkdir /var/log/mod_evasive
sudo chown -R www-data:www-data /var/log/mod_evasive

Paso 4: Habilitar el Módulo y Reiniciar Apache

En Ubuntu/Debian

Habilita el módulo Mod_evasive y reinicia Apache:

sudo a2enmod evasive
sudo systemctl restart apache2

En CentOS/RHEL

Reinicia el servicio Apache para aplicar los cambios:

sudo systemctl restart httpd

Paso 5: Verificación de Funcionamiento

Para verificar que Mod_evasive está funcionando correctamente, puedes realizar una prueba con un script en Perl que simula múltiples solicitudes:

Crear el Script de Prueba

Crea un archivo llamado test_evasive.pl con el siguiente contenido:

#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new;
for (my $i=0; $i<100; $i++) {
my $response = $ua->get('http://tu-servidor-url');
print $response->status_line . "\n";
}

Ejecutar el Script de Prueba

Haz el archivo ejecutable y ejecútalo:

chmod +x test_evasive.pl
./test_evasive.pl

Si Mod_evasive está configurado correctamente, debería bloquear las solicitudes repetitivas y verás respuestas de error HTTP 403 Forbidden.

Conclusión

Mod_evasive es una herramienta eficaz para mitigar ataques DoS y de fuerza bruta en servidores Apache. Con la configuración adecuada, incluyendo la lista blanca de direcciones IP, puedes proteger tu servidor contra tráfico malicioso y asegurar que direcciones IP confiables no sean bloqueadas, mejorando así la seguridad y estabilidad de tus servicios web.

Salir de la versión móvil