Información válida para: servidores raíz (root server) con sistema operativo Linux

    Fail2ban es un programa para Linux que detecta y bloquea los ataques de fuerza bruta.

    Fail2ban supervisa las entradas en los archivos de registro de los distintos servicios (por ejemplo, SSH o FTP). Demasiados intentos fallidos hacen que la dirección IP atacante se bloquee durante un cierto período de tiempo para que no se establezcan más conexiones.

    Requisito

    Para poder usar Fail2ban, se necesita un servidor root con sistema operativo Linux (Servidor Cloud, Servidor Dedicado o Servidor Virtual). A tener en cuenta: para los servidores con Plesk, las aplicaciones como Fail2ban deben instalarse y gestionarse siempre a través del interfaz de Plesk.

    Instalar Fail2ban

    Ubuntu 16.04 / 18.04 / 20.04 / 22.04 / 24.04

    Actualizar las listas de paquetes:

    sudo apt update
    bash

    Instalar Fail2ban:

    sudo apt install fail2ban
    bash

    Iniciar Fail2ban:

    sudo systemctl start fail2ban
    bash

    Iniciar Fail2ban automáticamente al iniciar el sistema:

    sudo systemctl enable fail2ban
    bash
    CentOS 7 / Stream 8 / Stream 9

    Actualizar las listas de paquetes:

    sudo yum update
    bash

    Instalar el EPEL Repository:

    sudo yum install epel-release
    bash

    Instalar Fail2ban:

    sudo yum install fail2ban
    bash

    Iniciar Fail2ban:

    sudo systemctl start fail2ban
    bash

    Iniciar Fail2ban automáticamente al iniciar el sistema:

    sudo systemctl enable fail2ban
    bash

    Configurar Fail2ban

    Los archivos de configuración de Fail2ban se almacenan en el directorio /etc/fail2ban. En este directorio, el archivo jail.conf contiene la configuración predeterminada.

    Si deseas utilizar Fail2ban con parámetros que difieren de la configuración por defecto, puedes crear el archivo /etc/fail2ban/jail.local para este propósito e introducir allí los parámetros deseados. Éstos sobrescriben los valores respectivos de jail.conf.

    A tener en cuenta: evita cambiar la configuración del archivo jail.conf, ya que esto puede causar problemas con futuras actualizaciones de Fail2ban. Introduce los cambios en el archivo jail.local tal y como se describe aquí.

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

    A continuación, puedes abrir el archivo jail.local para editarlo:

    sudo nano /etc/fail2ban/jail.local
    bash

    Para evitar confusiones en el futuro, puedes eliminar el primer bloque de texto que te advierte que no edites el archivo jail.conf:

    # WARNING: heavily refactored in 0.9.0 release.  Please review and
    #          customize settings for your setup.
    #
    # Changes:  in most of the cases you should not modify this
    #           file, but provide customizations in jail.local file,
    #           or separate .conf files under jail.d/ directory, e.g.:
    #
    # HOW TO ACTIVATE JAILS:
    #
    # YOU SHOULD NOT MODIFY THIS FILE.
    #
    # It will probably be overwritten or improved in a distribution update.
    #
    # Provide customizations in a jail.local file or a jail.d/customisation.local.
    # For example to change the default bantime for all jails and to enable the
    # ssh-iptables jail the following (uncommented) would appear in the .local file.
    # See man 5 jail.conf for details.
    #
    mixed
    Aumentar el tiempo que se banea una dirección IP atacante (ban time)

    Es recomendable aumentar la configuración del "ban time", es decir del tiempo de bloqueo de una dirección IP atacante, que por defecto es de sólo 10 minutos (600 segundos).

    Para aumentar el tiempo de bloqueo, localiza la sección que dice:

    # "bantime" is the number of seconds that a host is banned.
    bantime  = 600
    mixed

    Reemplaza 600 por el número deseado de segundos. Por ejemplo, para bloquear hosts durante dos horas, cambia este bloque de comandos de la siguiente manera:

    # "bantime" is the number of seconds that a host is banned.
    bantime  = 7200
    mixed

    Guarda el archivo y reinicia Fail2ban para que los cambios surtan efecto:

    sudo systemctl restart fail2ban
    bash

    Registro fail2ban.log

    Todas las acciones y medidas realizadas por Fail2ban se registran en el archivo /var/log/fail2ban.log.

    sudo less /var/log/fail2ban.log
    mixed