Instalar Fail2ban en Ubuntu 22.04

por ismaelrak

Fail2ban es una herramienta de prevención de intrusiones que protegerá tu servidor de ataques de fuerza bruta y otros tipos de ataques mediante una estrecha vigilancia de los archivos de registro. Posteriormente, la herramienta bloquea las direcciones IP sospechosas en función del número preestablecido de intentos fallidos de inicio de sesión para detener los ataques. Fail2Ban utiliza jaulas para monitorear los archivos de registro en busca de fallos de autenticación y otras entradas que puedan considerarse actividades sospechosas.

Puede ser configurada para enviar un correo electrónico y/o bloquear la dirección IP del atacante durante un período de tiempo predeterminado. Una vez que finaliza el período de bloqueo, la dirección IP del atacante se desbloquea automáticamente. En este tutorial, le mostraremos cómo instalar y configurar Fail2ban en Ubuntu 22.04.

 

Paso 1 .  Logueate en tu servidor

En primer lugar, inicie sesión en su servidor Ubuntu 22.04 a través de SSH como usuario root:

ssh root@DireccionIP -p Numero_de_Puerto

Sustituye «root» por un usuario que tenga privilegios sudo si asi es que lo tienes configurado.  Además, sustituye «Dirección_IP» y «Número_Puerto» por la dirección IP y el número de puerto SSH respectivos de su servidor.

Puede comprobar si tienes Ubuntu 22.04  instalada en tu servidor con el siguiente comando:

$ lsb_release -a

Deberías obtener como output en tu terminal como esta:

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04 LTS
Release: 22.04
Codename: jammy

Antes de empezar, tienes que asegurarte de que todos los paquetes del sistema operativo Ubuntu instalados en el servidor están actualizados, Para ello ejecuta los siguientes comandos:

$ sudo apt update -y
$ sudo apt upgrade -y

Paso 2. Instalar Fail2ban

Fail2ban está includo en los repositorios oficiales de Ubuntu, por lo que podemos simplemente ejecutar el siguiente comando para instalarlo:

$ sudo apt install fail2ban -y

A continuación, invoque este comando para habilitar y ejecutar fail2ban

$ sudo systemctl enable --now fail2ban

Fail2ban está instalado y funcionando ahora, puede verificarlo invocando este comando:

Paso 3. Configurar Fail2ban

En Ubuntu, los archivos de configuración están situados en /etc/fail2ban/jail.conf y /etc/fail2ban/jail.d/defaults-debian.conf. Fail2ban cargará primero los archivos .local, ya que son los archivos de configuracion por defecto, antes de cargar los archivos .conf. Por lo tanto, es necesario crear una copia del archivo jail.conf por defecto como jail.local. Configuraremos todo modificando el archivo jail.local. Ten en cuenta que no es recomendable modificar los archivos .conf por defecto, ya que podrían sobrescribirse al actualizar.

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

Lista blanca IP

Lo primero que tienes que hacer es poner en la lista blanca tu propio servidor, vamos a editar /etc/fail2ban/jail.local, y des comentar la línea ‘ignoreip’. También puedes añadir otras direcciones IP, y deben estar separadas por un espacio o una coma.

$ sudo nano /etc/fail2ban/jail.local

Busca la línea ‘ignoreip’ y descoméntala.

#ignoreip = 127.0.0.1/8 ::1

Se debería ver como esto:

ignoreip = 127.0.0.1/8 ::1

Configuración del Ban time

El tiempo de baneo es cuando una IP es baneada después de un número específico de intentos fallidos de autenticación. Por defecto, el valor es de 10 minutos con buscador de 10 minutos en cinco reintentos. Esto significa que la cárcel Fail2ban con filtrado activo bloqueará la dirección IP del atacante durante 10 minutos después de que haya reintentado el mismo ataque en 10 minutos (tiempo de búsqueda) x 5 veces (reintentos).

Se aconseja establecer diferentes tiempos de baneo, ya que algunos baneos deberían ser automáticamente más largos que otros, incluyendo reintentos que deberían ser menores o mayores. Esto es una preferencia personal, pero es preferible establecer el tiempo lo suficientemente largo como para interrumpir las actividades de los usuarios maliciosos. Si quieres banear la dirección IP atacante permanentemente, puedes establecer el valor de bantime a -1.

En este caso lo voy a ajustar el bantime a 60 minutos.

Notificaciones en el correo

Si desea recibir un correo en tu bandeja de entrada  cada vez que fail2ban banea una dirección IP en el jail, puede establecer una dirección de correo electrónico en la jail. Todavía en /etc/fail2ban/jail.local, necesitamos modificar estos valores. Asegúrate de establecer el destemail a tu propia dirección de correo electrónico real.

destemail = [email protected]
sender = [email protected]

Si deseas recibir una notificación por correo electrónico cuando una dirección IP se bloquea debido a un intento fallido de inicio de sesión SSH, puede poner esta línea en [sshd] jail.

action = %(action_mwl)s

El «mwl» después de la «action_» le dice a fail2ban que le envíe correos electrónicos junto con los registros también. Si no desea recibir el registro, simplemente utilice «mw».

Además, asegúrese de habilitar tu jail ‘sshd’. Debería verse así.

[sshd]

# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
enabled = true
action = %(action_mwl)s

Guarde los cambios, salga del editor que estés utilizando, en este caso utilizo nano y reinicia fail2ban para cargar la nueva configuración.

$ sudo systemctl restart fail2ban

 

Fail2ban Jails

En fail2ban, un Jail es una combinación de un filtro y una o varias acciones. Un filtro podría definir una expresión regular que coincida con un patrón correspondiente a un intento fallido de inicio de sesión u otras actividades sospechosas. Una acción podría ser el comando que se ejecuta cuando el filtro definido captura una dirección IP abusiva. Por defecto, hay algunas jails que podemos utilizar, las jails con filtros y acciones creadas por la comunidad que cubren muchas aplicaciones de servidor populares. En este paso, configuraremos las jaulas por defecto del paquete fail2ban.

Fail2ban desactiva las jails por defecto.

 

Banear o desbanear una IP

Ahora que fail2ban está funcionando con algunas jails habilitadas, necesitas conocer algunos comandos  básicos para banear/desbanear una dirección IP. Podemos utilizar el comando fail2ban-client para realizar la acción.

Para banear una dirección IP, ponla en sshd jail, y ejecuta este comando.

$ sudo fail2ban-client set sshd banip [DIRECCION_IP]

A veces puede ocurrir que fail2ban haya bloqueado accidentalmente una dirección IP y quieras desbanearla. Puedes ejecutar los siguientes comandos para localizar el nombre de la jaIL que bloqueó esa dirección IP.

sudo fail2ban-client status | grep "Jail list" | sed -E 's/^[^:]+:[ \t]+//' | sed 's/,//g'

Después de obtener el nombre de la jaula, puedes ejecutar este comando para desbanearla finalmente.

sudo fail2ban-client set sshd unbanip [Direccion_IP]

 

Conclusión

Con eso tendrás instalado y configurado Fail2ban en tu servidor con Ubuntu 22.04, espero que haya sido de utilidad, especialmente si estás utilizando un VPS.

Fail2ban en Ubuntu 22.04 es una medida crítica de seguridad para salvaguardar nuestro sistema contra posibles ataques maliciosos. Al personalizar las reglas y configurar adecuadamente, podemos evitar el acceso no autorizado y prevenir cualquier intento de intrusión. El tiempo y el esfuerzo invertidos valen la pena para mantener la seguridad web.

Related Posts

Deja un Comentario

Las siguientes reglas del RGPD deben leerse y aceptarse: