Cómo instalar y configurar Fail2Ban en Linux (guía fácil)
Cuando un servidor Linux está conectado a internet, es común que reciba intentos automáticos de acceso no autorizado, especialmente en servicios como SSH. Estos intentos suelen ser ataques de fuerza bruta donde un bot intenta adivinar contraseñas.
Para proteger el servidor existe Fail2Ban, una herramienta que detecta intentos de acceso repetidos y bloquea automáticamente la dirección IP atacante.
En esta guía vas a aprender cómo instalar y configurar Fail2Ban en Linux paso a paso, usando comandos simples.
Qué es Fail2Ban
Fail2Ban es una herramienta de seguridad que analiza archivos de log del sistema.
Cuando detecta muchos intentos fallidos de login, automáticamente:
- identifica la dirección IP atacante
- bloquea esa IP usando el firewall
De esta manera evita ataques de fuerza bruta en servicios como:
- SSH
- FTP
- servidores web
- paneles de administración
Cómo instalar Fail2Ban
La instalación es muy sencilla y solo requiere un comando.
En Ubuntu o Debian
sudo apt update
sudo apt install fail2ban
En CentOS, Rocky Linux o AlmaLinux
sudo yum install fail2ban
En Fedora
sudo dnf install fail2ban
Una vez instalado, el servicio puede iniciarse automáticamente.
Iniciar el servicio Fail2Ban
Para iniciar Fail2Ban ejecutá:
sudo systemctl start fail2ban
Para verificar que está funcionando:
sudo systemctl status fail2ban
Si todo está correcto verás algo como:
Active: active (running)
Habilitar Fail2Ban al iniciar el sistema
Para que Fail2Ban se inicie automáticamente cuando arranca el servidor ejecutá:
sudo systemctl enable fail2ban
Esto asegura que el sistema siempre esté protegido después de reiniciar.
Archivo de configuración de Fail2Ban
La configuración principal se encuentra en:
/etc/fail2ban/jail.conf
Sin embargo, no es recomendable modificar este archivo directamente.
Lo correcto es crear un archivo llamado:
/etc/fail2ban/jail.local
Esto permite mantener los cambios incluso después de actualizaciones.
Crear la configuración básica
Podés crear el archivo con:
sudo nano /etc/fail2ban/jail.local
Un ejemplo simple de configuración sería:
[DEFAULT]
bantime = 10m
findtime = 10m
maxretry = 5
[sshd]
enabled = true
port = ssh
Explicación de los parámetros:
- bantime → cuánto tiempo se bloquea la IP
- findtime → tiempo en el que se cuentan los intentos
- maxretry → cantidad de intentos antes del bloqueo
En este ejemplo, si alguien falla 5 intentos de login SSH en 10 minutos, su IP será bloqueada por 10 minutos.
Reiniciar Fail2Ban después de cambiar la configuración
Cada vez que modifiques la configuración, tenés que reiniciar el servicio:
sudo systemctl restart fail2ban
Esto aplica los cambios inmediatamente.
Ver qué IPs están bloqueadas
Fail2Ban permite ver qué direcciones IP han sido bloqueadas.
Para revisar el estado general:
sudo fail2ban-client status
Salida ejemplo:
Status
|- Number of jail: 1
`- Jail list: sshd
Para ver detalles del servicio SSH:
sudo fail2ban-client status sshd
Ejemplo de salida:
Banned IP list: 192.168.1.45
Esto indica que esa IP fue bloqueada por intentar acceder demasiadas veces.
Desbloquear una IP manualmente
Si necesitás desbloquear una IP específica podés hacerlo con:
sudo fail2ban-client set sshd unbanip 192.168.1.45
Esto eliminará el bloqueo inmediatamente.
Ver los logs de Fail2Ban
Fail2Ban guarda información en el archivo de log:
/var/log/fail2ban.log
Podés verlo con:
sudo tail -f /var/log/fail2ban.log
Esto muestra en tiempo real:
- intentos de acceso fallidos
- IPs bloqueadas
- acciones del sistema de seguridad
Configuraciones útiles de seguridad
Algunas configuraciones comunes que mejoran la seguridad del servidor incluyen:
Bloqueos más largos
bantime = 1h
Menos intentos permitidos
maxretry = 3
Mayor tiempo de detección
findtime = 15m
Esto hace que el sistema sea más estricto frente a ataques automáticos.
Servicios que se pueden proteger con Fail2Ban
Fail2Ban puede proteger muchos servicios distintos, por ejemplo:
| Servicio | Uso |
|---|---|
| SSH | acceso remoto |
| Nginx | servidor web |
| Apache | servidor web |
| Postfix | correo |
| FTP | transferencia de archivos |
La protección más común en servidores Linux es bloquear ataques SSH, ya que es el servicio que más intentos recibe.
Buenas prácticas al usar Fail2Ban
Al usar Fail2Ban es recomendable:
- proteger siempre el servicio SSH
- revisar regularmente los logs
- usar contraseñas fuertes o claves SSH
- mantener el sistema actualizado
Con estas medidas, Fail2Ban se convierte en una capa adicional de seguridad muy efectiva para servidores Linux.
