¿Tienes un VPS y te preocupa su seguridad? Es normal. Cuando tu servidor está conectado a internet, está expuesto constantemente a intentos de acceso no autorizados. No hablamos de ciberdelincuentes con capucha, sino de bots automáticos que recorren la red buscando servidores mal protegidos. Por suerte, tenemos Fail2Ban.
Uno de los métodos más comunes que usan estos bots es el ataque por fuerza bruta. Prueban combinaciones de usuario y contraseña, una tras otra, hasta que alguna funciona. Si no haces nada para evitarlo, y tus contraseñas no son todo lo seguras que deberían, es posible que acierten. Y aunque no lo consigan, estos intentos consumen recursos de tu servidor y lo ralentizan.
Fail2Ban está diseñado justo para eso: detectar esos intentos repetidos y bloquear automáticamente a quien los hace. No necesitas ser un experto para usarlo. Con unos pocos pasos puedes instalarlo, configurarlo y empezar a proteger tu VPS en serio.
Tabla de Contenidos
Qué es Fail2ban y para qué sirve en tu VPS
Fail2Ban es una herramienta de seguridad diseñada para proteger tu servidor frente a accesos no autorizados. Aunque su nombre suene técnico, su función es muy sencilla de entender: bloquea automáticamente a quienes intentan acceder a tu servidor y fallan varias veces. Así de simple.
Imagina que tu VPS es una casa. Cada vez que alguien intenta entrar, deja una huella en la cerradura. Si lo intenta una vez, puede ser un error. Si lo intenta diez veces en dos minutos, es bastante sospechoso, ¿no? Pues Fail2Ban actúa como un portero que observa esos intentos y si detecta que alguien insiste demasiado, le cierra la puerta de golpe bloqueando su dirección IP.
Este tipo de comportamiento —intentar adivinar la contraseña por fuerza bruta— es uno de los ataques más comunes en servidores accesibles desde internet. Los atacantes no necesitan saber quién eres ni qué haces. Utilizan bots automáticos que prueban nombres de usuario y contraseñas sin parar, hasta que dan con una combinación válida, si es que pueden.
Aquí es donde Fail2Ban es el jefe. Evita que esos ataques sigan indefinidamente, protege tus servicios más vulnerables (como el acceso por SSH) y además, ayuda a reducir el consumo de recursos que provocan estos intentos masivos. Menos intentos significa menos carga, menos ruido en tus logs y más tranquilidad para ti.
Y lo mejor es que no necesitas ser experto en ciberseguridad para usarlo. Fail2Ban funciona en segundo plano y puedes configurarlo para que se ajuste a tus necesidades. Si tienes un servidor VPS con acceso root, ya tienes lo necesario para empezar.
🛡️ Cómo Funciona Fail2Ban
Cómo funciona Fail2Ban por dentro
Fail2Ban no es un antivirus ni un firewall en sí mismo. Es más bien un sistema de vigilancia que observa lo que ocurre en tu servidor y actúa cuando detecta algo raro. Lo que hace es leer los registros del sistema (los logs) y buscar patrones de comportamiento sospechoso, como varios intentos fallidos de acceso en poco tiempo.
Cuando detecta uno de esos patrones, no se queda de brazos cruzados: le dice al firewall del servidor que bloquee esa dirección IP durante un tiempo. Esa es su gran ventaja. No espera a que ocurra un daño, sino que actúa antes de que lo consigan.
Cómo sabe qué vigilar
Fail2Ban funciona gracias a unas reglas que se llaman jails (prisiones). Cada jail está pensada para un servicio concreto: por ejemplo, el acceso por SSH, un panel de administración web o el servidor de correo.
Cada jail tiene tres valores clave que puedes ajustar:
- maxretry: cuántos intentos fallidos se permiten antes de actuar.
- findtime: en cuánto tiempo deben producirse esos intentos fallidos (por ejemplo, 5 fallos en 10 minutos).
- bantime: cuánto tiempo se bloqueará la IP (desde unos minutos hasta indefinidamente).
Por ejemplo, puedes tener una regla que diga:
“Si alguien falla 5 veces al intentar entrar por SSH en menos de 10 minutos, bloquéalo durante una hora.”
Y si además tienes otros servicios expuestos (como FTP, correo o Apache), puedes activar más jails para que Fail2Ban los vigile también.
¿Qué herramientas usa para bloquear?
Fail2Ban no bloquea por sí mismo, sino que se apoya en el sistema de cortafuegos de tu servidor, como iptables, nftables o firewalld, según el sistema operativo. Es decir, él detecta y da la orden, pero el que bloquea de verdad es el firewall.
Esto le permite trabajar con mucha flexibilidad y sin necesidad de instalar software pesado o complejo.
Ventajas reales de usar Fail2Ban
Tener un servidor expuesto a internet es como tener una casa con muchas puertas. Aunque tú sepas por dónde se entra, hay otras personas —o mejor dicho, bots— que van probando todas, una por una, a ver si alguna está abierta. Y no lo hacen una vez al mes, lo hacen cada día.
Lo bueno es que no estás solo para defender tu servidor. Aquí es donde entra Fail2Ban, que hace un trabajo que muchos valoran más de lo que parece: vigila por ti sin que tengas que estar pendiente todo el tiempo.

