Configurar mod_evasive para prevenir ataques DoS y DDoS en CentOS

En este artículo, aprenderemos cómo instalar y configurar mod_evasive para prevenir ataques DoS y DDoS en CentOS.

Para esta demostración, hemos utilizado el servidor dedicado CentOS 7 de 64 bits.

Empecemos.

El módulo de Apache mod_evasive. Ayuda a mantener el ataque de denegación de servicio distribuido (DoS y DDoS) y los ataques de fuerza bruta en el servidor web Apache. El mod_evasive opera monitoreando las solicitudes entrantes y reportando el abuso por correo electrónico y las instalaciones de syslog. Está destinado a ser una herramienta de detección y administración de redes y se configura rápidamente para comunicarse con ipchains, firewalls, enrutadores y más.

El mod_evasive observa las solicitudes sospechosas y niega cualquier dirección IP de cualquiera de los siguientes:

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

Prerrequisitos

  • Servidor dedicado CentOS 7 de 64 bits o servidor en la nube (también funciona con CentOS 6)
  • Apache Webserver LAMP (Linux, Apache, MySQL, PHP) instalado y configurado
  • Servidor de correo

1. Mantenga el servidor actualizado:

# yum update -y

2. Instale EPEL (paquetes adicionales para Enterprise Linux):

# yum install epel-release -y

3. Instale el requisito previo de mod_evasive:

# yum install httpd-devel

4. Instale mod_evasive:

# yum install mod_evasive -y

Ahora, mod_evasive está instalado

5. Para agregar la configuración mod_evasive a su archivo de configuración de Apache:

De forma predeterminada, la línea LoadModule se agregará en el archivo de configuración mod_evasive.conf. Abra el archivo y agregue la siguiente línea si aún no está presente.

# vi /etc/httpd/conf.d/mod_evasive.conf

LoadModule evasive20_module modules/mod_evasive24.so

Abra el archivo de configuración mod_evasive.conf y verifique las siguientes entradas.

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify

Puede configurar las entradas anteriores según sus necesidades. Modifique DOSEmailNotify a su ID de correo electrónico.

Para incluir la dirección IP en la lista blanca, agregue la siguiente línea en el archivo de configuración:

DOSWhitelist 127.0.0.1

DOSWhitelist 127.0.0.*

También puede agregar varias direcciones IP.

Una entrada más necesita cambiar DOSLogDir. De forma predeterminada, se refiere a / tmp para un mecanismo de bloqueo.

Cree un nuevo directorio en / var / log / :

# mkdir /var/log/mod_evasive

Establezca la propiedad para el usuario de apache:

# chown -R apache:apache /var/log/mod_evasive

Ahora, edite la siguiente línea en la configuración mod_evasive y modifique la ruta del directorio:

DOSLogDir  /var/log/mod_evasive

Guarde y salga del archivo de configuración mod_evasive.

A continuación, reinicie Apache:

# systemctl restart httpd.service

Eso es todo, mod_evasive instalado y configurado.

Más información sobre las opciones de configuración de mod_evasive
Estas descripciones de las opciones de configuración se tomaron directamente del archivo README.

DOSHashTableSize

El tamaño de la tabla hash define el número de nodos de nivel superior para la tabla hash de cada niño. Aumentar este número proporcionará un rendimiento más rápido al disminuir el número de iteraciones necesarias para llegar al registro, pero consumirá más memoria para el espacio de tabla. Debería aumentar esto si tiene un servidor web ocupado. El valor que especifique se asignará automáticamente al siguiente número primo en la lista de primos (consulte mod_evasive.c para obtener una lista de los primers utilizados).

DOSPageCount

Este es el umbral para la cantidad de solicitudes para la misma página (o URI) por intervalo de página. Una vez que se haya superado el umbral para ese intervalo, la dirección IP del cliente se agregará a la lista de bloqueo.

DOSSiteCount

Este es el umbral para el número total de solicitudes de cualquier objeto por parte del mismo cliente en el mismo oyente por intervalo de sitio. Una vez que se haya superado el umbral para ese intervalo, la dirección IP del cliente se agregará a la lista de bloqueo.

DOSPageInterval

El intervalo para el umbral de recuento de páginas; por defecto a intervalos de 1 segundo.

DOSSiteInterval

El intervalo para el umbral de recuento de sitios; por defecto a intervalos de 1 segundo.

DOSBlockingPeriod

El período de bloqueo es la cantidad de tiempo (en segundos) que un cliente estará bloqueado si se agrega a la lista de bloqueo. Durante este tiempo, todas las solicitudes posteriores del cliente darán como resultado un 403 (Prohibido) y el temporizador se reiniciará (por ejemplo, otros 10 segundos). Dado que el temporizador se reinicia para cada solicitud posterior, no es necesario tener un período de bloqueo prolongado; en el caso de un ataque DoS, este temporizador se reiniciará.

