Contáctanos
Webflow Premium Partner Ehab Fayez
Volver a Agent Skills
Seguridad y Calidad

Fail2ban Intrusion Prevention

Monitorea logs y banea automáticamente IPs con signos maliciosos con Fail2ban para servidores Linux.

Claude Code Cursor

Descripción General

Fail2ban es un software de prevención de intrusiones que monitorea archivos de log en busca de actividad sospechosa y banea automáticamente direcciones IP infractoras modificando reglas de firewall. Protege servidores Linux contra ataques de fuerza bruta en SSH, autenticación HTTP, servidores de correo y cualquier servicio que produzca archivos de log con patrones de ataque identificables.

La herramienta funciona parseando archivos de log (syslog, auth.log, logs de acceso nginx/Apache) usando filtros regex configurables. Cuando un filtro coincide un número definido de veces dentro de una ventana de tiempo, Fail2ban ejecuta una acción de ban, típicamente agregando una regla iptables o nftables para bloquear la IP infractora. Los bans son temporales por defecto, con duraciones configurables y backoff exponencial para infractores reincidentes.

Fail2ban viene con filtros preconfigurados para servicios comunes (sshd, nginx, apache, postfix, dovecot) y puede extenderse con filtros personalizados para formatos de log específicos de aplicación. Las acciones pueden ir más allá de reglas de firewall para incluir notificaciones por email, alertas de Slack o llamadas API para actualizar listas de bloqueo externas. El CLI fail2ban-client proporciona monitoreo en tiempo real de IPs baneadas, estado de jails y operaciones manuales de ban/unban.

¿Para Quién Es?

  • Bloquear intentos de fuerza bruta SSH automáticamente
  • Proteger Nginx/Apache de intentos fallidos de login repetidos
  • Configurar jail personalizado para patrones de ataque específicos de la app
  • Configurar alertas por email para direcciones IP baneadas

Instalación

Configurar Claude Code
sudo apt install fail2ban

Configuración

# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600

[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 5
bantime = 7200