Cómo instalar y configurar Fail2ban en Debian 10

11 mar 2021 4 min di lettura
Cómo instalar y configurar Fail2ban en Debian 10
Indice dei contenuti

Introducción

Todos los servidores a los que se puede acceder desde Internet corren el riesgo de sufrir ataques de malware. Por ejemplo, si tiene una aplicación accesible desde la red pública, los atacantes pueden usar intentos de fuerza bruta para obtener acceso a la aplicación.

Fail2ban es una herramienta que ayuda a proteger su máquina Linux de la fuerza bruta y otros ataques automatizados al monitorear los registros de servicio en busca de actividad maliciosa. Utilice expresiones regulares para analizar archivos de registro. Contaron todos los elementos que corresponden a los modelos y cuando el número alcanza un cierto umbral predefinido, Fail2ban prohíbe que la IP infractora utilice el firewall del sistema durante un período de tiempo específico. Cuando expira el período de prohibición, la dirección IP se elimina de la lista de prohibición.

Este artículo explica cómo instalar y configurar Fail2ban en Debian 10.

Instalar Fail2ban en Debian

El paquete Fail2ban se incluye en los repositorios predeterminados de Debian 10. Para instalarlo, ejecute el siguiente comando como root o usuario con privilegios de sudo:

sudo apt update
sudo apt install fail2ban

Una vez completado, el servicio Fail2ban se iniciará automáticamente. Puede comprobarlo comprobando el estado del servicio:

sudo systemctl status fail2ban

La salida se verá así:

● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-03-10 13:11:21 UTC; 45s ago
...

Eso es todo. En este punto, tiene Fail2Ban ejecutándose en su servidor Debian.

Configurar Fail2ban

La instalación predeterminada de Fail2ban viene con dos archivos de configuración /etc/fail2ban/jail.conf y /etc/fail2ban/jail.d/defaults-debian.conf. No modifique estos archivos, ya que pueden sobrescribirse cuando se actualiza el paquete.

Fail2ban lee los archivos de configuración en el siguiente orden. Cada archivo .local anula la configuración del archivo .conf:

  • /etc/fail2ban/jail.conf
  • /etc/fail2ban/jail.d/*.conf
  • /etc/fail2ban/jail.local
  • /etc/fail2ban/jail.d/*.local

La forma más sencilla de configurar Fail2ban es copiar el contenido del archivo jail.conf a jail.local y editar el archivo .local. Los usuarios más avanzados pueden crear un archivo de .local configuración desde cero. El archivo .local no tiene que incluir todas las configuraciones del archivo .conf correspondiente, sino solo las que desea anular.

Cree un archivo de .local configuración copiando el archivo predeterminado jail.conf:

sudo cp /etc/fail2ban/jail.{conf,local}

Para comenzar a configurar el servidor Fail2ban, abra el archivo jail.local con su editor de texto:

sudo nano /etc/fail2ban/jail.local

El archivo incluye comentarios que describen lo que hace cada opción de configuración. En este ejemplo, cambiaremos la configuración básica.

Direcciones IP de la lista blanca

Puede agregar ignoreip direcciones IP, rangos de IP o hosts que desee excluir de la prohibición a la directiva . Aquí debe agregar la dirección IP de su PC local y cualquier otra máquina que desee incluir en la lista blanca.

Descomente la línea que comienza con ignoreip y agregue sus direcciones IP separadas por un espacio:

ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
/etc/fail2ban/jail.local

Establecer la prohibición

Las opciones bantime, findtime y maxretry le permiten establecer el tiempo de prohibición general y condiciones de prohibición.

bantime es la duración durante la cual la propiedad intelectual está prohibida. Cuando no se especifica ningún sufijo, el valor predeterminado es segundos. De forma predeterminada, el bantime valor se establece en 10 minutos. La mayoría de los usuarios prefieren establecer un período de prohibición más largo. Cambie el valor a su gusto:

bantime  = 1d
/etc/fail2ban/jail.local

Para prohibir permanentemente la IP, use un número negativo.

findtime es la duración entre el número de errores antes de que se establezca una prohibición. Por ejemplo, si Fail2ban está configurado para prohibir una IP después de cinco fallas (maxretry ver más abajo), esas fallas deben ocurrir durante la vida útil findtime.

findtime  = 10m
/etc/fail2ban/jail.local

maxretry es el número de errores antes de que se prohíba una IP. El valor predeterminado está establecido en cinco, lo que debería estar bien para la mayoría de los usuarios.

maxretry = 5
/etc/fail2ban/jail.local

Notificar por correo electrónico

Fail2ban puede enviar alertas por correo electrónico cuando una IP ha sido prohibida. Para recibir correos electrónicos, debe tener SMTP instalado en su servidor y cambiar la acción predeterminada, que solo prohíbe la IP %(action_mw)s, como se muestra a continuación:

action = %(action_mw)s
/etc/fail2ban/jail.local

%(action_mw)s prohibir la IP infractora y enviar un correo electrónico con un informe de whois. Si desea incluir registros relevantes en el correo electrónico, establezca la acción en %(action_mwl)s.

También puede cambiar las direcciones de correo electrónico de envío y recepción:

destemail = [email protected]

sender = [email protected]
/etc/fail2ban/jail.local

Cárceles Fail2ban

Fail2ban utiliza el concepto de cárcel. Una prisión describe un servicio e incluye filtros y acciones. Las entradas de registro que coinciden con el patrón de búsqueda se cuentan y, cuando se cumple una condición predefinida, se realizan las acciones correspondientes.

Fail2ban viene con varias cárceles para diferentes servicios. También puede crear sus propias configuraciones de cárcel. De forma predeterminada, solo está habilitada la cárcel ssh.

Para habilitar una cárcel, debe agregar enabled = true después del título de la cárcel. El siguiente ejemplo muestra cómo habilitar la cárcel postfix:

[postfix]
enabled  = true
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/mail.log
/etc/fail2ban/jail.local

La configuración que discutimos en la sección anterior se puede establecer por cárcel. Aquí hay un ejemplo:

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 4w
ignoreip  = 127.0.0.1/8 11.22.33.44
/etc/fail2ban/jail.local

Los filtros están ubicados en el directorio /etc/fail2ban/filter.d, almacenados en un archivo con el mismo nombre que la cárcel. Si tiene una configuración personalizada y experiencia con expresiones regulares, puede ajustar los filtros.

Siempre que se cambia el archivo de configuración, el servicio Fail2ban debe reiniciarse para que los cambios surtan efecto:

sudo systemctl restart fail2ban

Cliente Fail2ban

Fail2ban viene con una herramienta de línea de comandos con nombre fail2ban-clientque puede utilizar para interactuar con el servicio Fail2ban.

Para ver todas las opciones disponibles, invoque el comando con la opción -h:

fail2ban-client -h

Esta herramienta se puede utilizar para prohibir / desbloquear (excluir y desbloquear) direcciones IP, cambiar configuraciones, reiniciar el servicio y más. Algunos ejemplos:

Obtenga el estado actual del servidor:

sudo fail2ban-client status

Verifique el estado de la cárcel:

sudo fail2ban-client status sshd

Desbloquear una IP:

sudo fail2ban-client set sshd unbanip 11.22.33.44

Prohibir una IP:

sudo fail2ban-client set sshd banip 11.22.33.44

Conclusión

Le mostramos cómo instalar y configurar Fail2ban en Debian 10.

Para obtener más información sobre este tema, visite la documentación de Fail2ban.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.