Cómo instalar y configurar Fail2ban en Debian 11

Fail2ban es un marco de software de prevención de intrusiones que protege los servidores informáticos de ataques principalmente de fuerza bruta, prohíbe los agentes de usuario incorrectos, prohíbe los escáneres de URL y mucho más. Fail2ban logra esto leyendo los registros de acceso / error de su servidor o aplicaciones web. Fail2ban está codificado en el lenguaje de programación Python.

El siguiente tutorial le enseñará cómo instalar Fail2ban y cómo realizar algunas configuraciones con ejemplos completos y consejos esenciales para comenzar con Debian 11 Bullseye.

Requisitos previos

  • SO recomendado: Diana de Debian 11
  • Cuenta de usuario: Una cuenta de usuario con acceso sudo o root.
  • Paquetes requeridos: wget

Actualizar sistema operativo

Actualice su Debian sistema operativo para asegurarse de que todos los paquetes existentes estén actualizados:

sudo apt update && sudo apt upgrade -y

El tutorial utilizará el comando sudo y asumiendo que tienes el estado de sudo.

Anuncio

Para verificar el estado de sudo en su cuenta:

Anuncio
sudo whoami

Salida de ejemplo que muestra el estado de sudo:

[joshua@debian~]$ sudo whoami
root

Para configurar una cuenta sudo nueva o existente, visite nuestro tutorial en Agregar un usuario a Sudoers en Debian.

Para utilizar el cuenta root, use el siguiente comando con la contraseña de root para iniciar sesión.

su

Instalar Fail2ban

Por defecto, Fail2ban viene incluido en el repositorio de Debian 11 Bullseye. Para instalar el software, use el siguiente comando en su terminal:

Anuncio
sudo apt install fail2ban

Ejemplo de salida:

Cómo instalar y configurar Fail2ban en Debian 11

Tipo Y, luego presione la tecla enter para continuar y completar la instalación.

Anuncio

De forma predeterminada, fail2ban después de la instalación debe estar activo y habilitado. Para verificar esto, use lo siguiente comando systemctl:

sudo systemctl status fail2ban

Ejemplo de salida:

Cómo instalar y configurar Fail2ban en Debian 11

Si su servicio fail2ban no está activado, ejecute los siguientes comandos para iniciar y, si lo desea, habilítelo en el inicio del sistema de forma predeterminada:

Anuncio
sudo systemctl start fail2ban

Luego, para habilitar fail2ban en el arranque del sistema, use lo siguiente:

sudo systemctl enable fail2ban

Por último, verifique la versión y compilación de fail2ban:

fail2ban-client --version

Ejemplo de salida:

Anuncio
Fail2Ban v0.11.2

Esto muestra que tiene una de las últimas versiones estables, que es ver. 0.11.2 (2020/11/23) - (curar el mundo con herramientas de seguridad). Si desea saber en el futuro dónde se encuentra su compilación instalada en el programa de lanzamiento de Fail2ban, visite la página de lanzamiento en Página de Fail2ban Github.

Configurar Fail2ban

Después de completar la instalación, ahora necesitamos realizar algunos ajustes y configuraciones básicas. Fail2ban viene con dos archivos de configuración que se encuentran en /etc/fail2ban/jail.conf y el Fail2ban predeterminado /etc/fail2ban/jail.d/defaults-debian.conf. No modifique estos archivos. Los archivos de configuración originales son sus originales y se reemplazarán en cualquier actualización de Fail2ban en el futuro.

Anuncio

Ahora puede preguntarse cómo configuramos Fail2ban como si actualizara y perdiera su configuración. Simple, creamos copias que terminan en .local en lugar de .conf como Fail2ban siempre leerá .local archivos primero antes de cargar .conf si no puede encontrar uno.

Para hacer esto, use el siguiente comando:

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

Ahora abra el archivo de configuración para continuar con la configuración:

sudo nano /etc/fail2ban/jail.local

A continuación, el tutorial se ejecutará sobre algunas configuraciones que puede usar o modificar a su gusto. Tenga en cuenta que la mayoría de las configuraciones están comentadas; el tutorial descomentará las líneas en cuestión o modificará las existentes en la configuración de ejemplo.

Anuncio

