Cómo instalar y configurar Fail2Ban en Linux

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:

  1. identifica la dirección IP atacante
  2. 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.

Scroll to Top