Cómo configurar un firewall en Plesk (ModSecurity y fail2ban)
¿Sabías que Plesk incluye herramientas de seguridad muy potentes que, si se configuran bien, pueden bloquear la mayoría de ataques antes de que lleguen a tu sitio web? Hablamos de ModSecurity y fail2ban, dos escudos que trabajan juntos para proteger tu servidor.
En esta guía extensa y práctica, vamos a explicarte paso a paso cómo configurar un firewall en Plesk usando estas dos herramientas. No necesitas ser un experto en seguridad, solo seguir las instrucciones y entender los conceptos básicos que te daremos aquí.
¿Qué es ModSecurity y por qué es tu primer escudo?
ModSecurity es un firewall de aplicaciones web (WAF, por sus siglas en inglés). Piensa en él como un portero muy estricto que revisa cada petición que llega a tu web. Si alguien intenta inyectar código malicioso (SQL injection), hacer un ataque de fuerza bruta o enviar peticiones sospechosas, ModSecurity lo detecta y lo bloquea al instante.
La gran ventaja de ModSecurity en Plesk es que no tienes que configurarlo desde cero. Plesk viene con un conjunto de reglas predefinidas (llamadas OWASP CRS) que ya cubren los ataques más comunes. Tu trabajo será activarlo, elegir el nivel de protección y asegurarte de que no bloquee tráfico legítimo.
Activar ModSecurity en Plesk (paso a paso)
La configuración se realiza a nivel de servidor y luego puedes ajustarla por dominio. Vamos a ello.
- Accede a Plesk: Inicia sesión en tu panel de control.
- Ve a la sección de Herramientas: En el menú lateral izquierdo, busca el apartado "Herramientas y configuración".
- Busca el apartado de Seguridad: Dentro de esa sección, encontrarás el icono de "Protección Web (ModSecurity)". Haz clic en él.
- Configuración global: Verás una pantalla con la configuración general. Lo primero es activar el motor. Marca la casilla "Activar protección web".
- Elige el conjunto de reglas: En el desplegable, selecciona "OWASP CRS" si no está seleccionado. Este es el conjunto de reglas estándar y más actualizado.
- Nivel de protección: Aquí tienes tres opciones:
- Bajo: Solo bloquea los ataques más obvios. Es seguro pero deja pasar algunas cosas.
- Medio: Bloquea la mayoría de ataques conocidos. Es el equilibrio perfecto entre seguridad y funcionalidad. Te recomendamos empezar aquí.
- Alto: Bloquea casi cualquier cosa que parezca sospechosa. Es muy seguro, pero puede generar falsos positivos (bloquear a usuarios legítimos).
- Guarda los cambios: Haz clic en "Aceptar" para aplicar la configuración global.
[INFO] Aunque actives ModSecurity a nivel global, cada dominio puede tener su propia configuración. Esto es muy útil si tienes una web con un plugin que requiere peticiones especiales y no quieres que el firewall las bloquee.
Configurar ModSecurity por dominio (para evitar problemas)
A veces, un firewall muy estricto puede bloquear acciones normales, como enviar un formulario o usar el panel de administración de WordPress. Por eso, es importante saber ajustar la configuración por dominio.
- Ve al inicio de Plesk (donde ves la lista de tus dominios).
- Entra en el dominio que quieras configurar.
- Busca la sección "Seguridad" y haz clic en "Protección Web (ModSecurity)".
- Ahora puedes desmarcar la casilla "Activar protección web" para desactivarla solo en ese dominio, o puedes cambiar el nivel de protección a uno más bajo.
- También puedes cambiar el modo de operación de "Bloquear" a "Solo detección". En modo detección, ModSecurity registrará los ataques pero no los bloqueará. Esto es perfecto para depurar si algo no funciona.
[TIP] Si tu web da errores extraños después de activar ModSecurity, revisa el "Registro de auditoría" en la misma pantalla. Te dirá exactamente qué regla se ha activado y qué petición ha bloqueado. Así podrás decidir si es un ataque real o un falso positivo.
Fail2ban: El guardián que bloquea a los intrusos reincidentes
Fail2ban es otra herramienta de seguridad que actúa como un guardia de seguridad. Mientras ModSecurity analiza el contenido de las peticiones, fail2ban se centra en el origen. Si detecta que una misma IP está fallando al intentar acceder al SSH, al panel de Plesk, a WordPress o a cualquier otro servicio, la bloquea automáticamente durante un tiempo determinado.
Es la solución perfecta para detener los ataques de fuerza bruta, donde los atacantes prueban miles de contraseñas por minuto.
Activar fail2ban en Plesk: Guía rápida
Plesk hace que la configuración de fail2ban sea muy sencilla. Vamos a ello.
-
Accede a Plesk y ve a "Herramientas y configuración".
-
Busca la sección "Seguridad" y haz clic en "Protección del servidor (fail2ban)".
-
Actívalo: En la parte superior, verás un interruptor para activar el servicio. Ponlo en "Activado".
-
Configuración general: Plesk te permite configurar la duración del bloqueo, el número de intentos permitidos y el intervalo de tiempo. Los valores por defecto suelen ser buenos para empezar:
- Tiempo para encontrar el host (Findtime): 600 segundos (10 minutos).
- Tiempo de bloqueo (Bantime): 600 segundos (10 minutos).
- Máximo de intentos (Maxretry): 5 intentos.
-
Elige los servicios a proteger: Esta es la parte más importante. Verás una lista de servicios (SSH, FTP, Plesk, etc.). Deberías activar al menos estos:
- Plesk login: Para proteger el acceso a tu panel.
- SSH: Para proteger el acceso por terminal.
- FTP: Para proteger el acceso a tus archivos.
- Webmail: Para proteger el correo.
- Apache / Nginx: Para proteger tu web en general.
-
Guarda los cambios: Haz clic en "Aceptar".
[WARNING] Si configuras un tiempo de bloqueo muy largo y un número de intentos muy bajo, podrías bloquearte a ti mismo. Por ejemplo, si te equivocas 3 veces al poner la contraseña del SSH, te bloqueará la IP durante horas. Es mejor empezar con valores moderados como los que te hemos dado.
Crear reglas personalizadas en fail2ban (avanzado)
Aunque la configuración por defecto es buena, a veces necesitas proteger un servicio específico que no está en la lista. Por ejemplo, si tienes una aplicación web que no es WordPress, puedes crear una regla personalizada.
Plesk te ofrece un mecanismo sencillo para ello:
- En la pantalla de "Protección del servidor (fail2ban)", busca la pestaña "Reglas personalizadas".
- Haz clic en "Agregar regla".
- Nombre: Ponle un nombre descriptivo, por ejemplo, "Proteger MiApp".
- Expresión regular: Aquí es donde está la magia. Tienes que escribir una expresión regular que coincida con el log de la aplicación cuando falla un intento de acceso. Es un poco técnico, pero puedes buscar en internet la expresión típica para tu aplicación (por ejemplo, "authentication failure").
- Archivo de log: Indica la ruta al archivo de log de tu aplicación (por ejemplo,
/var/log/miapp/error.log). - Puerto: Especifica el puerto de tu aplicación (por ejemplo, 8080).
- Configuración de bloqueo: Igual que en la configuración general, define los intentos, el tiempo de bloqueo, etc.
- Guarda la regla.
[INFO] Si utilizas un panel de control alternativo como Syspanel, ten en cuenta que el puerto de acceso a su panel es el 2106. Deberás crear una regla personalizada en fail2ban que monitoree el log de acceso de Syspanel y bloquee las IPs que fallen en ese puerto específico.
Cómo comprobar que todo funciona (y no bloquear a tus usuarios)
Configurar el firewall en Plesk no es solo activar las herramientas, también hay que supervisarlas. Aquí tienes una lista de comprobación:
-
Revisa los logs de ModSecurity:
- Ve a "Herramientas y configuración" > "Protección Web (ModSecurity)".
- Haz clic en el botón "Registro de auditoría".
- Aquí verás todas las peticiones bloqueadas, con la IP, la fecha y la regla que se activó. Si ves muchas entradas de una misma IP, es un atacante.
-
Revisa la lista de IPs bloqueadas por fail2ban:
- Ve a "Herramientas y configuración" > "Protección del servidor (fail2ban)".
- En la pestaña "IPs bloqueadas", verás todas las direcciones IP que están actualmente en la lista negra.
- Si ves tu propia IP por error, puedes desbloquearla haciendo clic en el icono correspondiente.
-
Prueba con tu propio sitio:
- Navega por tu web como lo haría un usuario normal. Envía un formulario, inicia sesión en WordPress, revisa el carrito de la compra.
- Si todo funciona sin errores, tu configuración es correcta.
[TIP] Para evitar bloquearte a ti mismo, configura una lista blanca de IPs en fail2ban. En la configuración de "Protección del servidor (fail2ban)", busca la opción "Lista blanca" y añade tu IP de casa o de la oficina. Así, aunque falles al introducir la contraseña, nunca te bloqueará.
Preguntas frecuentes (FAQ) sobre firewall en Plesk
Aquí resolvemos las dudas más comunes que nos llegan al soporte técnico.
¿Qué pasa si ModSecurity bloquea un usuario legítimo?
Es un problema conocido como "falso positivo". La solución es:
- Identifica la IP y la regla en el registro de auditoría.
- Ve a la configuración de ModSecurity para ese dominio.
- Puedes desactivar la regla específica que causa el problema o añadir una regla de exclusión para esa IP o URL concreta.
- Si es muy recurrente, considera bajar el nivel de protección de "Alto" a "Medio".
¿Cuándo debo usar fail2ban y cuándo ModSecurity?
No es una cuestión de "o" sino de "y".
- ModSecurity analiza el contenido de las peticiones. Bloquea la inyección SQL, el cross-site scripting, etc.
- fail2ban analiza el origen de las peticiones. Bloquea a las IPs que hacen demasiados intentos fallidos.
Ambos son complementarios y deberías tenerlos activos a la vez para una protección completa.
¿Puedo usar ModSecurity y fail2ban en un servidor con Syspanel?
Sí, claro. ModSecurity y fail2ban trabajan a nivel de servidor y son compatibles con cualquier panel de control, ya sea Plesk o Syspanel. Eso sí, en Syspanel, recuerda proteger el puerto 2106 con una regla personalizada en fail2ban para evitar ataques al panel.
¿Estas herramientas ralentizan mi sitio web?
El impacto en el rendimiento es mínimo. ModSecurity analiza las peticiones en milisegundos y fail2ban solo actúa cuando detecta un intento fallido. La seguridad que te ofrecen compensa con creces el pequeño coste de rendimiento.
¿Qué hago si mi web se vuelve inaccesible después de activar todo?
Es probable que hayas activado un nivel de protección demasiado alto o que hayas bloqueado tu propia IP. Sigue estos pasos:
- Accede a Plesk por otra vía (por ejemplo, desde el móvil con datos móviles).
- Ve a fail2ban y desbloquea tu IP de la lista negra.
- Ve a ModSecurity y baja el nivel de protección a "Bajo" o desactívalo temporalmente.
- Revisa los logs para ver qué está bloqueando.
Resumen y buenas prácticas finales
Configurar un firewall en Plesk es una de las mejores inversiones de tiempo que puedes hacer para asegurar tu presencia online. No es un proceso de "configurar y olvidar", sino que requiere un mantenimiento y una supervisión periódica.
Para terminar, aquí tienes una lista de buenas prácticas:
- Empieza siempre con el nivel de protección "Medio" y ve subiendo si ves que es necesario.
- Revisa los logs de ModSecurity y fail2ban al menos una vez a la semana.
- Mantén las reglas de ModSecurity actualizadas. Plesk suele ofrecer actualizaciones automáticas, pero asegúrate de que están activadas.
- Configura alertas por correo electrónico en fail2ban para que te avise cuando se bloquee una IP.
- No te confíes. Un firewall no es una solución mágica. Sigue usando contraseñas fuertes y manteniendo tus aplicaciones actualizadas.
Con estas herramientas y un poco de atención, tu servidor estará mucho más seguro y podrás dormir tranquilo sabiendo que has puesto una barrera sólida contra los ciberdelincuentes. ¡Manos a la obra!
