
📅 Publicado el 30 de octubre, 2026 · Por Equipo RedServicio
Si tienes un servidor Ubuntu, configurar fail2ban es quizá la medida de seguridad que más retorno te da por el esfuerzo invertido: el sistema bloquea de forma automática cualquier IP que se porte de forma sospechosa (intentos de login fallidos repetidos, por ejemplo). ¿Gestionas tu propia web o aplicación? Entonces seguramente has abierto los logs alguna vez y te has llevado las manos a la cabeza. Cientos de intentos de acceso cada día. Es lo normal, por desgracia. Bots de todo el mundo rastrean servidores sin descanso, buscando contraseñas débiles y fallos conocidos que explotar. Aquí verás, paso a paso, cómo instalar fail2ban, configurarlo y sacarle partido para frenar estos ataques de fuerza bruta.
¿Qué es fail2ban y por qué necesitas proteger tu servidor?
Hablamos de una aplicación de prevención de intrusiones escrita en Python que vigila los archivos de registro de servicios como SSH, Apache, Nginx o Postfix. Su trabajo es sencillo de explicar: busca patrones de actividad maliciosa y, cuando una IP supera el número de intentos fallidos que hayas definido, modifica las reglas del firewall (iptables o nftables) para bloquear esa dirección durante el tiempo que establezcas.
El ataque más habitual, el que neutraliza el 90% de las veces, es la fuerza bruta por SSH: bots probando miles de combinaciones de usuario y contraseña por segundo. No se queda ahí, ojo. También protege servicios web frente a escaneos agresivos, intentos de explotar formularios de login en WordPress y abuso del correo.
Ventajas clave de fail2ban
- Automatización total: trabaja 24/7 sin que tú muevas un dedo, bloqueando y desbloqueando IPs según las reglas que definas.
- Bajo consumo de recursos: apenas nota el servidor que está, incluso en máquinas con poca RAM. Lo he comprobado en VPS bastante justos.
- Altamente configurable: puedes crear filtros propios para casi cualquier servicio que escriba logs.
- Menos ruido en los logs: al eliminar IPs repetidas, cuando revisas los registros ves los intentos de ataque reales con más claridad.
En RedServicio aplicamos este tipo de protecciones por defecto en nuestros planes de hosting, pero si administras un VPS o un servidor dedicado, fail2ban es una capa de defensa que tendrás que montar tú.
Requisitos previos antes de instalar fail2ban
Antes de lanzarte, revisa estos puntos. Evitarás disgustos a mitad del proceso:
- Un servidor con Ubuntu: la guía está probada en Ubuntu 20.04, 22.04 y 24.04 LTS, aunque debería funcionar en la mayoría de distribuciones basadas en Debian.
- Acceso con privilegios de administrador: necesitas ejecutar comandos con sudo o entrar directamente como root.
- SSH accesible desde tu equipo: esto es fundamental. Antes de activar cualquier jail que proteja SSH, verifica que puedes conectar sin problemas. Un bloqueo aquí deja fuera de juego.
- Firewall configurado (recomendado): fail2ban interactúa con iptables/nftables o con UFW, así que conviene saber en qué estado está con sudo ufw status.
- Claves SSH configuradas (muy recomendable): si vas a activar un jail estricto para SSH, autentícate con clave pública en lugar de contraseña. Así no te bloquearás por accidente.
Consejo práctico: mientras pruebas la configuración inicial, mantén siempre una sesión SSH abierta. Si acabas bloqueándote por error, podrás corregirlo sin depender de la consola del proveedor. Créeme, ahorra más de un susto.
Cómo configurar fail2ban en Ubuntu: instalación y configuración inicial
Lo primero: actualizar los repositorios para instalarte la versión más reciente disponible.
sudo apt update && sudo apt upgrade -y
Después, instala fail2ban desde los repositorios oficiales de Ubuntu. Vienen todas las dependencias incluidas:
sudo apt install fail2ban -y
Con la instalación terminada, el servicio arranca solo en las versiones modernas de Ubuntu (gracias, systemd). Comprueba su estado:
sudo systemctl status fail2ban
¿No está activo? Pasa de largo, o casi. Habilita el arranque automático y levántalo a mano:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Crear la configuración local: jail.local
Fail2ban lee su configuración de /etc/fail2ban/jail.conf. No lo edites nunca directamente: una actualización del paquete lo sobrescribirá y perderás tus cambios. Lo correcto es crear un archivo local:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Y editarlo con tu editor preferido:
sudo nano /etc/fail2ban/jail.local
Dentro de la sección [DEFAULT] van los parámetros globales. Para empezar, algo razonable sería esto:
- ignoreip = 127.0.0.1/8 ::1 y tu IP habitual: evita bloquearte a ti mismo. Sí, pasa más de lo que se admite en público.
- bantime = 3600: duración del bloqueo en segundos (una hora).
- findtime = 600: ventana de tiempo en la que se cuentan los intentos fallidos (10 minutos).
- maxretry = 5: máximo de intentos fallidos antes del baneo.
- banaction = ufw: si usas UFW como firewall, esta acción integra los baneos con tus reglas existentes.
Guarda el archivo y reinicia el servicio con sudo systemctl restart fail2ban. Luego ejecuta sudo fail2ban-client status; debería devolverte la lista de jails activos. Con esto ya tienes la base montada. Lo que viene ahora son los jails específicos, y de eso tratamos en la siguiente parte de la guía.
Protección SSH: jail principal y parámetros clave (bantime, findtime, maxretry)
De todos los jails, el de SSH es el que más importa. Con diferencia. Es la puerta favorita de los atacantes y donde más bots van a chocar contra tu servidor. En lugar de tocar jail.conf directamente (mala idea, se sobrescribe con las actualizaciones), crea /etc/fail2ban/jail.local o un fichero dentro de jail.d/ con esto:
- [sshd]: la sección que activa el jail para el demonio OpenSSH.
- enabled = true: sin esta línea el jail existe pero no hace nada. Fácil de olvidar.
- port = ssh: el puerto a vigilar. ¿Cambiaste SSH al 2222? Pues indícalo aquí, explícito.
- bantime = 1h: cuánto dura el baneo. Las versiones modernas de fail2ban aceptan formatos legibles: 10m, 1h, 1d…
- findtime = 10m: la ventana de tiempo en la que se cuentan los fallos.
- maxretry = 5: cuántos intentos fallidos caben en esa ventana antes del baneo.
Un punto de partida razonable sería:
- bantime = 1h
- findtime = 10m
- maxretry = 5
¿Ataques persistentes? Activa el baneo incremental con bantime.increment = true y bantime.factor = 2. Cada reincidencia duplica el tiempo de expulsión. Y algo que no debes saltarte: define ignoreip = 127.0.0.1/8 TU_IP_FIJA. No bloquearte a ti mismo es, sinceramente, el fallo más embarazoso y más frecuente con fail2ban.
Consejo: antes de subir el nivel de agresividad, asegúrate de tener acceso por consola (como el que ofrecen los paneles de RedServicio) o una IP fija en ignoreip. Quedarte fuera de tu propio servidor a las dos de la mañana no tiene gracia.
Verificar el funcionamiento y gestionar IPs baneadas
Guardada la configuración, recarga el servicio: sudo systemctl restart fail2ban. Después consulta el estado del jail SSH con sudo fail2ban-client status sshd. Ahí verás los intentos fallados registrados y la lista de IPs baneadas en este momento.
Para el día a día, cuatro comandos que conviene tener a mano:
- Banear manualmente: sudo fail2ban-client set sshd banip 203.0.113.45
- Desbanear una IP: sudo fail2ban-client set sshd unbanip 203.0.113.45
- Consultar todos los jails activos: sudo fail2ban-client status
- Revisar los logs: sudo tail -f /var/log/fail2ban.log
Quieres comprobar que el sistema reacciona de verdad? Prueba a autenticarte desde otra máquina con una contraseña errónea varias veces seguidas. En el log aparecerá la entrada Ban 203.0.113.x y, desde esa IP, la conexión dejará de responder. Satisfactorio de ver, la primera vez.
Un detalle: fail2ban sobrevive a reinicios. Las IPs baneadas se restauran al arrancar siempre que el servicio esté habilitado con sudo systemctl enable fail2ban, algo que ya habrás hecho durante la instalación.
Conclusión: un servidor blindado con fail2ban y buenas prácticas
Pocas tareas de seguridad dan tanto por tan poco. En menos de una hora has instalado el servicio, ajustado los parámetros de baneo y puesto una valla frente a los ataques de fuerza bruta automatizados contra tu SSH.
Eso sí, fail2ban por sí solo no basta. Combínalo con estas prácticas:
- Autenticación por claves SSH, desactivando PasswordAuthentication en sshd_config.
- Sin login directo para root.
- Sistema al día, con sudo apt update && sudo apt upgrade de forma periódica.
- Jails adicionales para Nginx, Apache o WordPress según lo que tengas corriendo.
La seguridad, en realidad, nunca termina. No hay una configuración «definitiva» y punto. Si prefieres dedicarte a tu proyecto y no a administrar el servidor, en RedServicio encontrarás hosting con firewall gestionado, monitorización y soporte técnico 24/7 que asume estas tareas por ti. Y si gestionas tu propio VPS, pues con esta guía ya tienes fail2ban trabajando desde hoy.
Equipo RedServicio
Artículos escritos y revisados por nuestro equipo técnico especializado en hosting e infraestructura web en España.
¿Listo para un hosting de verdad?
Servidores en España · Soporte 24/7 en español · Migración gratuita
Ver Planes desde 3,95€/mes →