Hola, en está ocasión les quiero mostrar como instalar los módulos mod_security y mod_evasive para el servicio de apache (servicio web) en CentOS/Fedora/Red Hat y prevenir así los ataques de tipo DDOS y tener mayor seguridad.
modSecurity™ es un firewall de aplicaciones Web embebible que ejecuta como módulo del servidor web Apache, provee protección contra diversos ataques hacia aplicaciones Web y permite monitorizar tráfico HTTP, así como realizar análisis en tiempo real sin necesidad de hacer cambios a la infraestructura existente
¿Cómo instalar?
Primero deben de agregar el repositorio EPEL si es que no lo tienen, si es que no lo tienen y no saben como hacer eso, deben de revisar mis posts anteriores. Posteriormente deben de ejecutar lo siguiente:
yum install mod_security
Para su configuración se ingresa al directorio /etc/http/modsecurity.d/ y se edita el archivo de nombre modsecurity_crs_10_config.conf que es el que contiene la configuración básica del modsecurity.
Se reinicia el servicio apache para actualizar los cambios;
service httpd restart
Se verifica que el modulo del mod_security este activo;
httpd -M
Debe mostrar como salida;
security2_module (shared)
Listo, tienen su modulo de seguridad activado y corriendo, si desean conocer todos los parámetros y reglas del modulo recuerden visitar el sitio web oficial.
El modulo del mod_evasive permite denegar ataques de tipo DDOS, para instalarse se ejecuta la siguiente sintaxis:
yum install mod_evasive
Para configurar las reglas se edita el archivo /etc/httpd/conf.d/mod_evasive.conf , el cual ya viene por defecto con los parámetros recomendados y entre los cuales se encuentran:
DOSHashTableSize
Cuanto más grande sea el tamaño de la tabla de Hash, más memoria requerirá, pero el rastreo de Ips será más rápido. Es útil aumentar su tamaño si nuestro servidor recibe una gran cantidad de peticiones, pero así mismo la memoria del servidor deberá ser también mayor.
DOSPageCount: Número de peticiones a una misma página para que una IP sea añadida a la lista de bloqueo, dentro del intervalo de bloqueo en segundos especificado en el parámetro DOSPageInterval
DOSSiteCount: Igual que ‘DOSPageCount’, pero corresponde al número de peticiones al sitio en general, usa el intervalo de segundos especificado en ‘DOSSiteInterval’.
DOSPageInterval: Intervalo en segundos para el parámetro umbral de DOSPageCount.
DOSSiteIntervao: Intervalo en segundos para el parámetro umbral DOSSiteCount.
DOSBlockingPeriod: Periodo de bloqueo para una IP si se supera alguno de los umbrales anteriores.El usuario recibirá un error403 (Forbidden) cuando sea bloqueado, si el atacante lo sigue intentando, este contador se reseteará automáticamente, haciendo que siga más tiempo bloqueada la IP.
DOSEmailNotify: Dirección de correo electrónico que recibirá información sobre los ataques.
DosWhitelist: Podemos especificar una IP o rango que será excluido del rastreo por mod_evasive.
Para terminar finalizar se comprueba si cargo el modulo correctamente con el comando httpd -M , que enviara como salida;
evasive20_module (shared)
Con eso ya tendrán los dos módulos activos y funcionales.