Cómo instalar Fail2Ban en Ubuntu 22.04 LTS

Fail2Ban es un marco sólido de software de prevención de intrusiones que protege los servidores informáticos de la fuerza bruta y otros ataques. Lo logra leyendo los registros de acceso/error en su servidor o aplicación web, que luego se pueden usar para identificar a los usuarios malintencionados antes de que causen algún daño.

El software es muy popular entre los servidores públicos. Tanto si es propietario de un servidor como si desea proteger su red, Fail2ban puede detener los ataques antes de que causen daños. Este software está escrito en Python y se ejecuta en sistemas POSIX con una interfaz para sistemas de control de paquetes como iptables o TCP Wrapper instalados localmente, lo que significa que además de los servidores, incluso los escritorios pueden ser compatibles, con un conjunto diferente de reglas.

El siguiente tutorial le enseñará cómo instalar Fail2Ban en el escritorio Ubuntu 20.04 LTS Focal Fossa o en un servidor sin cabeza. Algunas configuraciones de ejemplo con ejemplos completos y consejos esenciales para comenzar.

Actualizar Ubuntu

Primero, antes de comenzar, actualice su sistema para asegurarse de que no ocurran conflictos durante la instalación y configuración de Fail2Ban de la siguiente manera.

Anuncio
sudo apt update && sudo apt upgrade -y

Instalar Fail2ban

De forma predeterminada, fail2ban aparece en el repositorio predeterminado de Ubuntu 20.04, lo que facilita la instalación.

Anuncio

Comience la instalación de Fail2ban ejecutando el siguiente comando.

sudo apt install fail2ban -y

De forma predeterminada, Fail2Ban no está habilitado y activado una vez instalado. Inicie el servicio y actívelo en el arranque del sistema con el siguiente comando.

sudo systemctl enable fail2ban --now

Una vez que haya terminado de instalar Fail2ban, debemos verificar su estado de servicio. De forma predeterminada, al instalar Fail2ban, debería activarse e iniciarse automáticamente. Utilice el siguiente comando para ver.

systemctl status fail2ban

Ejemplo de salida:

Anuncio
sistema fail2ban bien

Si el fail2ban no se pudo iniciar, habilite el servicio usando el siguiente comando.

sudo systemctl enable fail2ban --now

Para detener y deshabilitar Fail2ban en el futuro, puede hacerlo escribiendo el siguiente comando:

Anuncio
sudo systemctl disable fail2ban --now

Configuración de copia de seguridad de Fail2ban

Configuración de copia de seguridad de Fail2ban

Después de completar la instalación, debe 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 serán reemplazados en cualquier actualización de Fail2ban en el futuro.

Vea también  Cómo instalar Plex Media Server en Ubuntu 22.10/22.04/20.04

El siguiente paso es crear copias que terminen en .local en lugar de .conf, ya que Fail2ban siempre leerá los archivos .local antes de cargar .conf si no puede encontrar uno. La creación de los archivos locales es para que cuando actualice su Fail2Ban, su configuración no se pierda, y si la configura incorrectamente, siempre obtenga una copia nueva para volver.

Anuncio

Utilice el siguiente comando cp para crear una copia del archivo de configuración.

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

Configurar Fail2ban

Ahora llegas a la parte donde puedes abrir jail.local y ajuste la configuración con el editor nano.

sudo nano /etc/fail2ban/jail.local

Incremento del tiempo de prohibición

La primera configuración con la que se encontrará son los incrementos de tiempo de prohibición. Esto debería habilitar esto para que cada vez que el atacante regrese y sea baneado nuevamente, aumentará el tiempo de baneo, evitando que su sistema vuelva a banear constantemente la misma IP si los períodos de baneo son menores.

Anuncio

Por ejemplo, el tiempo de bloqueo predeterminado es de una hora; le gustaría que esto fuera más largo si el atacante regresa x5 veces, por lo que si el atacante es baneado la quinta vez, son automáticamente cinco horas en lugar de una.

Para lograr el incremento de tiempo de prohibició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 el tutorial, he elegido multiplicadores, como se destaca en nuestro ejemplo a continuación, ya que puede establecer aumentos de tiempo de prohibición personalizados a su gusto.

