GNU/Linux >> Tutoriales Linux >  >> Debian

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 principalmente de ataques de fuerza bruta, prohibiendo agentes de usuario maliciosos, prohibiendo 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 realizar algunas configuraciones con ejemplos completos y consejos esenciales para comenzar con Debian 11 Bullseye.

Requisitos

  • SO recomendado: Diana de Debian 11
  • Cuenta de usuario: Una cuenta de usuario con sudo o acceso 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 usará el comando sudo y asumiendo que tiene estado sudo .

Para verificar el estado de sudo en su cuenta:

sudo whoami

Ejemplo de salida que muestra el estado de sudo:

[joshua@debian~]$ sudo whoami
root

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

Para usar la cuenta raíz , 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, utilice el siguiente comando en su terminal:

sudo apt install fail2ban

Ejemplo de salida:

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

Por defecto, fail2ban después de la instalación debería estar activo y habilitado. Para verificar esto, use el siguiente comando systemctl :

sudo systemctl status fail2ban

Ejemplo de salida:

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

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:

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 calendario de lanzamiento de Fail2ban, visite la página de lanzamiento en la página de Fail2ban Github.

Configurar Fail2ban

Después de completar la instalación, ahora debemos 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 predeterminado Fail2ban /etc/fail2ban/jail.d/defaults-debian.conf . No modifique estos archivos. Los archivos de configuración originales son sus originales y serán reemplazados en cualquier actualización de Fail2ban en el futuro.

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 ya que Fail2ban siempre leerá .local archivos 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 repasará 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 del ejemplo.

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

Incremento de 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, evitando que su sistema vuelva a prohibir constantemente la misma IP si los períodos de tiempo de prohibición son menores; por ejemplo, 1 hora, querrá que sea más larga si el atacante regresa x5 veces.

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

Ejemplo a continuación:

IPs en la lista blanca en Fail2ban

A continuación en la lista, nos encontramos con las opciones de inclusión en la lista blanca, descomente lo siguiente y aborde 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 espacios o comas entre las direcciones IP. También puede incluir rangos de IP en la lista blanca.

Ejemplo a continuación:

Configuración predeterminada del tiempo de bloqueo

Los valores predeterminados de 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 vuelto a intentar el mismo ataque en 10 minutos (buscar tiempo) x 5 veces (reintentos) . Puede establecer algunas configuraciones de prohibición predeterminadas aquí.

Sin embargo, cuando llegue a las cárceles, se recomienda establecer diferentes tiempos de bloqueo, ya que algunos bloqueos deberían ser automáticamente más largos que otros, incluidos los reintentos que deberían ser más o menos.

Ejemplo a continuación:

Correo electrónico configurado con Fail2ban

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

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 con amabilidad u obtendrá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.

Ejemplo a continuación:

# Destination email address used solely for the interpolations in
# jail.{conf,local,d/*} configuration files.
destemail = [email protected]

# Sender e-mail address used solely for some actions
sender = [email protected]

Ejemplo:

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

Cambiar de:

mta = sendmail

Cambiar a:

mail = sendmail

Cárceles Fail2ban

A continuación, llegamos a las cárceles. Puede establecer 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 gists y sitios web comunitarios; sin embargo, configuraremos las cárceles de paquetes Fail2ban predeterminadas.

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

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

Por lo tanto, tenemos un servidor Apache 2 HTTP y, al igual que filtrar/prohibir los bots malos, todo lo que necesita hacer es agregar enable =true como en el ejemplo a continuación.

[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 bloqueo es de 48 horas. Esta es una configuración individual de duración máxima 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 el 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 .jail sobre .conf, y luego agregar lo siguiente a su configuración de cárcel.

[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 bloquea automáticamente según nuestra acción predeterminada y nos envía un informe por correo electrónico con whois, 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. Lea el archivo action.d cloudflare.conf .

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

sudo systemctl restart fail2ban

Ejemplos de uso de Fail2ban-client

Ahora que ya 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>

Desbloquear 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.

sudo fail2ban-client -h

Instalar UFW (cortafuegos sin complicaciones)

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

Primero, instale UFW:

sudo apt install ufw -y

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

sudo ufw version

Ejemplo de salida:

ufw 0.36
Copyright 2008-2015 Canonical Ltd.

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

sudo ufw enable

Ejemplo de salida:

Firewall is active and enabled on system startup

Luego, agregue UFW a su banaction, que, en cambio, 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 banaction =ufw se agregó para cambiar la acción de prohibición predeterminada. Puede agregar varios, digamos que desea PROHIBIR 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 AbuseIPDB Integración Fail2ban:

Ejemplo:

[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 prefabricadas en /etc/fail2ban/actions.d; todas las acciones tienen una configuración básica y casos de uso.

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 el UFW está rechazando la dirección IP después de ser baneado por la acción Fail2ban UFW en el filtro apache-botsearch después de un intento. Este es solo un ejemplo de cómo funciona Fail2ban en un entorno en vivo y, como era de esperar, debe modificar sus filtros para adaptarlos a sus necesidades.

Tenga en cuenta que no desbanee las direcciones IP mediante UFW. Asegúrese de usar la acción de desbaneo de fail2ban-client, o la IP se volverá a banear cuando regrese al sitio ya que UFW no puede comunicarse con Fail2ban.

Actualizar Fail2ban

Los lanzamientos de Fail2ban no salen con frecuencia, por lo que no verá cambios significativos cada semana o, para el caso, incluso mensualmente. Sin embargo, para actualizar Fail2ban, se aplica el mismo proceso al buscar actualizaciones en su sistema Debian.

Primero, use la actualización apt comando:

sudo apt update

En segundo lugar, si hay una actualización disponible, puede usar una actualización apt, que iniciará la actualización más 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, use el siguiente comando:

sudo apt autoremove fail2ban --purge

Ejemplo de salida:

Tipo Y, luego presione la TECLA ENTER para proceder con la eliminación.

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

Monitoreo de registros de Fail2ban

Muchos errores comunes son establecer cárceles y marcharse sin probar o monitorear lo que están haciendo. Revisar los registros es esencial, el registro de fail2ban está en su ruta predeterminada /var/log/fail2ban.log .

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

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

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


Debian
  1. Cómo instalar Tomcat 8.5 en Debian 9

  2. Cómo instalar MongoDB en Debian 9

  3. Cómo instalar Nginx en Debian 9

  4. Cómo instalar Apache en Debian 9

  5. Cómo instalar Jenkins en Debian 9

Instalar Fail2ban en Debian 11

Cómo instalar y configurar Git en Debian 11

Cómo instalar Fail2Ban en Debian 8

Cómo instalar Fail2Ban en Debian 10

Cómo instalar Go en Debian 11

Cómo instalar Fail2Ban en Debian 11