Protección contra ataques de fuerza bruta SSH mediante Fail2Ban

Fail2Ban es un marco de software que actúa como sistema de defensa contra intrusiones, diseñado para proteger servidores de ataques de fuerza bruta. Desarrollado en Python, se ejecuta en sistemas POSIX como Linux y se integra con herramientas de firewall como iptables o TCP Wrapper. Su función principal es monitorizar automáticamente intentos de autenticación fallidos y bloquear direcciones IP sospechosas tras patrones de comportamiento malicioso.

El funcionamiento de Fail2Ban se basa en el análisis de archivos de registro, como los de Apache o SSH, para detectar actividades anómalas, como múltiples fallos de inicio de sesión. Al identificar una IP con intentos repetidos, el sistema actualiza las reglas del firewall para prohibir el acceso temporal o permanentemente. Por defecto, incluye filtros predefinidos para servicios comunes como Apache, SSH o Postfix, los cuales utilizan expresiones regulares en Python y pueden personalizarse según necesidades específicas.

Para instalar Fail2Ban en sistemas basados en Red Hat, se ejecuta el siguiente comando:

sudo yum install fail2ban

La configuración se gestiona mediante el archivo jail.local, que prevalece sobre el archivo predeterminado jail.conf. Para evitar sobrescrituras durante actualizaciones, se recomienda crear una copia local:

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

Al editar jail.local, se pueden definir reglas personalizadas. Por ejemplo, para configurar un bloqueo permanente tras un solo fallo de autenticación en 45 segundos:

[sshd]
enabled = true
maxretry = 1
findtime = 45
bantime = -1

Tras aplicar los cambios, se inicia el servicio y se habilita el arranque automático:

systemctl enable --now fail2ban

Para verificar el estado general o de un específico "jail", se utilizan comandos de cliente:

fail2ban-client status
fail2ban-client status sshd

Para probar la configuración, se puede crear un usuario de prueba en el servidor y simitar intentos de acceso fallidos desde otra máquina, monitoreando el registro en tiempo real:

tail -f /var/log/fail2ban.log

Los comandos más frecuentes para administrar Fail2Ban incluyen operaciones de control del servicio y gestión de bloqueos:

  • Iniciar el servicio: sudo systemctl start fail2ban
  • Detener el servicio: sudo systemctl stop fail2ban
  • Reiniciar el servicio: sudo systemctl restart fail2ban
  • Consultar el estado: sudo systemctl status fail2ban
  • Listar bloqueos activos: sudo fail2ban-client status
  • Desbloquear una IP: sudo fail2ban-client set sshd unbanip 192.168.1.100
  • Inspeccionar un "jail" específico: sudo fail2ban-client status sshd

Fail2Ban reduce significativamente los ataques de fuerza bruta, pero debe complementarse con métodos de autenticación robustos como la autenticación multifactor (MFA) para una seguridad integral.

Etiquetas: fail2ban SSH iptables linux defensa-contra-intrusiones

Publicado el 6-10 06:42