DOSEmailNotify

Si se establece este valor, se enviará un correo electrónico a la dirección especificada cada vez que una dirección IP se incluya en la lista negra. Un mecanismo de bloqueo que utiliza / tmp evita que se envíen correos electrónicos continuos.

Nota:

Asegúrese de que MAILER esté configurado correctamente en mod_evasive.c (o mod_evasive20.c). El valor predeterminado es "/ bin / mail -t% s", donde% s se usa para indicar la dirección de correo electrónico de destino establecida en la configuración. Si está ejecutando Linux o algún otro sistema operativo con un tipo de correo diferente, deberá cambiar esto.

DOSSystemCommand

Si se establece este valor, el comando del sistema especificado se ejecutará siempre que una dirección IP pase a la lista negra. Esto está diseñado para permitir llamadas al sistema al filtro de IP u otras herramientas. Un mecanismo de bloqueo que utiliza / tmp evita las llamadas continuas al sistema. Utilice% s para indicar la dirección IP de la IP incluida en la lista negra.

DOSLogDir

Elija un directorio temporal alternativo
De forma predeterminada, se utilizará “/ tmp” para el mecanismo de bloqueo, lo que abre algunos problemas de seguridad si su sistema está abierto para usuarios de shell. En el caso de que tenga usuarios de shell sin privilegios, querrá crear un directorio en el que solo se pueda escribir el usuario con el que se ejecuta Apache (generalmente root), luego configure esto en su httpd.conf.

En este artículo, hemos cubierto cómo nuestro ingeniero de soporte instala y configura mod_evasive para evitar ataques DoS y DDoS en CentOS.


Cómo solucionar problemas de WordPress 5.0

Cómo solucionar problemas de WordPress 5.0

WordPress 5.0 finalmente se está implementando y trae consigo una nueva experiencia de edición con Gutenberg

Cómo corregir el error de clasificación utf8mb4_0900_ai_ci al importar la base de datos de WordPress

Cómo corregir el error de clasificación utf8mb4_0900_ai_ci al importar la base de datos de WordPress

Si está cambiando su instalación de WordPress de un servidor MySQL 8 a MySQL 5.7 (o inferior), lo más probable es que encuentre

🔧 REVISIÓN: Parece que a su instalación de PHP le falta la extensión MySQL que es requerida por WordPress

🔧 REVISIÓN: Parece que a su instalación de PHP le falta la extensión MySQL que es requerida por WordPress

¿Está buscando ejecutar un sitio de WordPress autogestionado? Excelente. Aprenderás un trillón de cosas. Una de las partes críticas del entorno

Cómo configurar el editor clásico como el editor predeterminado en WordPress en lugar de Gutenberg

Cómo configurar el editor clásico como el editor predeterminado en WordPress en lugar de Gutenberg

El Editor de Gutenberg pronto se convertirá en el editor predeterminado en WordPress. Tendrá la opción de seleccionar el Editor clásico

Cómo actualizar elementos de carpeta en Windows 11

Cómo actualizar elementos de carpeta en Windows 11

Con la opción Actualizar en el menú contextual que falta, así es como puede actualizar elementos en el Explorador de archivos en Windows 11.

REVISIÓN: El editor ha encontrado un error inesperado en WordPress después de la actualización

REVISIÓN: El editor ha encontrado un error inesperado en WordPress después de la actualización

¿No puede escribir una nueva publicación con el nuevo Editor de bloques en WordPress? Lo más probable es que obtenga "El editor

Cómo deshabilitar el editor de bloques e instalar el editor clásico en WordPress 5.0

Cómo deshabilitar el editor de bloques e instalar el editor clásico en WordPress 5.0

A partir de WordPress 5.0, el editor predeterminado en WordPress es el nuevo editor de bloques. El nuevo editor es radicalmente diferente

Cómo habilitar las etiquetas cortas de PHP

Cómo habilitar las etiquetas cortas de PHP

En este artículo, hemos cubierto cómo habilitar las etiquetas cortas de PHP. PHP analiza el archivo usando etiquetas de apertura y cierre, que se parecen a. Para habilitar las etiquetas cortas de PHP

Configurar mod_evasive para prevenir ataques DoS y DDoS en CentOS

Configurar mod_evasive para prevenir ataques DoS y DDoS en CentOS

En este artículo, aprenderemos cómo instalar y configurar mod_evasive para prevenir ataques DoS y DDoS en CentOS. El módulo de Apache mod_evasive.

Cómo instalar PHP con PHP-FPM para NGINX en CentOS

Cómo instalar PHP con PHP-FPM para NGINX en CentOS

cómo instalar PHP con PHP-FPM para NGINX en CentOS. La configuración básica del servidor web NGINX para procesar la aplicación PHP y el servidor en el puerto 80.