Recuerde, estas son configuraciones opcionales, y puede configurar lo que quiera si sabe más sobre fail2ban y tiene la confianza necesaria.

Anuncio

Incremento del tiempo de prohibición

La primera configuración con la que se encontrará son los incrementos de tiempo de prohibición. Debe habilitar esto cada vez que el atacante regrese. Aumentará el tiempo de prohibición, lo que evitará que su sistema vuelva a prohibir constantemente la misma IP si la duración de la prohibición es menor; por ejemplo, 1 hora, querría que esto sea más largo si el atacante regresa x5 veces.

Vea también  Cómo instalar los controladores de Nvidia en Debian 11/10

También debe establecer un multiplicador o factor para que la lógica de aumento de la prohibición funcione. Puede elegir cualquiera de estos; sin embargo, en nuestra guía, preferimos multiplicadores, como se destaca en nuestro ejemplo a continuación, ya que puede establecer aumentos de tiempo de prohibición personalizados a su gusto. Más explicación está en la configuración de las matemáticas detrás de esto.

Ejemplo a continuación:

Cómo instalar y configurar Fail2ban en Debian 11

IP en la lista blanca en Fail2ban

A continuación en la lista, nos encontramos con opciones de lista blanca, descomentamos lo siguiente y direccionamos las direcciones IP que desea incluir en la lista blanca.

ignoreip = 127.0.0.1/8 ::1 192.167.5.5 (example IP address)

Asegúrese de dejar un espacio o una coma entre las direcciones IP. También puede incluir rangos de IP en la lista blanca.

Anuncio
Anuncio

Ejemplo a continuación:

Cómo instalar y configurar Fail2ban en Debian 11

Configuración predeterminada del tiempo de prohibición

Los valores predeterminados del tiempo de prohibición son 10 minutos predeterminados con un buscador de 10 minutos en 5 reintentos. Una explicación de esto es que la cárcel Fail2ban con filtrado bloqueará a su atacante durante 10 minutos después de que haya reintentado el mismo ataque en 10 minutos. (encontrar el tiempo) x 5 veces (reintentos). Puede establecer algunas configuraciones de prohibición predeterminadas aquí.

Sin embargo, cuando llega a las cárceles, se recomienda establecer diferentes tiempos de prohibición, ya que algunas prohibiciones deberían ser automáticamente más largas que otras, incluidos los reintentos que deberían ser menores o más.

Ejemplo a continuación:

Cómo instalar y configurar Fail2ban en Debian 11

Configuración de correo electrónico con Fail2ban

Puede configurar una dirección de correo electrónico para que Fail2ban envíe informes. El valor por defecto acción =% (action_mw) s que prohíbe la IP infractora y envía un correo electrónico con un informe whois para que lo revise.

Anuncio

Sin embargo, en su carpeta action.d, existen otras opciones de correo electrónico para informar no solo a usted mismo, sino también para enviar correos electrónicos a los proveedores de alojamiento sobre la actividad del atacante para que se pueda hacer algo. Tenga en cuenta que solo haga esto si usa un proxy de correo electrónico, ya que algunos atacantes no lo tomarán amablemente o recibirán el correo electrónico directamente con la dirección IP de su servidor, use esta acción con extrema precaución o no lo haga en absoluto.

Anuncio

Ejemplo a continuación:

# Destination email address used solely for the interpolations in
# jail.{conf,local,d/*} configuration files.
destemail = admin@example.com

# Sender e-mail address used solely for some actions
sender = fail2ban@example.com

Ejemplo:

Cómo instalar y configurar Fail2ban en Debian 11

Tenga en cuenta que, de forma predeterminada, Fail2ban utiliza enviar correo MTA para notificaciones por correo electrónico. Puede cambiar esto a la función de correo Haciendo lo siguiente:

Cambiar de:

Anuncio
mta = sendmail

Cambiar a:

mail = sendmail

Cárceles Fail2ban

Luego, llegamos a las cárceles. Puede configurar cárceles predefinidas con filtros y acciones creadas por la comunidad que cubren muchas aplicaciones de servidor populares. Puede crear cárceles personalizadas o encontrar cárceles externas en varios esencias y sitios web comunitarios; sin embargo, configuraremos los jails predeterminados del paquete Fail2ban.

