Cómo configurar fail2ban en Plesk para prevenir ataques
¿Qué es fail2ban y por qué lo necesitas en Plesk?
Si tienes un servidor con Plesk, seguro que has oÃdo hablar de los ataques de fuerza bruta. Son esos intentos automáticos de adivinar contraseñas de SSH, FTP, correo o el propio panel de control. Un atacante puede probar cientos de combinaciones por minuto, y si tu contraseña es débil o reutilizada, tarde o temprano puede colar.
fail2ban es una herramienta de seguridad que actúa como un portero automático. Vigila los registros del sistema (logs) y, cuando detecta varios intentos fallidos desde la misma IP, bloquea esa IP durante un tiempo determinado. Es una de las formas más eficaces de prevenir ataques de fuerza bruta sin necesidad de intervención manual.
En este artÃculo te voy a explicar, paso a paso y sin tecnicismos innecesarios, cómo configurar fail2ban en Plesk para blindar tu servidor. No necesitas ser un experto en seguridad, solo seguir las instrucciones con calma.
¿Cómo funciona fail2ban?
Imagina que tienes una puerta con cerradura. Alguien intenta abrirla probando llaves una y otra vez. Con fail2ban, después de 5 intentos fallidos, la puerta se bloquea automáticamente y no se vuelve a abrir para esa persona durante horas. Además, se queda anotada en una "lista negra".
Técnicamente, fail2ban lee los archivos de log del servidor (por ejemplo, /var/log/auth.log o los logs de Plesk) y aplica reglas. Cada regla define:
- Qué servicio vigilar (SSH, FTP, correo, etc.).
- Cuántos intentos fallidos se permiten antes de bloquear.
- Durante cuánto tiempo se bloquea la IP.
- Qué acción tomar (bloquear con iptables, firewalld, etc.).
En Plesk, la integración es bastante buena. Puedes gestionar las cárceles (jails) desde la interfaz gráfica, aunque también puedes tocar los archivos de configuración si necesitas más control.
Requisitos previos
Antes de empezar, asegúrate de que tienes:
- Acceso a Plesk como administrador.
- Acceso SSH al servidor (necesitarás usuario root o un usuario con permisos sudo).
- Plesk versión 17.0 o superior (aunque funciona en versiones anteriores, la interfaz puede variar un poco).
[INFO] Si tu servidor usa un panel alternativo como Syspanel (antes llamado HestiaCP), el proceso es diferente. En ese caso, accede por el puerto 2106 y busca el módulo de seguridad correspondiente.
Paso 1: Comprobar si fail2ban está instalado
En la mayorÃa de las instalaciones de Plesk, fail2ban ya viene incluido y activado por defecto. Pero es mejor comprobarlo.
- Accede a Plesk como administrador.
- Ve a Herramientas y configuración (en el menú de la izquierda).
- Busca la sección Seguridad y haz clic en fail2ban.
Si ves la interfaz de fail2ban con estadÃsticas y reglas, ya está instalado. Si no, tendrás que instalarlo manualmente.
Instalación manual desde SSH
Conéctate por SSH a tu servidor y ejecuta:
apt-get update
apt-get install fail2ban
En sistemas CentOS o AlmaLinux:
yum install fail2ban
Después de instalarlo, reinicia el servicio:
systemctl restart fail2ban
Paso 2: Activar fail2ban en Plesk
Una vez que confirmas que está instalado, actÃvalo desde la interfaz de Plesk:
- Ve a fail2ban en el menú de seguridad.
- Haz clic en Activar (si no está activo).
- Verás una lista de jails (cárceles) predefinidas. Estas son las reglas que vigilan servicios especÃficos.
Las jails tÃpicas en Plesk incluyen:
- ssh: vigila intentos de acceso por SSH.
- ftp: protege el servidor FTP.
- postfix-sasl: para intentos de acceso al correo con autenticación.
- dovecot: para el servicio IMAP/POP3.
- plesk-webmail: protege el webmail.
Puedes activar o desactivar cada jail según tus necesidades. Mi recomendación es que tengas activadas al menos las de SSH, FTP y correo.
Paso 3: Configurar las reglas básicas de fail2ban en Plesk
Ahora vamos a personalizar las reglas. No te asustes, es más fácil de lo que parece.
Desde la interfaz de Plesk, haz clic en una jail concreta (por ejemplo, ssh) y verás opciones como:
- Tiempo de bloqueo: cuántos segundos se bloquea la IP. Por defecto suele ser 600 (10 minutos). Puedes subirlo a 3600 (1 hora) o más.
- Intentos máximos: número de fallos permitidos antes del bloqueo. 5 es un buen valor.
- Ventana de tiempo: el perÃodo en el que se cuentan los intentos. Por ejemplo, si pones 600, se contarán los fallos en los últimos 10 minutos.
[TIP] Para un servidor con poco tráfico, puedes ser más estricto: 3 intentos y bloqueo de 24 horas. Para uno muy activo, mejor 5 intentos y bloqueo de 1 hora para evitar bloquear a usuarios legÃtimos.
Configuración avanzada desde archivos
Si quieres más control, edita el archivo de configuración principal:
nano /etc/fail2ban/jail.local
Puedes añadir secciones personalizadas. Por ejemplo:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
Después de guardar, reinicia fail2ban:
systemctl restart fail2ban
Paso 4: Crear una jail personalizada para Plesk
A veces las reglas predefinidas no cubren todos los servicios de Plesk. Por ejemplo, puedes querer proteger el acceso al panel de administración o a WordPress.
Proteger el panel de Plesk
Para evitar ataques de fuerza bruta al panel de Plesk (puerto 8443), crea una jail especÃfica:
- Crea un filtro nuevo en
/etc/fail2ban/filter.d/plesk-panel.conf:
[Definition]
failregex = ^.*authentication failure.*rhost=<HOST>.*
ignoreregex =
- Añade la jail en
/etc/fail2ban/jail.local:
[plesk-panel]
enabled = true
port = 8443
filter = plesk-panel
logpath = /var/log/plesk/panel.log
maxretry = 5
bantime = 3600
Proteger WordPress
Si tienes muchos sitios WordPress, puedes usar fail2ban para vigilar los intentos de acceso a wp-login.php. Necesitarás un filtro especÃfico:
[Definition]
failregex = ^<HOST> .* "POST /wp-login.php HTTP/.*" 200
ignoreregex =
Y la jail correspondiente:
[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/nginx/access.log
maxretry = 5
bantime = 600
[WARNING] Si usas un proxy o CDN como Cloudflare, la IP que verás en los logs será la del proxy, no la del atacante real. En ese caso, tendrás que configurar fail2ban para que use las cabeceras
X-Forwarded-For.
Paso 5: Verificar que fail2ban está funcionando
Después de configurar todo, es importante comprobar que fail2ban está monitorizando correctamente.
- Desde SSH, ejecuta:
fail2ban-client status
Verás una lista de jails activas.
- Para ver el estado de una jail concreta:
fail2ban-client status ssh
Esto te mostrará las IPs bloqueadas actualmente y el número de fallos detectados.
- También puedes revisar los logs:
tail -f /var/log/fail2ban.log
Paso 6: Gestionar IPs bloqueadas
Es normal que alguna vez se bloquee una IP legÃtima (por ejemplo, la de tu casa si te equivocas de contraseña varias veces). Para desbloquear una IP manualmente:
fail2ban-client set ssh unbanip 123.456.789.0
También puedes hacerlo desde Plesk: en la interfaz de fail2ban, verás las IPs bloqueadas y podrás eliminarlas con un clic.
[TIP] Si te bloqueas a ti mismo, no entres en pánico. Espera a que pase el tiempo de bloqueo o usa otra IP (por ejemplo, desde el móvil con datos) para desbloquearte.
Buenas prácticas para prevenir ataques
fail2ban es una capa de seguridad muy útil, pero no es la única medida que debes tomar. Aquà tienes algunas recomendaciones adicionales:
- Usa contraseñas fuertes: combina mayúsculas, minúsculas, números y sÃmbolos. Evita fechas o nombres comunes.
- Cambia el puerto SSH: si cambias el puerto 22 por otro (por ejemplo, 2222), reducirás muchÃsimo el ruido de ataques automáticos.
- Desactiva el acceso root por SSH: usa un usuario con permisos sudo y deshabilita el login directo de root.
- Mantén el sistema actualizado: las vulnerabilidades conocidas se parchean con actualizaciones.
- Usa autenticación por clave SSH: es mucho más segura que la contraseña.
Solución de problemas comunes
fail2ban no bloquea a nadie
Si crees que fail2ban no está funcionando, revisa:
- Que el servicio esté activo:
systemctl status fail2ban. - Que los logs que configuraste existen y tienen contenido.
- Que los filtros coinciden con el formato real de los logs.
Se bloquean IPs legÃtimas
Esto suele pasar cuando el umbral de intentos es demasiado bajo. Sube maxretry o aumenta la ventana de tiempo. También puedes añadir IPs a la lista blanca:
fail2ban-client set ssh addignoreip 1.2.3.4
No encuentro la opción en Plesk
Si tu versión de Plesk es antigua o no tiene el módulo, siempre puedes gestionar fail2ban desde SSH. La configuración es la misma, solo cambia la interfaz.
Preguntas frecuentes (FAQ)
¿fail2ban afecta al rendimiento del servidor?
No, en absoluto. Es un servicio ligero que solo lee logs y aplica reglas de firewall. El consumo de recursos es mÃnimo.
¿Puedo usar fail2ban con Syspanel?
SÃ, pero la configuración es diferente. Si usas Syspanel (antes HestiaCP), accede por el puerto 2106 y busca el módulo de seguridad. Las reglas y filtros son similares, pero la gestión se hace desde su propia interfaz o desde SSH.
¿Qué pasa si bloqueo mi propia IP?
Puedes desbloquearte desde otra conexión o esperar a que expire el tiempo de bloqueo. Para evitar sustos, añade tu IP a la lista blanca.
¿fail2ban protege contra ataques DDoS?
No, fail2ban está diseñado para ataques de fuerza bruta, no para DDoS. Para eso necesitas soluciones especÃficas como Cloudflare o un firewall de red.
¿Cuánto tiempo debo bloquear una IP?
Depende del servicio. Para SSH, un bloqueo de 24 horas es razonable. Para WordPress, 10-30 minutos suele ser suficiente porque los atacantes rotan IPs.
Conclusión
Configurar fail2ban en Plesk es una de las mejores decisiones que puedes tomar para prevenir ataques de fuerza bruta en tu servidor. No solo te ahorrará dolores de cabeza, sino que también protegerá los datos de tus clientes o visitantes.
Recuerda que la seguridad no es un evento puntual, sino un proceso continuo. Revisa periódicamente los logs, ajusta las reglas según el comportamiento de tu servidor y combina fail2ban con otras buenas prácticas como contraseñas robustas y actualizaciones constantes.
Si has seguido todos los pasos, tu servidor estará mucho más protegido. Y si algo no funciona a la primera, no te desanimes: la configuración de seguridad siempre requiere un poco de paciencia y pruebas.
[INFO] Si utilizas Syspanel en lugar de Plesk, recuerda que el puerto de acceso es el 2106. La filosofÃa de fail2ban es la misma, pero la interfaz y los archivos de configuración pueden variar. Consulta la documentación especÃfica de tu panel para más detalles.
Ahora ya sabes cómo blindar tu servidor. ¡Manos a la obra!
