Cómo instalar y configurar Fail2ban en Ubuntu 22.04

configurar el cortafuegos ufw

Fail2ban es un IPS (software de prevención de intrusiones) gratuito y de código abierto que ayuda a los administradores a proteger los servidores Linux contra inicios de sesión maliciosos y ataques de fuerza bruta. Fail2ban está escrito en Python y viene con filtros para varios servicios como Apache2, SSH, FTP, etc. Fail2ban reduce los intentos de inicio de sesión maliciosos al bloquear las direcciones IP de los ataques de origen.

Fail2ban funciona escaneando los archivos de registro de los servicios (ef /var/log/auth.log) y prohibiendo las direcciones IP que muestran intentos de inicio de sesión maliciosos, como demasiadas contraseñas incorrectas, búsqueda de exploits, etc. Fail2ban también es compatible con múltiples firewalls como iptables, ufw y cortafuegos. También le permite configurar una notificación por correo electrónico para cada intento de inicio de sesión bloqueado.

En este tutorial, le mostraremos cómo instalar y configurar Fail2ban para asegurar el servidor Ubuntu 22.04. Esta guía también cubre el comando básico de fail2ban-client para administrar el servicio y las cárceles de Fail2ban.

Requisitos previos

  • Un servidor con Ubuntu 22.04
  • Un usuario no root con privilegios sudo.

Configurar el cortafuegos UFW

Antes de comenzar a instalar Fail2ban, deberá configurar el Firewall en su servidor Ubuntu fail2ban server.

La instalación predeterminada del servidor Ubuntu viene con UFW Firewall, que es más fácil de administrar que otro firewall como iptables.

Ahora verifique el estado del firewall UFW usando el siguiente comando.

sudo ufw status

Si recibe el mensaje de salida como «Estado: inactivo», entonces su firewall UFW aún no se ha iniciado. Pero si recibe el mensaje de salida como «Comando ufw no encontrado», entonces el firewall UFW no está instalado en su servidor.

Para instalar el paquete de firewall UFW, ejecute el comando apt a continuación.

sudo apt install ufw -y

Una vez completada la instalación de UFW, ejecute el siguiente comando para agregar el servicio SSH al firewall de UFW.

sudo ufw allow ssh

Luego, ejecute el siguiente comando para iniciar y habilitar el firewall UFW.

sudo ufw enable

Ingrese y para confirmar e iniciar el firewall UFW.

Por último, verifique nuevamente el firewall UFW usando el siguiente comando.

sudo ufw status

A continuación puede ver el firewall UFW «Estado: activo» con el puerto SSH 22 añadido a las reglas del cortafuegos.

configurar el cortafuegos ufw

Instalar Fail2ban en Ubuntu 22.04

Después de haber instalado y configurado el firewall UFW, ahora instalará el paquete Fail2ban en su servidor Ubuntu fail2ban ubuntu 22.04.

Ejecute el siguiente comando para actualizar y actualizar su repositorio de Ubuntu.

sudo apt update

Ahora instale el paquete Fail2ban usando el siguiente comando.

sudo apt install fail2ban -y

La instalación comenzará.

instalar fail2ban 22.04

Una vez completada la instalación de Fail2ban, habilite el servicio Fail2ban e inicie el servicio con el siguiente comando.

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Por último, verifique el estado del servicio Fail2ban usando el siguiente comando.

sudo systemctl status fail2ban

En la siguiente captura de pantalla, verá que el servicio Fail2ban se está ejecutando en el servidor Ubuntu 22.04.

iniciar y verificar el servicio fail2ban

Configurar Fail2ban

Después de haber instalado fail2ban ubuntu, ahora es el momento de configurar Fail2ban.

Toda la configuración de Fail2ban se almacena en el directorio /etc/fail2ban. A continuación se detalla la configuración de Fail2ban que debe conocer:

  • La configuración fail2ban.conf es la configuración principal de Fail2ban.
  • La configuración jail.conf es un ejemplo de la configuración de la cárcel Fail2ban.
  • El directorio action.d contiene configuraciones de acciones fail2ban, como configuraciones de correo y configuraciones de firewall.
  • El directorio jail.d contiene configuración adicional para fail2ban jail.

Para comenzar a configurar Fail2ban, deberá copiar la configuración de cárcel predeterminada jail.conf a jail.local usando el siguiente comando.

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

Ahora edite la configuración jail.local usando el editor nano.

sudo nano /etc/fail2ban/jail.local

Primero, descomente la opción ignoreip y agregue su dirección IP. Todas las direcciones IP dentro de la opción ignoreip no serán bloqueadas por Fail2ban.

ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.10.20

Para la configuración de prohibición, puede cambiar la configuración según lo necesite. En este ejemplo, el tiempo de banda global será 1 día, el tiempo de búsqueda será 10 minutos y el maxretry depende de 5 veces.

La opción bantime es el momento en que la dirección IP será prohibida para acceder al servidor. La opción de tiempo de búsqueda es la duración entre el número de fallas antes de la acción de prohibición. Y la opción maxretry es la cantidad de fallas para que las direcciones IP sean prohibidas.

