Cómo proteger tu servidor con fail2ban en Plesk
¿Cansado de ver intentos de acceso sospechosos en tu servidor? No estás solo. Cada día, miles de bots y script kiddies escanean internet buscando servidores vulnerables para intentar acceder mediante fuerza bruta. La buena noticia es que existe una herramienta increíblemente eficaz, gratuita y fácil de configurar para proteger tu máquina: fail2ban.
En esta guía extensa y práctica, te explicaré paso a paso cómo proteger tu servidor con fail2ban en Plesk. No necesitas ser un gurú de la terminal; te lo contaré de forma clara y sencilla, como si estuviéramos tomando un café y arreglando tu servidor juntos. Al finalizar, tu servidor será un hueso mucho más duro de roer.
¿Qué es Fail2ban y por qué es tu mejor amigo?
Imagina que tu servidor es un edificio de oficinas. Tienes una puerta principal (SSH), una puerta de servicio (FTP) y una recepción (el panel de control). Ahora, imagina que cientos de personas desconocidas intentan abrir esas puertas con miles de llaves diferentes cada minuto. Eso es un ataque de fuerza bruta.
fail2ban actúa como un guardia de seguridad muy eficiente. Su trabajo es vigilar los registros de acceso (logs). Si detecta que una misma IP falla demasiadas veces al intentar entrar, automáticamente le cierra la puerta en las narices, bloqueando esa dirección IP por un tiempo determinado.
Esto es crucial para la seguridad servidor, ya que la mayoría de los ataques automatizados se basan en la persistencia, no en la sofisticación. Al bloquearlos, los disuades y los obligas a buscar un objetivo más fácil.
Beneficios clave de usar Fail2ban en Plesk
- Protección automática: No tienes que estar pendiente 24/7. El sistema actúa solo.
- Ahorro de recursos: Bloquea conexiones no deseadas, liberando CPU y ancho de banda para tus sitios web legítimos.
- Configuración flexible: Puedes decidir cuántos intentos fallidos se permiten y durante cuánto tiempo se bloquea al infractor.
- Integración perfecta: Plesk tiene un módulo integrado que facilita muchísimo la configuración, aunque también veremos cómo hacerlo por terminal para un control más fino.
Primeros pasos: Verificar la instalación de Fail2ban en Plesk
Antes de empezar a configurar nada, debemos asegurarnos de que la herramienta está instalada. En la mayoría de las instalaciones modernas de Plesk, fail2ban viene incluido, pero a veces hay que activarlo.
Activar Fail2ban desde la interfaz gráfica de Plesk
Este es el método más sencillo si no te sientes cómodo con la línea de comandos.
- Accede a tu panel de Plesk como administrador.
- En el menú lateral izquierdo, busca la sección Herramientas y configuración.
- Dentro de esa sección, en el grupo Seguridad, encontrarás el icono de Fail2ban. Haz clic en él.
- Si la herramienta no está activa, verás un aviso. Simplemente haz clic en el botón Activar o Instalar y Plesk se encargará del resto.
[TIP] Si no encuentras la opción, es posible que tu proveedor de hosting no la haya incluido en el plan. Contacta con tu soporte técnico y pregúntales si pueden habilitar el módulo de fail2ban para tu servidor.
Verificar la instalación por línea de comandos (SSH)
Si eres de los que les gusta tener el control total, abre tu cliente SSH (como PuTTY o la terminal de tu sistema) y ejecuta:
fail2ban-client status
Si el comando no se encuentra, deberás instalarlo. En sistemas basados en Debian/Ubuntu:
sudo apt update
sudo apt install fail2ban
En sistemas CentOS/RHEL:
sudo yum install epel-release
sudo yum install fail2ban
Una vez instalado, asegúrate de que el servicio esté activo.
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Ahora sí, tenemos el guardia de seguridad contratado y en su puesto. Pasemos a la acción.
Configuración básica de Fail2ban en Plesk: La interfaz gráfica
Plesk nos ofrece una forma muy visual de gestionar los bloqueos. Vamos a explorarla para crear nuestra primera regla de protección.
Creando una regla de bloqueo para SSH
El protocolo SSH (Secure Shell) es la puerta principal de administración de tu servidor. Protegerlo es vital.
-
Ve a Herramientas y configuración > Fail2ban.
-
Verás una lista de "Jails" (prisiones). Estos son los servicios que podemos vigilar. Inicialmente, puede que solo veas algunos. Haz clic en + Agregar jail o en el icono de "Nueva regla".
-
Se abrirá un formulario. Aquí es donde definimos la protección:
- Nombre de la jail: Ponle un nombre claro, por ejemplo,
mi-ssh-protegido. - Puerto: Especifica el puerto de tu servicio SSH (normalmente el
22, pero si lo cambiaste, pon el que uses). - Servicio: Selecciona
sshdde la lista desplegable. Esto le dice a fail2ban qué tipo de logs debe vigilar. - Encontrar tiempo (Find Time): Es la ventana de tiempo en la que se contabilizan los intentos. Por ejemplo, si pones
600(segundos), estamos hablando de 10 minutos. - Máximo de intentos (Max Retry): Es el número de fallos permitidos dentro de la ventana de tiempo. Un valor de
5es un buen equilibrio. - Tiempo de bloqueo (Ban Time): Es el tiempo que se bloqueará la IP infractora. Un valor de
600segundos es un buen comienzo, pero para protección seria, puedes poner86400(24 horas) o incluso más.
- Nombre de la jail: Ponle un nombre claro, por ejemplo,
-
Haz clic en Aceptar.
[INFO] Con esta configuración, si alguien (o un bot) falla 5 veces la contraseña en un lapso de 10 minutos, su IP será bloqueada durante el tiempo que hayas definido. Simple y efectivo.
Bloqueando el acceso a los paneles de administración (Plesk y WordPress)
Tu servidor no solo es vulnerable por SSH. Los paneles de control y los administradores de contenido (como WordPress) también son objetivos muy comunes.
En el mismo menú de Fail2ban, puedes agregar jails para:
- Plesk: Busca el servicio
plesken la lista. Esto vigilará los intentos de acceso ahttps://tudominio:8443. - Apache / HTTP: Crea una jail para el servicio
apacheoapache-auth. Esto protegerá los directorios que tienen contraseña, como elwp-adminde WordPress. - ProFTPD / vsftpd: Protege los accesos por FTP.
[WARNING] No bloquees tu propia IP. Si te equivocas y te bloqueas a ti mismo, no podrás acceder a tu servidor. Si esto ocurre, tendrás que pedir ayuda a tu proveedor de hosting o acceder por un método alternativo (como la consola VNC del panel del proveedor).
Configuración avanzada: Editando los archivos de configuración
La interfaz de Plesk es genial, pero a veces necesitamos un control más preciso. Para ello, editaremos los archivos de configuración directamente. Esto nos permite crear reglas personalizadas o ajustar las existentes con parámetros que la interfaz no muestra.
Entendiendo la estructura de Fail2ban
Fail2ban se basa en dos tipos de archivos:
.conf: Son los archivos de configuración predeterminados. No deben editarse, ya que se sobrescriben al actualizar el software..local: Son archivos de anulación. Nosotros crearemos uno llamadojail.localy pondremos ahí nuestras personalizaciones. Fail2ban da prioridad a estos archivos.
Creando un archivo jail.local personalizado
- Conéctate por SSH a tu servidor.
- Navega al directorio de configuración de fail2ban:
cd /etc/fail2ban/ - Crea una copia del archivo de configuración predeterminado para usarlo como referencia:
sudo cp jail.conf jail.local - Ahora abre el archivo
jail.localcon tu editor de texto favorito (nano es el más amigable para novatos).sudo nano jail.local
Personalizando los parámetros globales
Dentro del archivo, encontrarás una sección [DEFAULT]. Aquí puedes establecer valores que se aplicarán a todas las jails.
-
ignoreip: Esta es la línea más importante. Aquí debes poner tu IP pública y las de cualquier administrador de confianza. Así nunca te bloquearás a ti mismo.ignoreip = 127.0.0.1/8 ::1 192.168.1.100Reemplaza
192.168.1.100con tu IP real. -
bantime: El tiempo de bloqueo por defecto (en segundos). Puedes poner1hpara 1 hora,1dpara 1 día, o un número en segundos.bantime = 1d -
findtime: La ventana de tiempo para contar los intentos.findtime = 10m -
maxretry: El número de intentos fallidos permitidos.maxretry = 5
Añadiendo una jail personalizada para WordPress
Después de la sección [DEFAULT], puedes añadir secciones específicas para cada servicio. Para proteger el panel de administración de WordPress, puedes usar el filtro apache-auth. Añade esto al final del archivo jail.local:
[wordpress]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 3
bantime = 1h
[INFO] La ruta del log (
logpath) puede variar según tu sistema operativo. En CentOS suele ser/var/log/httpd/error_log. Si no estás seguro, usa el comandofind /var/log -name "error*log"para localizarlo.
Una vez hechos los cambios, guarda el archivo (Ctrl+O, luego Enter, y Ctrl+X para salir en nano) y reinicia el servicio.
sudo systemctl restart fail2ban
Monitoreo y gestión de los bloqueos en tiempo real
Ahora que todo está configurado, es hora de ver cómo funciona. Necesitamos saber si nuestro guardia está haciendo su trabajo.
Ver el estado general de Fail2ban
Ejecuta el siguiente comando para ver todas las jails activas y los bloqueos actuales:
sudo fail2ban-client status
Verás una lista de las jails que has configurado.
Ver detalles de una jail específica y desbloquear una IP
Para ver los detalles de, por ejemplo, la jail de SSH (sshd):
sudo fail2ban-client status sshd
Este comando te mostrará la lista de IPs bloqueadas actualmente por esa jail.
Si por error has bloqueado tu propia IP, o simplemente quieres darle una segunda oportunidad a un usuario, puedes desbloquearla con este comando:
sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR
Reemplaza IP_A_DESBLOQUEAR con la dirección IP real.
[WARNING] Desbloquear una IP no es una solución mágica. Si la IP es maliciosa, volverá a ser bloqueada en cuanto vuelva a fallar los intentos permitidos. Úsalo con criterio.
Comprobando los registros de Fail2ban
Para ver la actividad detallada (quién fue bloqueado y cuándo), puedes revisar los logs:
sudo tail -f /var/log/fail2ban.log
Este comando te mostrará un flujo en tiempo real de lo que hace fail2ban. Es muy útil para entender los ataques que está bloqueando.
Preguntas Frecuentes (FAQ) sobre Fail2ban en Plesk
Aquí te respondo algunas de las dudas más comunes que me suelen plantear los clientes:
¿Fail2ban ralentiza mi servidor?
No, todo lo contrario. Al bloquear conexiones no deseadas, reduces la carga en tu servidor. El proceso de fail2ban en sí mismo consume muy pocos recursos, ya que solo analiza líneas de texto en los logs.
¿Puedo usar Fail2ban con otros paneles de control?
Sí, fail2ban es una herramienta independiente del panel. Funciona a nivel de sistema operativo. Si usas otro panel como Syspanel (recuerda que en Syspanel el puerto de acceso es el 2106), la configuración es prácticamente la misma. Solo tendrás que ajustar las rutas de los logs y los nombres de los servicios.
¿Qué hago si me he bloqueado mi propia IP?
No entres en pánico. Tienes varias opciones:
- Esperar: Si el tiempo de bloqueo es corto, solo espera a que pase.
- Usar otra conexión: Si tienes una VPN o un móvil con datos móviles (con otra IP), puedes acceder desde ahí.
- Consola del proveedor: La mayoría de los proveedores de hosting ofrecen una consola de acceso directo (VNC o KVM) a través del panel del proveedor. Úsala para ejecutar el comando
unbanip. - Editar
ignoreip: Añade tu IP a la lista deignoreipenjail.localy reinicia fail2ban. Esto es una solución más permanente.
¿Es suficiente con Fail2ban para proteger mi servidor?
Fail2ban es una capa de seguridad esencial, pero no es la única. Piensa en ello como un portero muy estricto. No puedes olvidarte de:
- Mantener el sistema actualizado: Parchea las vulnerabilidades.
- Usar contraseñas fuertes: Una contraseña robusta es tu primera línea de defensa.
- Usar autenticación SSH con llaves: Es mucho más segura que las contraseñas.
- Mantener el firewall del sistema (iptables/firewalld) activo: Fail2ban trabaja con el firewall, pero no lo reemplaza.
¿Puedo recibir notificaciones por correo cuando se bloquea una IP?
Sí. En el archivo jail.local, en la sección [DEFAULT], puedes configurar las opciones de correo electrónico. Solo necesitas tener un servicio de correo funcionando en tu servidor y añadir líneas como destemail = tu@correo.com y action = %(action_mwl)s. Esta última acción envía un correo con el log relevante.
Conclusión: Tu servidor, ahora más seguro
Proteger tu servidor no tiene por qué ser una tarea titánica. Con herramientas como fail2ban y un poco de configuración, puedes automatizar la defensa contra los ataques de fuerza bruta y otras amenazas. Has aprendido a configurarlo tanto desde la interfaz amigable de Plesk como desde la potente línea de comandos, a monitorear su actividad y a resolver los problemas más comunes.
Recuerda que la seguridad servidor es un proceso continuo, no un destino. Revisa periódicamente los logs de fail2ban, mantén tus contraseñas fuertes y no te duermas en los laureles. Con estas herramientas y conocimientos, has dado un paso de gigante para convertir tu servidor en una fortaleza digital. ¡Buen trabajo!
