Curso de servidores linux

¿Qué es Fail2Ban y por qué instalarlo?

Fail2Ban es una herramienta de seguridad preventiva.

👉 Su función principal es:

  • Vigilar los logs del sistema (SSH, Apache, Nginx, etc.)
  • Detectar intentos repetidos de acceso fallido
  • Bloquear automáticamente la IP atacante mediante el firewall (iptables / nftables)

En tu caso (Linux Mint + SSH):

  • Protege el puerto 22
  • Evita ataques de fuerza bruta
  • Es ideal incluso en máquinas virtuales (hábitos profesionales)

Fail2Ban no sustituye a un firewall, lo complementa.


Cómo funciona (idea rápida)

  1. Un atacante intenta entrar por SSH varias veces
  2. Fail2Ban detecta los errores en /var/log/auth.log
  3. Si supera un límite → banea la IP
  4. Tras un tiempo → desbanea automáticamente

Paso 1: Actualizar el sistema

Siempre empezamos así:

1sudo apt update
2sudo apt upgrade -y

Paso 2: Instalar Fail2Ban

En Linux Mint (basado en Ubuntu):

1sudo apt install fail2ban -y

Comprueba que está instalado:

1fail2ban-client --version

Paso 3: Comprobar estado del servicio

1sudo systemctl status fail2ban

Deberías ver algo como:

Active: active (running)

Si no estuviera activo:

1sudo systemctl enable --now fail2ban

Paso 4: Configuración correcta (MUY IMPORTANTE)

Nunca edites jail.conf directamente ✔️ Siempre se usa jail.local

Crear el archivo de configuración local

1sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Ahora edítalo:

1sudo nano /etc/fail2ban/jail.local

Paso 5: Configurar protección SSH

Busca la sección [sshd] y déjala así (o similar):

1[sshd]
2enabled = true
3port = ssh
4logpath = %(sshd_log)s
5maxretry = 5
6bantime = 10m
7findtime = 10m

¿Qué significa esto?

ParámetroExplicación
enabledActiva la protección
maxretryIntentos permitidos
findtimeTiempo para contar intentos
bantimeTiempo de bloqueo
portPuerto SSH (22 o personalizado)

Paso 6: Reiniciar Fail2Ban

1sudo systemctl restart fail2ban

Paso 7: Comprobar que SSH está protegido

1sudo fail2ban-client status

Salida esperada:

Jail list: sshd

Ver detalles del jail SSH:

1sudo fail2ban-client status sshd

Ejemplo de salida:

Currently banned: 0
Total banned: 3

Paso 8: (Opcional) Probar Fail2Ban

Desde Windows, intenta:

  • Conectarte por SSH con usuario correcto y contraseña incorrecta
  • Repite varias veces

Después revisa:

1sudo fail2ban-client status sshd

Verás cómo sube el contador o se bloquea la IP 😈


📁 Archivos importantes que debes conocer

ArchivoUso
/etc/fail2ban/jail.confConfiguración base
/etc/fail2ban/jail.localConfiguración personalizada
/var/log/fail2ban.logLogs de Fail2Ban
/var/log/auth.logLogs de SSH