bantime  = 1d
findtime  = 10m
maxretry = 5

La acción predeterminada para Fail2ban es solo prohibir la dirección IP. Pero también puede configurar la notificación por correo cada vez que se prohíba una dirección IP.

Cambie la opción de acción como se muestra a continuación y cambie el remitente predeterminado y la dirección de correo de destino.

action = %(action_mw)s
destemail = [email protected]
sender = [email protected]

A continuación, para la integración del firewall UFW, debe cambiar la opción de banacción a ufw como se muestra a continuación.

banaction = ufw

Por último, para la configuración de las cárceles. Esta sección es donde agrega su servicio y lo protege usando fail2ban.

En este ejemplo, habilitaremos la cárcel para el servicio SSH, pero también anularemos la configuración predeterminada global para la cárcel sshd. La hora de la fiesta será 1 semana con maxretry de fallas 3 veces y el tiempo de búsqueda en 10 minutos.

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 1w
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Guarde y cierre el archivo cuando haya terminado.

Ahora ejecute el siguiente comando para reiniciar el servicio Fail2ban y aplicar nuevos cambios a la configuración jail.local.

sudo systemctl restart fail2ban

Ahora ha completado la configuración de Fail2ban con la notificación por correo electrónico habilitada y la cárcel sshd habilitada para asegurar el servicio SSH.

Uso de Fail2ban-client para verificar el estado de Fail2ban

El fail2ban proporciona una línea de comando fail2ban-client para interactuar con el servicio Fail2ban. Esto le permite administrar y configurar Fail2ban desde la línea de comandos, y también le permite administrar las cárceles de Fail2ban.

Para verificar la instalación y configuración de fail2ban, ejecute el siguiente comando fail2ban-client.

sudo fail2ban-client ping

Si recibe el mensaje de salida como «El servidor respondió: pong«, esto significa que Fail2ban se está ejecutando sin errores.

A continuación, ejecute el siguiente comando fail2ban-client para comprobar el estado de sshd jail.

sudo fail2ban-client status sshd

A continuación puedes ver el estado detallado de sshd jail. Esto incluye el archivo de registro para el servicio SSH y la lista de direcciones IP prohibidas en la cárcel sshd.

verificar el estado de la cárcel sshd

Ahora, si desea obtener una configuración detallada de la cárcel sshd, puede usar el comando fail2ban-client como se muestra a continuación.

Compruebe la configuración de bantime para sshd jail. Obtendrá la salida del bantime aquí en segundos.

sudo fail2ban-client get sshd bantime

Verifique la configuración de maxrtey para la cárcel sshd. Verá que maxretry aquí es 3 porque se anula desde la configuración global, que es maxrety 5 veces.

sudo fail2ban-client get sshd maxretry

Para la prohibición en sshd jail, puede usar el siguiente comando. Y debería obtener la salida de ufw como la acción predeterminada para sshd jail.

sudo fail2ban-client get sshd actions

Para el tiempo de búsqueda aquí, también verá el valor de anulación de la cárcel sshd. La salida aquí también estará en formato de segundos.

sudo fail2ban-client get sshd findtime

Por último, también puede verificar el ignoreip predeterminado para sshd jail usando el siguiente comando. Y verá que ignoreip tiene el mismo valor que la configuración global de Fail2ban.

sudo fail2ban-client get sshd ignoreip

verifique los detalles de sshd

Banear y Desbanear IP usando Fail2ban-client

Otra cosa importante acerca de Fail2ban es cómo banear y desbanear direcciones IP en Fail2ban. Para hacer eso, también puede usar el comando fail2ban-client.

Para banear la dirección IP manualmente en la cárcel sshd, puede usar el comando fail2ban-client a continuación. Cambie la dirección IP con la dirección IP que desea banear.

sudo fail2ban-client set sshd banip IP-ADDRESS

Para desbanear la dirección IP de sshd jail, puede usar el comando fail2ban-client a continuación. Solo asegúrese de cambiar la dirección IP con la dirección IP que desea desbanear.

sudo fail2ban-client set sshd unbanip IP-ADDRESS

Ahora, después de banear una dirección IP manualmente o desbanear una dirección IP, puede verificar usando el comando fail2ban-client a continuación.

sudo fail2ban-client status sshd

Si banear una dirección IP manualmente, asegúrese de que la dirección IP esté disponible en la lista de direcciones IP banneadas. Pero si desbanear una dirección IP, asegúrese de que la dirección IP desaparezca de la lista de direcciones IP banneadas.

Conclusión

¡Felicidades! Ahora ha instalado y configurado con éxito Fail2ban para proteger su sistema Ubuntu 22.04. También aprendió cómo habilitar el firewall UFW y cómo integrar Fail2ban con el firewall UFW. Por último, también aprendió cómo administrar Fail2ban usando el comando fail2ban-client, que incluye cómo banear y desbanear direcciones IP en Fail2ban.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *