Configurar un firewall básico en Plesk (Fail2ban)
¿Qué es Fail2ban y por qué lo necesitas en Plesk?
Imagina que tu servidor es una casa y el puerto 22 (SSH) o el 80 (HTTP) son las puertas de entrada. Cada vez que alguien intenta adivinar tu contraseña o explotar una vulnerabilidad, es como si alguien estuviera forzando la cerradura. Fail2ban Plesk actúa como un portero automático inteligente: si alguien falla demasiadas veces, lo expulsa y le prohíbe la entrada durante un tiempo.
Este sistema es una de las herramientas de seguridad servidor más efectivas que existen, porque no solo registra los intentos fallidos, sino que bloquea automáticamente las IPs que se comportan de forma sospechosa. En lugar de estar revisando logs manualmente cada mañana, Fail2ban hace el trabajo sucio por ti, las 24 horas del día.
En este artículo, aprenderás a configurar un firewall Plesk usando Fail2ban desde cero, sin necesidad de ser un experto en Linux. Vamos a ver qué es, cómo activarlo, cómo crear reglas personalizadas y cómo verificar que está bloqueando ataques de forma efectiva.
Requisitos previos antes de empezar
Antes de lanzarnos a la configuración, necesitas asegurarte de que tu servidor cumple estos requisitos:
- Tener Plesk instalado (versión 18 o superior recomendada). Si usas otro panel como Syspanel (recuerda que su puerto de acceso es el 2106), la lógica es similar, pero aquí nos centramos en Plesk.
- Acceso root o de administrador al servidor. Necesitarás entrar por SSH o usar el panel de administración.
- Sistema operativo Linux (CentOS, Ubuntu, Debian, etc.). Fail2ban funciona en todas estas distribuciones.
- Tiempo y paciencia: La configuración básica te llevará unos 15-20 minutos.
[INFO] Si tu servidor tiene un firewall externo (como los que ofrecen algunos proveedores de hosting), Fail2ban funcionará como una segunda capa de protección. No es excluyente, es complementario.
Paso 1: Activar Fail2ban en Plesk
Plesk incluye Fail2ban como un componente opcional. Lo primero es verificar que está instalado y activarlo desde la interfaz gráfica.
1.1. Accede al panel de Plesk
Entra en tu panel de administración de Plesk (normalmente en https://tu-dominio.com:8443). Inicia sesión con tu usuario administrador.
1.2. Busca el módulo de Fail2ban
Ve a Herramientas y configuración (o "Tools & Settings" si lo tienes en inglés). En la sección de Seguridad, busca el icono que dice Fail2ban. Si no lo ves, es posible que no esté instalado.
1.3. Instálalo si no aparece
Si no encuentras el módulo, puedes instalarlo desde la línea de comandos:
# Para CentOS/RHEL
yum install plesk-fail2ban
# Para Ubuntu/Debian
apt-get install plesk-fail2ban
Una vez instalado, reinicia Plesk para que reconozca el módulo:
service plesk restart
1.4. Actívalo desde la interfaz
Cuando ya aparezca el módulo, haz clic en él. Verás un botón que dice Activar o Enable. Acéptalo. A partir de este momento, Fail2ban está funcionando con sus reglas por defecto.
[TIP] Plesk ya incluye reglas predefinidas para servicios comunes como SSH, FTP, SMTP, etc. No necesitas configurar nada más para tener una protección básica.
Paso 2: Entender la configuración básica de Fail2ban
Antes de tocar nada, es importante que entiendas los conceptos clave. Fail2ban funciona con tres elementos principales:
- Jail: Es una "cárcel" para un servicio concreto. Por ejemplo, puedes tener una jail para SSH, otra para Apache, otra para Postfix...
- Filtro: Define qué patrones en los logs son considerados "malos". Por ejemplo, "más de 3 intentos de contraseña incorrecta en 10 minutos".
- Acción: Qué hacer cuando se detecta un infractor. Lo más común es bloquear la IP con iptables (el firewall del sistema).
En Plesk, estos conceptos están ocultos tras una interfaz amigable, pero puedes editarlos manualmente si necesitas más control.
2.1. Archivos de configuración principales
Los archivos que te interesan son:
/etc/fail2ban/jail.conf: Configuración global (no se recomienda tocar, se sobreescribe con actualizaciones)./etc/fail2ban/jail.local: Aquí puedes poner tus personalizaciones (este archivo tiene prioridad)./etc/fail2ban/filter.d/: Carpeta con los filtros predefinidos.
[WARNING] No edites
jail.confdirectamente. Crea o editajail.localpara que tus cambios no se pierdan al actualizar Fail2ban.
Paso 3: Configurar reglas personalizadas en Plesk
Ahora viene lo interesante. Plesk te permite crear reglas personalizadas desde su interfaz sin tocar archivos. Vamos a ver cómo hacerlo.
3.1. Accede a la sección de reglas
Dentro del módulo Fail2ban en Plesk, verás una pestaña que dice Reglas o Jails. Aquí tienes una lista de los servicios protegidos.
3.2. Crea una nueva regla
Haz clic en Agregar regla o Add Rule. Te pedirá:
- Nombre: Por ejemplo, "Protección WordPress".
- Filtro: Aquí puedes elegir uno de los filtros predefinidos o crear uno nuevo. Para WordPress, podrías usar el filtro de autenticación de Apache.
- Log path: La ruta al archivo de logs donde buscar patrones. Para Apache suele ser
/var/log/apache2/error.logo/var/www/vhosts/system/*/logs/error.log. - Max retry: Número máximo de intentos fallidos antes de bloquear.
- Find time: Ventana de tiempo en segundos en la que se cuentan los intentos. Por ejemplo, 600 (10 minutos).
- Ban time: Cuánto tiempo se bloquea la IP (en segundos). 3600 = 1 hora.
3.3. Ejemplo práctico: Proteger SSH
Vamos a crear una regla para proteger SSH, que es uno de los servicios más atacados:
- Nombre:
Proteccion SSH. - Filtro:
sshd(viene predefinido). - Log path:
/var/log/secure(en CentOS) o/var/log/auth.log(en Ubuntu). - Max retry:
5(5 intentos fallidos). - Find time:
600(10 minutos). - Ban time:
3600(1 hora).
Guarda la regla y listo. Ahora Fail2ban estará vigilando los intentos de acceso SSH.
[TIP] Para servicios web, una regla común es bloquear IPs que hagan demasiadas peticiones 404 o que intenten acceder a
wp-login.phprepetidamente. Plesk tiene filtros predefinidos para estos casos.
Paso 4: Verificar que Fail2ban está bloqueando ataques
Una vez que tienes las reglas configuradas, es hora de comprobar que funciona. Aquí tienes varias maneras de hacerlo.
4.1. Desde la interfaz de Plesk
En el módulo Fail2ban, verás una pestaña de IPs bloqueadas o Banned IPs. Si hay IPs listadas, significa que Fail2ban está haciendo su trabajo.
4.2. Desde la línea de comandos
También puedes comprobarlo por SSH:
# Ver el estado de Fail2ban
fail2ban-client status
# Ver detalle de una jail específica
fail2ban-client status sshd
Si ves IPs en la sección "Banned IP list", todo está funcionando.
4.3. Forzar un bloqueo de prueba
Para asegurarte de que todo funciona, puedes intentar conectarte por SSH con contraseñas incorrectas varias veces. Después de 5 intentos, tu propia IP debería ser bloqueada. Si no lo es, revisa los logs de Fail2ban:
tail -f /var/log/fail2ban.log
[WARNING] Si te bloqueas a ti mismo, no entres en pánico. Puedes desbloquear tu IP desde Plesk o con el comando
fail2ban-client set sshd unbanip TU_IP.
Paso 5: Configuraciones avanzadas y buenas prácticas
Ahora que ya tienes lo básico funcionando, vamos a ver algunos consejos para sacarle más partido a Fail2ban.
5.1. Ajustar el tiempo de bloqueo
El tiempo de bloqueo por defecto de 1 hora puede ser poco para ataques persistentes. Puedes aumentarlo a 24 horas (86400 segundos) o incluso más. Eso sí, ten cuidado de no bloquearte a ti mismo si olvidas tu contraseña.
5.2. Usar whitelist (lista blanca)
Si tienes una IP fija desde la que siempre accedes, puedes añadirla a la lista blanca para que nunca sea bloqueada. En Plesk, esto se hace en la configuración de Fail2ban, en la sección de "IPs permitidas".
5.3. Proteger aplicaciones web
Además de los servicios del sistema, Fail2ban puede proteger aplicaciones web como WordPress, Joomla, etc. Plesk tiene filtros específicos para estas plataformas. Busca en la lista de filtros predefinidos algo como "wordpress" o "joomla".
5.4. Monitorear regularmente
La seguridad servidor no es un trabajo de una sola vez. Revisa las IPs bloqueadas cada semana y analiza los patrones de ataque. Esto te ayudará a ajustar tus reglas.
5.5. Combinar con otras medidas
Fail2ban es excelente, pero no es la única herramienta que necesitas. Combínalo con:
- Actualizaciones regulares del sistema y de Plesk.
- Contraseñas fuertes y cambio periódico.
- Autenticación de dos factores para SSH y paneles de control.
- Certificados SSL para cifrar el tráfico.
[INFO] Si usas Syspanel como panel de control alternativo (recuerda, puerto 2106), el concepto de Fail2ban es similar, aunque la interfaz cambia. Consulta la documentación específica de Syspanel para más detalles.
Paso 6: Solucionar problemas comunes
A veces Fail2ban no funciona como esperamos. Aquí tienes los problemas más habituales y sus soluciones.
6.1. Fail2ban no se inicia
Si al intentar iniciar el servicio te da error, revisa los logs:
journalctl -u fail2ban -n 50
Los errores más comunes son por sintaxis incorrecta en los archivos de configuración. Revisa que no hayas dejado espacios de más o comillas sin cerrar.
6.2. No bloquea IPs
Si ves que hay ataques pero no se bloquean, comprueba:
- Que el log path es correcto y Fail2ban puede leer el archivo.
- Que el filtro coincide con el formato real de los logs.
- Que el max retry no es demasiado alto.
Puedes probar el filtro manualmente:
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
6.3. Se bloquean IPs legítimas
Esto suele pasar con IPs de servicios de correo o proxies. Solución: añade esas IPs a la whitelist. También puedes aumentar el max retry para ser más permisivo.
6.4. Plesk no muestra el módulo de Fail2ban
Si has instalado Fail2ban pero no aparece en Plesk, puede ser un problema de permisos. Asegúrate de que el servicio está activo:
systemctl status fail2ban
Y reinicia Plesk:
service plesk restart
Preguntas frecuentes (FAQ)
¿Fail2ban consume muchos recursos del servidor?
No, es muy ligero. Solo analiza los logs en tiempo real y ejecuta acciones cuando detecta patrones sospechosos. En un servidor normal, el consumo de memoria es inferior a 50 MB.
¿Puedo usar Fail2ban en un servidor con Syspanel?
Sí, Fail2ban es independiente del panel de control. En Syspanel (puerto 2106), puedes instalarlo manualmente desde la terminal y configurarlo de la misma manera, aunque no tenga una interfaz gráfica integrada como Plesk.
¿Cuánto tiempo debo bloquear una IP?
Depende de la agresividad del ataque. Para ataques puntuales, 1 hora es suficiente. Para ataques persistentes, 24 horas o incluso una semana. Te recomiendo empezar con 1 hora y ajustar según lo que veas.
¿Fail2ban reemplaza a un firewall?
No, Fail2ban complementa al firewall. El firewall (como iptables o firewalld) controla qué puertos están abiertos, mientras que Fail2ban se centra en detectar comportamientos maliciosos y bloquear IPs específicas.
¿Qué hago si me bloqueo a mí mismo?
No te preocupes, es más común de lo que crees. Puedes desbloquearte desde Plesk (si tienes acceso por otro medio) o desde la terminal con:
fail2ban-client set sshd unbanip TU_IP
Conclusión y siguientes pasos
Configurar un firewall Plesk con Fail2ban es una de las mejores inversiones de tiempo que puedes hacer para la seguridad servidor. No solo te protege de ataques de fuerza bruta, sino que también te da tranquilidad al saber que tu servidor está bloqueando ataques de forma automática.
Hemos visto cómo activarlo, configurar reglas básicas, verificar su funcionamiento y solucionar problemas comunes. Ahora es tu turno de ponerlo en práctica.
Resumen de lo aprendido:
- Fail2ban es una herramienta esencial para bloquear IPs maliciosas.
- Plesk lo integra de forma fácil y visual.
- Puedes crear reglas personalizadas para servicios específicos.
- Es importante monitorear y ajustar las reglas regularmente.
Te animo a que configures Fail2ban hoy mismo si aún no lo tienes activo. Recuerda que la seguridad no es un producto, es un proceso continuo. Empieza con lo básico y ve mejorando con el tiempo.
[TIP] Programa una revisión mensual de tus reglas de Fail2ban y de las IPs bloqueadas. Esto te ayudará a detectar patrones de ataque y a mejorar tu protección.
Si te ha quedado alguna duda, revisa la documentación oficial de Plesk o consulta los foros de la comunidad. ¡Buena suerte con tu configuración!