Anuncio

Configuración predeterminada para todas las cárceles según la imagen a continuación. Observe cómo no se habilita nada.

Vea también  Cómo instalar VeraCrypt en Debian 11 Bullseye

Ejemplo a continuación:

[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Entonces, tenemos un servidor HTTP Apache 2, y como filtrar / prohibir bots malos, todo lo que necesita hacer es agregar enabled = true como el ejemplo a continuación.

Anuncio
[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
enabled = true
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Observe cómo el reintento máximo es igual a 1 y el tiempo de prohibición es de 48 horas. Esta es una configuración de duración máxima individual de reintentos y prohibiciones para esta cárcel que aumentará automáticamente con el multiplicador de prohibiciones que configuramos anteriormente en la guía. Si falta alguno de los filtros, puede agregarlo como ejemplo.

[apache-noscript]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s

Cambie por encima del siguiente ejemplo a continuación:

[apache-noscript]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
bantime = 1d
maxretry = 3

A continuación, le gustaría tener acciones diferentes a las especificadas en su configuración predeterminada en /etc/fail2ban/jail.local, acciones adicionales que puede encontrar en el directorio action.d. Se pueden configurar fácilmente diferentes acciones de este directorio siguiendo las instrucciones dentro de esas líneas de configuración de acciones en los archivos, recordando cambiarles el nombre primero a .celda encima .conf, y luego agregar lo siguiente a la configuración de su cárcel.

Anuncio
[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = action_mw
cloudflare
bantime = 72h
maxretry = 1

Como puede ver, agregamos action_mw, por lo que automáticamente se banea según nuestra acción predeterminada y nos envía un informe con whois por correo electrónico, luego la siguiente acción, si usa Cloudflare, también bloqueará la dirección IP en el servicio. Recuerde, Cloudflare debe configurarse antes de su uso. Leer el archivo action.d cloudflare.conf.

Una vez que esté satisfecho con su configuración, ejecute el siguiente comando para reiniciar fail2ban y cargar sus nuevas jails.

Anuncio
sudo systemctl restart fail2ban

Ejemplos de uso de Fail2ban-client

Ahora que está funcionando con Fail2ban, necesita conocer algunos comandos operativos básicos. Hacemos esto usando el comando fail2ban-client. Es posible que deba tener privilegios de sudo, según su configuración.

Prohibir una dirección IP:

sudo fail2ban-client set apache-botsearch banip <ip address>

Desbancar una dirección IP:

sudo fail2ban-client set apache-botsearch unbanip <ip address>

Comando para abrir el menú de ayuda si necesita encontrar configuraciones adicionales u obtener ayuda sobre una en particular.

Anuncio
sudo fail2ban-client -h

Instalar UFW (cortafuegos sin complicaciones)

De forma predeterminada, Debian no viene con UFW. Para los usuarios que prefieran usar UFW con Fail2ban, siga los pasos a continuación.

Anuncio

Primero, instale UFW:

sudo apt install ufw -y

A continuación, verifique la instalación y compile:

sudo ufw version

Ejemplo de salida:

ufw 0.36
Copyright 2008-2015 Canonical Ltd.

Ahora habilite en el inicio del sistema y active fail2ban usando el comando de terminal:

sudo ufw enable

Ejemplo de salida:

Anuncio
Anuncio
Firewall is active and enabled on system startup

Siguiente, agregue UFW a su banaction, que en su lugar no usará las IPTABLES predeterminadas y usted lo que especifique:

Ejemplo de:

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
bantime = 72h
maxretry = 1

Ejemplo para:

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = ufw
bantime = 72h
maxretry = 1

Como puede ver, la nueva línea banacción = ufw se agregó para cambiar la acción de prohibición predeterminada. Puede agregar varios, digamos que desea BAN en UFW y también usar el script de Cloudflare para prohibir la dirección IP usando su servicio de firewall junto con informar la dirección IP a Integración de AbuseIPDB Fail2ban:

Vea también  Cómo instalar Steam en Debian 11/10

Ejemplo:

Anuncio
[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = ufw
                    cloudflare
                    abuseipdb
bantime = 72h
maxretry = 1

Puede encontrar una lista de acciones predefinidas en /etc/fail2ban/actions.d; todas las acciones tienen una configuración básica y casos de uso.

Anuncio

Para ver las direcciones IP prohibidas, use el siguiente comando UFW:

sudo ufw status verbrose

Ejemplo de salida:

Anywhere                   REJECT      <IP ADDRESS>               # by Fail2Ban after 1 attempts against apache-botsearch

Como puede ver, puede ver que la UFW es rechazar la dirección IP después de haber sido prohibido por la acción Fail2ban UFW en el filtrar apache-botsearch después de un intento. Este es solo un ejemplo de Fail2ban trabajando en un entorno en vivo y, como es de esperar, debe modificar sus filtros para adaptarlos a sus necesidades.

Nota, no elimine la prohibición de direcciones IP mediante UFW. Asegúrese de utilizar la acción de desbancar de fail2ban-client, o la IP se volverá a prohibir cuando regrese al sitio, ya que UFW no puede comunicarse con Fail2ban.

Anuncio

Actualizar Fail2ban

Las versiones de Fail2ban no se publican con frecuencia, por lo que no verá cambios significativos cada semana o, en realidad, incluso mensualmente. Sin embargo, para actualizar Fail2ban, se aplica el mismo proceso al comprobar si hay actualizaciones en su sistema Debian.

Primero, use el apt update mando:

Anuncio
sudo apt update

En segundo lugar, si hay una actualización disponible, puede utilizar un apt upgrade, que iniciará la actualización y cualquier otra, o si prefiere actualizar fail2ban, usa lo siguiente:

sudo apt upgrade fail2ban

Desinstalar Fail2ban

Si ya no necesita Fail2ban, para eliminarlo de su sistema, utilice el siguiente comando:

sudo apt autoremove fail2ban --purge

Ejemplo de salida:

Anuncio

Tipo Y, luego presione el INTRODUCIR CLAVE para proceder con la eliminación.

Tenga en cuenta que esto también eliminará las dependencias no utilizadas que se instalaron originalmente con Fail2ban para su eliminación completa.

Supervisión de registros de Fail2ban

Muchos errores comunes se crean en las cárceles y se van sin probar o monitorear lo que están haciendo. La revisión de los registros es esencial, ya que el registro de fail2ban se encuentra en su ruta predeterminada /var/log/fail2ban.log.

Anuncio

Si tiene un servidor que recibe tráfico decente, un comando excelente para ver en vivo para ver cualquier problema y vigilarlo mientras trabaja en otros servidores es usar el comando tail -f debajo.

sudo tail -f /var/log/fail2ban.log

El comando puede resultar útil para realizar comprobaciones sin tener que sumergirse en el registro.

Anuncio

Comentarios y Conclusión

El tutorial le ha mostrado los conceptos básicos de la instalación de Fail2ban en el sistema Debian 11 Bullseye y la configuración de algunas cárceles con los filtros disponibles. Fail2ban es una herramienta potente. Puede configurarlo de muchas formas diferentes a las que he mostrado aquí. Para empezar, es solo un ejemplo de cómo salirse con la suya. Fail2ban se desarrolla activamente y es una opción sólida para implementar en su servidor en estos tiempos en los que los ataques se están volviendo tan frecuentes.


¿No es lo que estabas buscando? Intente buscar tutoriales adicionales.

4 pensamientos sobre "Cómo instalar y configurar Fail2ban en Debian 11"

  1. Hola FD,

    Gracias por la respuesta. ¿Instalaste UFW? Lo acabo de probar en una instalación nueva de Debian 11 y funciona bien. De forma predeterminada, UFW no está instalado.

    En root, ejecute apt install ufw o para sudo no root, apt install ufw.

    Si tenía UFW instalado, avíseme; Tengo curiosidad por saberlo, ya que sería interesante. Puede omitir UFW y usar tablas de IP predeterminadas. UFW es solo un extra de calidad de vida.

    Muchas Gracias

    Responder
    • Gracias, Hans, tienes razón; Lo he ajustado. Usé minúsculas en mi instalación de Debian, por lo que fue incorrecto colocar UFW en el tutorial, así que entiendo por qué algunos tenían problemas ahora después de que se haya señalado esto.

      Aprecie el mensaje. Gracias de nuevo.

      Responder

Deja un comentario