En la entrada de hoy voy a explicar cómo proteger Apache contra ataques DDoS mediante el módulo mod_evasive. Por supuesto, si el ataque es exageradamente grande, nunca podremos parar el mismo desde el servidor, pero para pequeños ataques de saturación, este módulo es muy efectivo.

 

La instalación del módulo es muy sencilla, primero revisamos que tenemos el repositorio EPEL activo en nuestro servidor CentOS, si no, lo instalamos:

Seguidamente, instalamos el módulo:

Y comprobamos que Apache lo ha cargado:

Tras esto, reiniciamos apache.

Ahora, debemos configurar el mismo mediante el fichero de configuración /etc/httpd/conf.d/mod_evasive.conf, las variables más importantes son:

DOSPageCount: Controla el numero de request para la misma pagina (miweb.com/index.php) por intervalo de paginas

DOSSiteCount: Controla el total de peticiones para un mismo objeto (imagenes, css, etc) por intervalo

DOSPageInterval: Intervalo establecido para la carga de páginas en segundos, funciona junto a DOSPageCount, es decir, aquellos que accedan a más de X páginas en X intervalo serán bloqueados

DOSSiteInterval: Intervalo establecido para la carga del sitio, funciona en conjunto a DOSSiteCount, es decir, aquellos que accedan a más de X objetos en X intervalo serán bloqueados.

DOSBlockingPeriod: Duración del bloqueo

DOSEmailNotify: Notificar los bloqueos por correo.

En mi caso, la configuración es:

Con esto, se bloqueará durante 10 minutos a aquellas IPs que excedan 2 peticiones de página o 50 de sitio en un periodo de 15 segundos en ambos casos.

Para verificar que funciona, existe un script que podemos probar en:

Si recibimos un 403, funciona correctamente.

Por último, en /tmp se guarda un log con cada una de las IPs bloqueadas.

 

¡Un saludo!


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *