Icono del sitio Binario 0

Guía de Uso de Fail2ban: Opciones y Ejemplos

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Artículos Guías Manuales Sistemas Linux Windows Binario 0

FacebookEmailWhatsAppLinkedInRedditXShare

Fail2ban es una herramienta de seguridad diseñada para proteger sistemas Linux/Unix de ataques de fuerza bruta, monitoreando archivos de registro y tomando medidas como bloquear IPs sospechosas temporalmente. Este software es ideal para proteger servicios que usan SSH, HTTP, FTP y otros.

A continuación, te ofrezco una guía de las opciones más comunes y ejemplos de cómo usar Fail2ban.

Instalación de Fail2ban

Primero, debes instalar Fail2ban en tu sistema. En distribuciones basadas en Debian, como Ubuntu, se instala con el siguiente comando:

sudo apt update
sudo apt install fail2ban

En sistemas basados en Red Hat, puedes usar:

sudo yum install fail2ban

Archivo de configuración principal

Fail2ban tiene un archivo principal de configuración que se encuentra en:

/etc/fail2ban/jail.conf

Nota: No se recomienda modificar directamente este archivo. En su lugar, crea un archivo local en /etc/fail2ban/jail.local para realizar las configuraciones personalizadas.

Opciones Comunes de Fail2ban

A continuación se describen las principales opciones de configuración que puedes usar dentro del archivo de configuración (jail.local):

  1. [DEFAULT]: Esta sección define las configuraciones predeterminadas globales que se aplican a todas las "jails" (celdas) de Fail2ban.

    Ejemplo de configuración básica en jail.local:

    [DEFAULT]
    bantime = 3600 # Tiempo que se bloqueará una IP (en segundos). Aquí 3600 segundos = 1 hora.
    findtime = 600 # Período de tiempo en el que Fail2ban buscará intentos de acceso fallidos (en segundos).
    maxretry = 3 # Número máximo de intentos fallidos antes de que se bloquee una IP.
  2. [SSH]: Configuración específica para proteger el servicio SSH. Puedes crear una "jail" para SSH o cualquier otro servicio que quieras proteger.

    Ejemplo de configuración para SSH en jail.local:

    [sshd]
    enabled = true # Habilita la protección para SSH.
    port = ssh # Puerto que Fail2ban monitoreará (puedes cambiarlo si tienes un puerto diferente).
    logpath = /var/log/auth.log # Ruta del archivo de registro que se usará para encontrar intentos fallidos.
    maxretry = 5 # Número de intentos fallidos antes de banear la IP.
  3. bantime: Define el tiempo que una IP estará bloqueada después de exceder los intentos permitidos.

    bantime = 1800 # 30 minutos.
  4. findtime: Es el tiempo que Fail2ban buscará intentos fallidos para aplicar el baneo. Si una IP falla el número de veces configuradas en maxretry durante este periodo, será bloqueada.

    findtime = 600 # 10 minutos.
  5. ignoreip: Lista de IPs que siempre serán ignoradas y nunca bloqueadas, útil si tienes una IP interna que no quieres que sea bloqueada por error.

    ignoreip = 127.0.0.1/8 192.168.1.1
  6. action: Define qué acción tomará Fail2ban cuando detecte intentos de acceso fallidos. La opción más común es bloquear la IP con iptables, pero puedes definir otras acciones.

    action = %(action_mwl)s # Bloquea la IP, envía un correo con el log.

Comandos de Fail2ban

Fail2ban ofrece varios comandos útiles para administrar las "jails" y ver los estados de las IPs bloqueadas.

  1. Iniciar Fail2ban:

    sudo systemctl start fail2ban
  2. Habilitar Fail2ban para que inicie al arrancar el sistema:

    sudo systemctl enable fail2ban
  3. Ver el estado de Fail2ban y de las jails activas:

    sudo fail2ban-client status
  4. Ver el estado de una jail específica (por ejemplo, SSH):

    sudo fail2ban-client status sshd
  5. Desbloquear una IP específica (por ejemplo, 192.168.1.100):

    sudo fail2ban-client unban 192.168.1.100
  6. Banear manualmente una IP:

    sudo fail2ban-client ban 192.168.1.101

Ejemplo de Jail para Proteger un Servidor HTTP

Supongamos que tienes un servidor web Nginx o Apache y quieres protegerlo de intentos fallidos de autenticación.

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

Este ejemplo bloqueará las IPs que intenten y fallen autenticarse en un servidor Nginx más de 3 veces.

Conclusión

Fail2ban es una herramienta flexible que te permite proteger tu servidor de intentos maliciosos. Con una configuración adecuada y un monitoreo regular de los archivos de registro, puedes mejorar significativamente la seguridad de tu servidor Linux o Unix.

Salir de la versión móvil