Mod_evasive es un módulo para Apache que toma medidas automáticamente cuando se detecta un ataque HTTP DoS o un ataque de fuerza bruta. Mod_evasive puede registrar e informar abusos y notificar problemas por correo electrónico. Antes de seguir esta guía, ya debería tener un servidor LAMP funcionando correctamente.
Esta guía fue escrita para CentOS y sus variaciones (como RHEL) y Debian y sus variaciones (como Ubuntu).
El módulo crea una tabla de direcciones IP y URL. Si se cumplen las condiciones establecidas en la configuración (como se describe más adelante en este documento), los usuarios abusivos obtendrán un error 403 (prohibido). Además, la dirección IP se registra y, si se establece la opción, se enviará un correo electrónico a la dirección de correo electrónico especificada.
Paso 1: instalación httpd-devel
El paquete httpd-devel contiene los archivos necesarios que necesita para compilar Dynamic Shared Objects para Apache. Necesitamos este paquete para instalar el módulo, ya que lo compilaremos nosotros mismos en los siguientes pasos.
En CentOS / RHEL, ejecute:
yum install httpd-devel
En Debian / Ubuntu, ejecute:
apt-get install apache2-utils
Una vez que este paquete se haya instalado correctamente, continúe con el siguiente paso. Si la instalación no se completa correctamente, el siguiente paso fallará (muy probablemente).
Paso 2: descarga e instalación mod_evasive
Método 1: compilar
Descargue el módulo:
cd /usr/src
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
Extraer el módulo:
tar xzf mod_evasive*.tar.gz
Navegue al directorio:
cd mod_evasive
A continuación, utilizaremos apxs2
una herramienta creada para construir e instalar módulos que extiendan la funcionalidad de Apache. Apxs2
construye un Objeto dinámico compartido, por eso lo instalamos httpd-devel
en el paso 1.
Ejecutar:
apxs2 -cia mod_evasive20.c
Método 2: Instalación usando yum
(recomendado)
Cuando tiene epel-release
instalado el repositorio, mod_evasive
está disponible a través de yum
.
Agregue el repositorio:
yum install epel-release
Instale el módulo usando yum
:
yum install mod_evasive
Paso 3: Agregar el módulo a Apache
En general, Apache carga todos los módulos mods-enabled
, por lo que cada vez que se agrega un módulo a esa carpeta, no es necesario agregarlo manualmente a la configuración de Apache. Abra su archivo de configuración para verificar si este es el caso.
En CentOS, el archivo relevante es: /etc/httpd/conf/httpd.conf
En Ubuntu, el archivo relevante es: /etc/apache2/apache2.conf
Buscar Include
. Una línea como Include mods-enabled/*.conf
le dice a Apache que cargue todos los módulos. Si no está allí, agregue esa línea en la parte superior del archivo y reinicie Apache.
Para Ubuntu, agregue los siguientes contenidos al final del archivo:
LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.so
Paso 4: configurar y modificar la configuración
Agregue el siguiente bloque al archivo de configuración. Los caminos son los mismos que los del paso 3.
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify <[email protected]>
</IfModule>
Puede encontrar una descripción general rápida de estos parámetros en README
. Puede leer el archivo README de la siguiente manera:
cat /usr/src/cd mod_evasive/README
Lo más probable es que necesite ajustar estas configuraciones de vez en cuando, para asegurarse de que sean adecuadas para su servidor y sitios web. Después de todo, algunos servidores tienen más actividad y tráfico que otros.
Paso 5: reiniciar el servidor web
Reinicie el servidor web Apache para que los cambios surtan efecto y se cargue el módulo:
service httpd restart
Asegúrese de que el módulo esté cargado en Apache:
httpd -M | grep evasive
Esto debería volver evasive20_module (shared)
. De lo contrario, el módulo no se cargó correctamente y recomendamos volver a verificar los archivos de configuración y si se guardaron correctamente.
Tenga en cuenta que este módulo no es un reemplazo para la protección DDoS ya que no puede funcionar cuando la capacidad del servidor se agota. De hecho, Vultr ofrece DDoS Protection, que es muy útil para una mejor protección del servidor (además de usar este módulo). Para amenazas más simples, especialmente ataques basados en scripts, el módulo hace su trabajo y es definitivamente útil.
Ahora ha instalado el mod_evasive
módulo en Apache y, por lo tanto, ha hecho que su aplicación web sea más segura.