¿Por qué merece la pena instalarlo?
- Porque te quita preocupaciones.
En lugar de revisar logs y mirar quién ha intentado entrar, Fail2Ban lo hace por ti. Y si ve algo raro, actúa. Así de sencillo. - Porque protege sin molestar.
Funciona en segundo plano, no ralentiza tu servidor ni te exige que seas un experto en redes o ciberseguridad. Puedes configurarlo una vez y dejarlo trabajando. - Porque ahorra recursos.
Cada intento de acceso genera actividad en tu servidor. Si hay cientos de intentos al día, eso significa más carga, más líneas en los logs y más posibilidades de error. Fail2Ban bloquea al atacante y reduce ese ruido. - Porque te da control.
Puedes decidir cuántos intentos tolerar, durante cuánto tiempo bloquear y qué servicios quieres proteger. Si solo usas SSH, activas el jail de SSH y listo. - Porque es gratuito y funciona.
Hay pocas herramientas que hagan tanto con tan poco. Y lleva años siendo confiable.
¿Y si nunca me han atacado?
Probablemente sí lo han hecho, aunque no te hayas enterado. Es lo normal. Lo importante no es esperar a que pase algo grave. Es poner medidas antes, como harías con una alarma en casa aunque nunca hayas tenido un robo.
Fail2Ban es esa alarma silenciosa. No te avisa con sirenas, pero actúa cuando tiene que actuar.
Cómo instalar Fail2Ban paso a paso
Vale, ya te hemos contado lo que hace Fail2Ban y por qué deberías tenerlo. Ahora toca lo importante: cómo se instala.
La buena noticia es que no necesitas hacer magia negra ni pelearte con la consola. Si tienes acceso root a tu VPS, puedes instalar Fail2Ban en unos minutos.
Paso 1. Accede al servidor
Primero, conéctate a tu VPS por SSH. Desde tu ordenador, puedes usar:
ssh tu_usuario@tu_ip_del_servidor
Si ya estás dentro, genial. Si no sabes cómo conectarte, revisa los datos que te dio tu proveedor de hosting.
Paso 2. Actualiza tu sistema
Antes de instalar cualquier cosa, es buena idea asegurarte de que todo está actualizado:
En Ubuntu o Debian:
sudo apt update && sudo apt upgrade
En CentOS, Fedora o Rocky:
sudo yum update
O si usas DNF:
sudo dnf update
Paso 3. Instala Fail2Ban
Ahora sí, vamos a instalarlo:
En Ubuntu o Debian:
sudo apt install fail2ban
En CentOS / RHEL:
Primero necesitas activar el repositorio EPEL:
sudo yum install epel-release
Y después:
sudo yum install fail2ban
Con DNF (Fedora y similares):
sudo dnf install fail2ban
Paso 4. Activa y arranca Fail2Ban
Una vez instalado, toca activarlo para que empiece a proteger:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Y si quieres comprobar que está funcionando:
sudo systemctl status fail2ban
Deberías ver un mensaje que dice “active (running)”.
¿Y ahora qué?
Una vez instalado, Fail2Ban ya está vigilando tu servidor, pero con una configuración muy básica. Por defecto, suele venir con el jail de SSH desactivado, así que en el siguiente apartado veremos cómo configurarlo a tu medida.
Piénsalo así: ahora tienes al portero en la puerta, pero necesita instrucciones claras para saber cuándo tiene que actuar.
Fail2Ban
Guía interactiva para proteger tu servidor paso a paso
Primero necesitas conectarte a tu VPS por SSH. Usa el comando apropiado desde tu terminal:
ssh tu_usuario@tu_ip_del_servidor
Antes de instalar Fail2Ban, es importante actualizar el sistema. Selecciona tu distribución:
sudo apt update && sudo apt upgrade
sudo yum update
sudo dnf update
Ahora vamos a instalar Fail2Ban según tu distribución:
sudo apt install fail2ban
Primero activa el repositorio EPEL:
sudo yum install epel-release
Después instala Fail2Ban:
sudo yum install fail2ban
sudo dnf install fail2ban
Ahora vamos a activar el servicio para que se inicie automáticamente:
sudo systemctl enable fail2ban
Y lo iniciamos:
sudo systemctl start fail2ban
Verifica que está funcionando:
sudo systemctl status fail2ban
Ahora vamos a configurar Fail2Ban para proteger el acceso SSH:
Crea el archivo de configuración personalizado:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Edita el archivo:
sudo nano /etc/fail2ban/jail.local
Busca la sección [sshd] y asegúrate de que esté así:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = systemd
Reinicia Fail2Ban para aplicar los cambios:
sudo systemctl restart fail2ban
Verifica que el jail SSH está activo:
sudo fail2ban-client status sshd
Ve el estado general:
sudo fail2ban-client status
Si quieres personalizar más la configuración, aquí tienes los parámetros principales:
Parámetros importantes:
- maxretry: Número de intentos fallidos antes del bloqueo (por defecto: 5)
- findtime: Ventana de tiempo para contar los fallos (por defecto: 600 segundos)
- bantime: Tiempo de bloqueo de la IP (por defecto: 3600 segundos)
Para cambiar estos valores, añade estas líneas en la sección [sshd]:
maxretry = 5
findtime = 600
bantime = 3600
Configuración básica para que Fail2Ban empiece a proteger
Una vez instalado Fail2Ban, necesitas decirle qué quieres que vigile y cómo debe reaccionar. Por defecto, viene con muchas configuraciones preparadas, pero no todas activadas.
Vamos a enseñarle a proteger el acceso por SSH, que es donde más se producen ataques por fuerza bruta.
Paso 1. No toques el archivo original
El archivo de configuración principal es este:
/etc/fail2ban/jail.conf
Pero no deberías editarlo directamente, porque si actualizas Fail2Ban en el futuro podrías perder los cambios. Mejor haz una copia llamada jail.local
, que es la que el sistema usa como personalizada:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Paso 2. Edita la copia para activar el jail de SSH
Ahora abre ese archivo para editarlo:
sudo nano /etc/fail2ban/jail.local
Busca este bloque (puedes hacer scroll o usar Ctrl + W
para buscar “sshd”):
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = systemd
Solo tienes que asegurarte de que enabled = true
. Si ponía false
, cámbialo.
Guarda con Ctrl + O
y sal con Ctrl + X
.
Paso 3. Reinicia Fail2Ban para aplicar los cambios
Cada vez que cambies algo en la configuración, reinicia el servicio:
sudo systemctl restart fail2ban
Y para comprobar que todo está bien:
sudo fail2ban-client status sshd
Ahí verás si el jail está activo y si ya ha bloqueado alguna IP.
¿Qué significan esos parámetros?
Puedes dejar la configuración por defecto, pero si quieres entender lo básico, aquí va una explicación sencilla:
maxretry
: número de veces que alguien puede fallar antes de ser bloqueado (por defecto suele ser 5).findtime
: el intervalo de tiempo en el que se cuentan esos fallos (por ejemplo, 10 minutos = 600 segundos).bantime
: cuánto tiempo se bloquea esa IP (por ejemplo, 1 hora = 3600 segundos).
Si los quieres cambiar, puedes añadir estas líneas dentro del bloque [sshd]
:
maxretry = 5
findtime = 600
bantime = 3600
Y ya está. Con esto, tu servidor ya tiene una protección básica contra ataques por fuerza bruta por SSH. Sin complicaciones.
Cómo saber si Fail2Ban está funcionando
Una vez instalado y configurado, lo lógico es preguntarse: ¿está protegiendo de verdad mi servidor? Por suerte, Fail2Ban tiene comandos muy sencillos para comprobarlo.
Ver si el servicio está activo
Primero, asegúrate de que Fail2Ban está en marcha:
sudo systemctl status fail2ban
Deberías ver una línea que dice algo como active (running)
. Si pone eso, todo va bien.
Ver qué está vigilando
Fail2Ban puede tener varios “jails” activos (recordemos: un jail es una regla para vigilar algo concreto, como el acceso por SSH).
Para ver qué jails están activados:
sudo fail2ban-client status
Ahí debería aparecer algo como:
Status
|- Number of jail: 1
`- Jail list: sshd
Eso significa que está vigilando el servicio SSH, que es justo lo que querías.
Ver si ha bloqueado alguna IP
Y si quieres ver si ya ha bloqueado a alguien, puedes usar:
sudo fail2ban-client status sshd
Esto te dirá:
- Cuántas IPs están bloqueadas ahora mismo.
- Cuántas ha bloqueado desde que se inició.
- Qué IPs están en la lista de bloqueo.
No necesitas entender todos los datos, solo saber que si aparece alguna IP ahí, Fail2Ban ya está haciendo su trabajo.
Y con eso, ya tienes lo básico para estar tranquilo. Tu servidor está protegido, y puedes comprobarlo tú mismo en cualquier momento.
Conclusión
Fail2Ban es como tener un portero digital en la entrada de tu servidor. No hace ruido, no ocupa casi recursos y, sin embargo, marca la diferencia cuando alguien intenta colarse.
Con solo unos minutos de configuración básica, ya puedes estar mucho más tranquilo. No necesitas ser un experto ni complicarte la vida: Fail2Ban detecta los intentos maliciosos y bloquea automáticamente a quien se pasa de listo.
Puedes consultar la documentación oficial de Fail2Ban si quieres profundizar más o ajustar la configuración a otros servicios como FTP, Apache o correo.
Y lo mejor es que puedes comprobar fácilmente si está funcionando, sin tener que interpretar logs ni pelearte con comandos complejos.
Así que si tienes un VPS, y especialmente si accedes por SSH, no lo dejes desprotegido. Instala Fail2Ban, actívalo y olvídate. Tu servidor te lo va a agradecer.