Anuncio

Hay más explicaciones en la configuración de las matemáticas detrás de esto.

Ejemplo:

multiplicadores de fail2ban

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 180.53.31.33 (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

Ejemplo:

Anuncio
lista blanca de ip fail2ban

Configuración predeterminada del tiempo de prohibición

Los valores predeterminados de tiempo de prohibición son 10 minutos con un buscador de 10 minutos en 5 reintentos. Una explicación es que la cárcel Fail2Ban con filtrado prohibirá a su atacante durante 10 minutos después de que haya vuelto a intentar 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 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. Esto depende del usuario, y aquí no hay una configuración natural correcta o incorrecta.

Vea también  Cómo instalar Yarn en Ubuntu 22.04 LTS

Ejemplo:

tiempo de prohibición predeterminado de fail2ban

Alertas/Notificaciones por correo electrónico

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 informarse a sí mismo y enviar correos electrónicos a los proveedores de la lista negra y al ISP del atacante para informar.

El ejemplo de configuración se encuentra a continuación.

Anuncio
Anuncio
# 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:

configuración de correo electrónico fail2ban

Cárceles Fail2ban

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 puntos básicos 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:

Anuncio
configuración de la cárcel

Por lo tanto, tenemos un servidor HTTP Apache 2 y, como filtrar/prohibir los bots malos, todo lo que necesita hacer es agregar enabled = true como el siguiente ejemplo.

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 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 el tutorial.

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

El ejemplo habilitó el filtro y estableció un bantime personalizado, maxretry para la cárcel.

Anuncio

A continuación, le gustaría tener acciones diferentes a las especificadas en su configuración predeterminada en /etc/fail2ban/jail.local; adicional acciones que puedes 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 acción en los archivos, recordando cambiarles el nombre primero a .celda encima .conf, y luego agregue lo siguiente a su configuración de cárcel.

Anuncio

El siguiente ejemplo agrega la acción de prohibición de Cloudflare y la acción predeterminada al [apache-botsearch] 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 acción_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.

Vea también  Cómo instalar el código de Visual Studio en Ubuntu 22.10/22.04/20.04

¡Recuerde, Cloudflare debe configurarse antes de su uso! Lea el archivo action.d cloudflare.conf.

Anuncio

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

sudo systemctl restart fail2ban

Cómo prohibir/desbanear usando Fail2Ban manualmente

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

Prohibir una dirección IP:

Anuncio
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 

Cómo comprobar/supervisar los registros de Fail2Ban

Muchos errores comunes son establecer cárceles y marcharse sin probar o monitorear lo que están haciendo. La revisión de registros es esencial, y 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 debajo.

tail -f /var/log/fail2ban.log

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

Alternativamente, puede utilizar la Comando GREP para buscar una dirección IP de ejemplo o incluso un agente de usuario, y estos son solo ejemplos.

Anuncio

Ejemplo de agente de usuario:

Anuncio
grep "Bing" /var/log/fail2ban.log

Error de ejemplo:

grep "error" /var/log/fail2ban.log

Ejemplo de dirección IP:

grep "123.123.123.1" /var/log/fail2ban.log

Nuevamente, los anteriores son solo ejemplos, y hay bastantes comandos y métodos diferentes para ordenar sus registros usando una instancia de terminal.

Cómo quitar (desinstalar) Fail2Ban

Si los usuarios ya no desean tener instalado Fail2ban, desactive el servicio si aún está habilitado.

sudo systemctl disable fail2ban --now

A continuación, elimine fail2ban con el siguiente comando.

Anuncio
Anuncio
sudo apt autoremove fail2ban --purge -y

Tenga en cuenta que esto eliminará todas las dependencias del sistema no utilizadas instaladas con fail2ban y datos.

Comentarios y Conclusión

Fail2ban es una herramienta poderosa, y puede configurarla de muchas maneras diferentes, y le he mostrado solo un ejemplo de cómo solucionarlo. Fail2ban se desarrolla activamente y es una opción sólida para implementar en su servidor en estos tiempos en que los ataques se vuelven tan frecuentes.


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

Deja un comentario