GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar y usar Fail2ban en RHEL 8 / CentOS 8

Lo más importante en la lista de todos los equipos de operaciones de TI es garantizar que los servidores estén protegidos contra usuarios no autorizados o scripts maliciosos. Hay una serie de soluciones que puede aplicar para evitar ataques e infracciones. Entre ellos se encuentra la implementación de la herramienta de software Fail2ban.

Fail2ban es una medida de detección de intrusiones de código abierto que mitiga los ataques de fuerza bruta dirigidos a varios servicios, como SSH y VSFTPD, por mencionar algunos. Viene con una variedad de filtros, incluido SSH, que puede personalizar para actualizar las reglas del firewall y bloquear los intentos de inicio de sesión SSH no autorizados.

La utilidad fail2ban supervisa los archivos de registro del servidor en busca de intentos de intrusión y bloquea la dirección IP del usuario después de un número predefinido de intentos fallidos durante un período específico. La IP del usuario se coloca en una "cárcel" que se puede configurar, habilitar o deshabilitar en el archivo de configuración /etc/fail2ban/jail.conf. De esta manera, ayuda a proteger su servidor Linux de accesos no autorizados y, más específicamente, de botnets y scripts maliciosos.

¿Qué comprende una cárcel? Una cárcel se compone de los siguientes elementos clave:

  • El archivo de registro que se analizará.
  • Filtros que se aplicarán en el archivo de registro.
  • La acción que se realizará cuando el filtro coincida
  • Parámetros adicionales para elaborar el tipo de coincidencias. Por ejemplo, maxtry (intento máximo) y bantime (tiempo de prohibición), etc.

En este tutorial, lo guiaremos a través de la instalación y configuración de Fail2ban en RHEL 8/CentOS 8.

Paso 1) Instalar el repositorio EPEL

Primero, inicie sesión en su servidor e instale el paquete EPEL (Extra Package for Enterprise Linux) de la siguiente manera.

Para CentOS 8

$ sudo dnf install -y epel-release

Para RHEL 8

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

Paso 2) Instalar Fail2ban

Para instalar Fail2ban, ejecute el comando simple a continuación:

$ sudo dnf install -y fail2ban

Paso 3) Configuración de Fail2ban

Por diseño, fail2ban analiza los archivos de registro e intenta hacer coincidir el failregex que se especifica en los filtros. Los filtros detectan intentos de autenticación fallidos para un servicio específico, por ejemplo, intentos de inicio de sesión SSH usando expresiones regulares:expresiones regulares. Cuando se alcanza el número máximo de veces 'maxtry' en las entradas del registro, se activa una acción.

De forma predeterminada, esto sucede después de 3 intentos fallidos de autenticación y el usuario es expulsado o encarcelado durante 10 minutos. Estos parámetros se pueden configurar fácilmente en el archivo /etc/fail2ban/jail.conf, que es el archivo de configuración global.

Todos los archivos de configuración importantes se encuentran en el directorio /etc/fail2ban/.

Los filtros se almacenan en el directorio /etc/fail2ban/filter.d. Hay docenas de filtros para varios servicios, incluidos SSH, Webmin, postfix y mucho más.

/etc/fail2ban/jail.conf es el archivo de configuración principal. Sin embargo, no se recomienda modificar directamente este archivo porque, tal como se explica en el archivo, es probable que las configuraciones se sobrescriban o mejoren en una actualización de distribución posterior.

Una solución consiste en crear un archivo  jail.local en el directorio /etc/fail2ban/jail.d y agregar sus configuraciones personalizadas para los servicios deseados que desea proteger.

NOTA:Los parámetros definidos en el archivo jail.local anularán el archivo jail.conf. Lo que hace que sea aún más preferible dejar intacto el archivo de configuración principal.

Para fines de demostración, vamos a crear un archivo jail que protegerá las conexiones SSH.

$ sudo vim /etc/fail2ban/jail.local

Aquí está el archivo de configuración de muestra.

[DEFAULT]
ignoreip = 192.168.2.105
bantime  = 86400
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd
[sshd]
enabled = true

Analicemos los parámetros y veamos qué representan.

  • ignoreip:define una lista de direcciones IP o nombres de dominio que no deben prohibirse.
  • tiempo de baneo:como sugiere el nombre, esto especifica la duración del tiempo en que se bloquea un host remoto en segundos.
  • maxretry:este es el número de intentos de inicio de sesión fallidos antes de que el host sea bloqueado/prohibido.
  • findtime:tiempo en segundos durante el cual se bloqueará un host después de lograr los intentos máximos.
  • banaction:la acción de prohibir.
  • backend:el sistema utilizado para obtener archivos de registro

Nuestra configuración implica lo siguiente:

Cuando una dirección IP registra 3 intentos de autenticación fallidos en los últimos 5 minutos, se prohibirá durante 24 horas con la excepción de un host con IP 192.168.2.105.

Guarde y salga del archivo de configuración.

Paso 4)  Iniciar y habilitar Fail2ban

Una vez finalizada la configuración del archivo jail para SSH, vamos a iniciar y habilitar fail2ban en el arranque. Por lo general, el servicio no se ejecuta durante la instalación

Para iniciar y habilitar fail2ban, ejecute el comando:

$ sudo systemctl start fail2ban
$ sudo systemctl enable fail2ban

Para revelar el estado de fail2ban, invoque el siguiente comando:

$ sudo systemctl status fail2ban

Esta vez, podemos observar que fail2ban se está ejecutando como se esperaba.

Ahora procedamos y veamos cómo funciona Fail2ban.

Paso 4) Fail2ban en acción

Vayamos ahora un paso más allá y veamos a Fail2ban en acción. Para vigilar las direcciones IP prohibidas, la utilidad fail2ban-client resulta útil. Por ejemplo, para obtener el estado de ssh jail, ejecute el comando:

$ sudo fail2ban-client status sshd

Por el momento, no hay entradas de IP prohibidas porque aún no hemos iniciado sesión de forma remota en el servidor.

Vamos a intentar iniciar sesión desde el cliente PuTTY SSH desde una PC con Windows con una IP diferente a la especificada en el archivo de configuración jail.local.

Desde la salida, podemos ver claramente que no podemos acceder al servidor. Cuando revisamos el estado nuevamente, encontramos que una IP ha sido prohibida como se muestra.

Para eliminar la IP de la lista prohibida, anule la prohibición de la siguiente manera.

$ sudo fail2ban-client unban 192.168.2.101

Para recopilar más información sobre las reglas y políticas de fail2ban, visite las páginas de manual de jail.conf como se muestra

$ man jail.conf

¿Algún comentario o comentario? No dude en comunicarse y nos pondremos en contacto con usted.

Leer también :12 ejemplos de comandos IP para usuarios de Linux


Cent OS
  1. Cómo instalar y usar PHP Composer en CentOS 7

  2. Cómo instalar y usar ifconfig en CentOS 7

  3. Cómo instalar y configurar samba en RHEL 8 / CentOS 8

  4. Cómo instalar el archivo bin en RHEL 8 / CentOS 8 Linux

  5. Cómo instalar Fail2Ban en CentOS 7

Cómo instalar y usar Cockpit en CentOS 8 / RHEL 8

Cómo instalar y usar Terraform en CentOS 8

Cómo instalar y usar Firewalld en CentOS / RHEL

Cómo instalar y configurar Fail2ban en CentOS 8

Cómo instalar y usar TermRecord en CentOS 8

Cómo instalar y usar Traceroute en CentOS 7