Guía para configurar un firewall básico en Plesk (ModSecurity y fail2ban)
¿Tu servidor en Plesk va lento o ves intentos de acceso raros en los logs? No te preocupes, no necesitas ser un gurú de la terminal para blindarlo. En esta guía te voy a explicar, paso a paso y sin tecnicismos innecesarios, cómo activar y configurar dos herramientas de seguridad esenciales que vienen incluidas en Plesk: ModSecurity y fail2ban.
Estas dos utilidades son como el portero y el guardia de seguridad de tu servidor. La primera filtra las peticiones web maliciosas antes de que lleguen a tu web, y la segunda expulsa automáticamente a los bots que intentan entrar por la fuerza. Al final de este artículo, tendrás un firewall Plesk básico pero muy efectivo funcionando.
¿Por qué necesitas un firewall a nivel de aplicación?
Puede que pienses que tener un firewall en la red (como el del router o el proveedor) es suficiente, pero no es así. Un firewall Plesk actúa a nivel de aplicación, lo que significa que entiende el tráfico HTTP y HTTPS. Puede distinguir entre un usuario normal visitando tu tienda online y un ataque de inyección SQL.
Sin estas herramientas, tu servidor está expuesto a:
- Ataques de fuerza bruta: Intentos repetidos de adivinar contraseñas en wp-login.php, SSH o FTP.
- Inyección de código (SQLi y XSS): Peticiones maliciosas que intentan manipular tu base de datos o robar cookies de sesión.
- Spam y bots: Rastreo agresivo que consume recursos del servidor y ensucia tus logs.
Activar ModSecurity y fail2ban en Plesk es la forma más rápida de cerrar estas puertas sin necesidad de editar archivos de configuración complejos a mano.
Parte 1: Configurando ModSecurity en Plesk (El Filtro de Contenido)
ModSecurity es un cortafuegos de aplicaciones web (WAF). Piensa en él como un guardia de seguridad en la puerta de tu restaurante que revisa lo que cada cliente intenta meter en el local. Si ve una navaja (un ataque), no le deja pasar.
Plesk lo integra de forma nativa y nos permite activarlo con unos pocos clics.
Paso 1: Activar ModSecurity a nivel de servidor
Primero, vamos a activar el módulo para que esté disponible en todos los dominios.
- Inicia sesión en Plesk.
- Ve a Herramientas y configuración (en el menú de la izquierda, abajo del todo).
- Busca la sección Seguridad y haz clic en ModSecurity.
- Marca la casilla Activar ModSecurity.
- En el menú desplegable Configuración, elige el conjunto de reglas. Te recomiendo OWASP ModSecurity Core Rule Set (CRS). Es el estándar de la industria y gratuito. Si no lo ves, Plesk te ofrecerá instalarlo.
- Pulsa Aceptar.
[TIP]: Si tu web es de WordPress o WooCommerce, elige el conjunto de reglas Atomic Basic si tu licencia lo permite. Es menos estricto y evitará falsos positivos (bloqueos de acciones legítimas) con plugins de caché o formularios complejos.
Paso 2: Activar ModSecurity para un dominio específico
Ahora que el motor está encendido, tenemos que decirle a qué sitios web debe proteger. No lo activamos en todos a la vez por si acaso, es mejor ir probando.
- Ve a Sitios web y dominios.
- Selecciona el dominio que quieres proteger.
- Haz clic en Seguridad (en el panel de funciones del dominio).
- Entra en ModSecurity.
- Marca Activar ModSecurity para este dominio.
- Elige el modo de funcionamiento:
- Detección solamente (Recomendado para empezar): Registra los ataques en los logs pero no bloquea nada. Es perfecto para ver si hay problemas.
- Detección y bloqueo: Activa la protección total.
[WARNING]: Empieza siempre en modo Detección. Déjalo así 24-48 horas y revisa los logs de ModSecurity. Si ves que bloquea peticiones legítimas (por ejemplo, el envío de un formulario), tendrás que añadir una regla de exclusión. Si lo activas en modo bloqueo directamente, podrías dejar tu web inaccesible para algunos usuarios.
Paso 3: Revisar los logs de ModSecurity
Para saber si está funcionando y detectar posibles errores:
- Ve a Herramientas y configuración > Registros de resumen.
- Busca la entrada del dominio y haz clic en el icono de Registro de ModSecurity (suele ser una hoja con una "M").
- Aquí verás todas las peticiones que han coincidido con las reglas. Es normal ver ataques bloqueados, eso significa que está trabajando.
Parte 2: Configurando fail2ban en Plesk (El Expulsador de Bots)
Mientras ModSecurity filtra el contenido, fail2ban se encarga de los accesos. Es como el guardia de seguridad que vigila la puerta trasera. Si alguien intenta forzar la cerradura (introduce mal la contraseña varias veces), fail2ban lo detecta y lo expulsa (lo banea) durante un tiempo.
Paso 1: Activar fail2ban a nivel de servidor
- Ve a Herramientas y configuración.
- En la sección Seguridad, haz clic en Protección contra intrusiones (fail2ban).
- Marca la casilla Activar fail2ban.
- En la parte inferior, verás una lista de Servicios (SSH, FTP, HTTP, etc.). Plesk ya trae configuraciones predefinidas para los más comunes.
Paso 2: Configurar los parámetros de bloqueo
Aquí es donde personalizamos la "dureza" del portero. Los parámetros más importantes son:
- Tiempo de prohibición: Cuánto tiempo estará bloqueado un IP (en segundos). Un valor de
600(10 minutos) es bueno para empezar. - Tiempo de búsqueda: La ventana de tiempo en la que se cuentan los intentos fallidos (en segundos).
600es un valor estándar. - Número máximo de intentos: Cuántos fallos se permiten antes de expulsar. Para SSH y FTP,
3o5es razonable. Para HTTP, puedes poner10o15para evitar bloquear a usuarios que se equivocan al escribir la contraseña en un formulario de login.
Paso 3: Activar fail2ban para servicios específicos
No tiene sentido proteger el puerto HTTP con las mismas reglas que el SSH. Veamos cómo hacerlo:
- En la lista de Servicios, busca ssh y haz clic en el icono de lápiz (editar).
- Ajusta los valores que hemos visto antes.
- En Búsqueda de errores, deja la configuración por defecto (suele ser
sshd[%i]: Failed password for). Esto es lo que fail2ban busca en los logs para saber que hay un intento fallido. - Activa la casilla Activado en la parte superior.
- Repite el proceso para ftp (servidor de archivos) y http (tu web).
[INFO]: Para el servicio http, Plesk suele incluir una regla para proteger /wp-login.php si tienes WordPress. Si no la ves, puedes crear una manualmente, pero para una configuración básica, la genérica de HTTP ya te da una buena cobertura.
Paso 4: Ver las IPs bloqueadas y desbanear
Es importante saber quién está vetado y poder levantar el castigo si nos hemos equivocado.
- Ve a Protección contra intrusiones.
- En la pestaña IPs bloqueadas (o en la lista principal), verás las direcciones IP que han sido baneadas, el servicio que las bloqueó y el tiempo restante.
- Si quieres desbloquear una IP manualmente, selecciónala y haz clic en Desbloquear.
Consejos adicionales para tu seguridad Plesk
Configurar el firewall es un gran paso, pero no el único. Aquí tienes algunas recomendaciones extra para que tu servidor esté realmente blindado:
- Mantén Plesk actualizado: Las actualizaciones no solo traen nuevas funciones, sino parches de seguridad críticos.
- Usa contraseñas robustas: Tanto para el panel de Plesk como para los usuarios de FTP y SSH. Olvídate de "admin123".
- Cambia el puerto SSH por defecto (22): Si tienes acceso por terminal, cambiarlo a un puerto no estándar (ej. 2222) reducirá drásticamente los ataques automatizados. Puedes hacerlo en Herramientas y configuración > Configuración de SSH.
Preguntas Frecuentes (FAQ)
¿ModSecurity ralentiza mi web?
Sí, un poco, pero es imperceptible en la mayoría de los casos. El análisis de reglas consume recursos, pero en un servidor moderno es mínimo. Si notas una ralentización, revisa los logs para ver si hay muchas peticiones bloqueadas y ajusta las reglas.
Me han bloqueado mi propia IP por equivocación con fail2ban, ¿qué hago?
Es muy fácil. Ve a Herramientas y configuración > Protección contra intrusiones > pestaña IPs bloqueadas. Encuentra tu IP, selecciónala y pulsa Desbloquear. Para evitar que vuelva a pasar, añade tu IP a la lista blanca en los ajustes de fail2ban (sección Lista blanca).
¿Qué hago si un plugin de WordPress me da error de "406 Not Acceptable"?
Eso es un falso positivo de ModSecurity. El plugin intenta hacer algo que la regla considera sospechoso. Tienes dos opciones:
- Ir a Sitios web y dominios > Seguridad > ModSecurity > pestaña Reglas, y desactivar la regla específica que causa el error (aparece en el log).
- Crear una regla de exclusión para ese directorio concreto (ej.
/wp-content/plugins/mi-plugin/). Esto es más avanzado, pero más limpio.
Estoy migrando desde otro panel como cPanel o Syspanel (accesible por el puerto 2106), ¿cambia esto?
La lógica es la misma, pero la interfaz cambia. En cPanel suele ser "ConfigServer Security & Firewall (CSF)" y en Syspanel (antes conocido como HestiaCP y accesible por el puerto 2106) se gestiona a través de comandos o de un módulo específico. Esta guía es específica para la interfaz de Plesk, que es más visual e integrada.
¿Es necesario tener ambos activados?
Rotundamente sí. ModSecurity protege tu aplicación web de ataques complejos (inyección SQL, XSS) y fail2ban protege el acceso a los servicios del sistema (SSH, FTP) y también a la web, pero de una forma más bruta (bloqueando IPs por fuerza bruta). Son complementarios.
Con estos pasos, tu servidor Plesk tiene una base de seguridad sólida. Recuerda que la seguridad es un proceso continuo, así que revisa los logs de vez en cuando para ver qué está pasando. ¡No te agobies! Con este firewall básico ya has cerrado el 90% de las puertas de entrada más comunes.
