Lanzamiento del servidor SFTP SFTPGo 2.2.0

Se ha publicado el lanzamiento del servidor SFTPGo 2.2, que permite organizar el acceso remoto a archivos utilizando los protocolos SFTP, SCP/SSH, Rsync, HTTP y WebDav. Entre otras cosas, SFTPGo se puede utilizar para proporcionar acceso a repositorios Git mediante el protocolo SSH. Los datos se pueden transferir tanto desde el sistema de archivos local como desde almacenamientos externos compatibles con Amazon S3, Google Cloud Storage y Azure Blob Storage. Es posible almacenar datos en forma cifrada. Para almacenar la base de datos y metadatos del usuario se utilizan DBMS con soporte para SQL o formato clave/valor, como PostgreSQL, MySQL, SQLite, CockroachDB o bbolt, pero también es posible almacenar metadatos en RAM, lo que no requiere conectar una base de datos externa. El código del proyecto está escrito en Go y distribuido bajo la licencia GPLv3.

Versículos nuevos:

  • Se agregó soporte para la autenticación de dos factores mediante contraseñas de un solo uso por tiempo limitado (TOTP, RFC 6238). Se pueden utilizar aplicaciones como Authy y Google Authenticator como autenticadores.
  • Se ha implementado la capacidad de ampliar la funcionalidad a través de complementos. Entre los complementos ya disponibles: soporte para servicios adicionales de intercambio de claves, integración del esquema Publicar/Suscribir, almacenamiento y búsqueda de información sobre eventos en el DBMS.
  • La API REST ha agregado soporte para la autenticación mediante claves, además de tokens JWT, y también brinda la capacidad de establecer políticas de almacenamiento de datos (limitando la vida útil de los datos) en relación con directorios y usuarios individuales. De forma predeterminada, la interfaz de usuario de Swagger está habilitada para navegar por los recursos de la API sin utilizar utilidades externas.
  • Se agregó soporte para operaciones de escritura a la interfaz web (carga de archivos, creación de directorios, cambio de nombre y eliminación), se implementó la capacidad de restablecer una contraseña con confirmación por correo electrónico, se integró un editor de archivos de texto y un visor de documentos PDF. Se agregó la capacidad de crear enlaces HTTP para proporcionar a los usuarios externos acceso a archivos y directorios individuales, con la capacidad de establecer una contraseña de acceso separada, limitar las direcciones IP, establecer la duración del enlace y limitar la cantidad de descargas.

Características principales de SFTPGo:

  • Cada cuenta tiene un chroot, lo que limita el acceso al directorio de inicio del usuario. Es posible crear directorios virtuales que hagan referencia a datos fuera del directorio de inicio del usuario.
  • Las cuentas se almacenan en una base de datos de usuarios virtual que no se superpone con la base de datos de usuarios del sistema. Se pueden utilizar SQLite, MySQL, PostgreSQL, bbolt y almacenamiento en memoria para almacenar bases de datos de usuarios. Se proporcionan instalaciones para mapear cuentas virtuales y de sistema; es posible un mapeo directo o aleatorio (un usuario del sistema se puede mapear a otro usuario virtual).
  • Se admite la autenticación mediante claves públicas, claves SSH y contraseñas (incluida la autenticación interactiva con una contraseña ingresada desde el teclado). Es posible vincular varias claves para cada usuario, así como configurar la autenticación multifactor y de varios pasos (por ejemplo, en el caso de una autenticación de clave exitosa, se puede solicitar adicionalmente una contraseña).
  • Para cada usuario, es posible configurar diferentes métodos de autenticación, así como definir sus propios métodos, implementados llamando a programas de autenticación externos (por ejemplo, para autenticación a través de LDAP) o enviando solicitudes a través de la API HTTP.
  • Es posible conectar controladores externos o llamadas API HTTP para cambiar dinámicamente los parámetros del usuario, llamados antes de que el usuario inicie sesión. Se admite la creación dinámica de usuarios al conectarse.
  • Admite cuotas individuales para el tamaño de los datos y la cantidad de archivos.
  • Soporte para limitación de ancho de banda con configuración separada de restricciones para el tráfico entrante y saliente, así como restricciones en la cantidad de conexiones simultáneas.
  • Herramientas de control de acceso que operan en relación a un usuario o directorio (puede limitar la visualización de una lista de archivos, prohibir cargar, descargar, sobrescribir, eliminar, renombrar o cambiar los derechos de acceso, prohibir la creación de directorios o enlaces simbólicos, etc.).
  • Para cada usuario, puede definir restricciones de red individuales; por ejemplo, solo puede permitir inicios de sesión desde determinadas IP o subredes.
  • Admite la conexión de filtros para el contenido descargado en relación con usuarios y directorios individuales (por ejemplo, puede bloquear la descarga de archivos con una determinada extensión).
  • Es posible vincular controladores que se inician durante varias operaciones con un archivo (descargar, eliminar, cambiar nombre, etc.). Además de llamar a los controladores, se admite el envío de notificaciones en forma de solicitudes HTTP.
  • Terminación automática de conexiones inactivas.
  • Actualización de configuración atómica sin romper conexiones.
  • Proporcionar métricas para el seguimiento en Prometheus.
  • El protocolo HAProxy PROXY es compatible para organizar el equilibrio de carga o conexiones proxy a servicios SFTP/SCP sin perder información sobre la dirección IP de origen del usuario.
  • API REST para gestionar usuarios y directorios, crear copias de seguridad y generar informes sobre conexiones activas.
  • Interfaz web (http://127.0.0.1:8080/web) para configuración y monitoreo (también se admite la configuración mediante archivos de configuración normales).
  • Capacidad para definir configuraciones en formatos JSON, TOML, YAML, HCL y envfile.
  • Soporte para conectarse vía SSH con acceso limitado a los comandos del sistema. Por ejemplo, se permite ejecutar comandos necesarios para Git (git-receive-pack, git-upload-pack, git-upload-archive) y rsync, así como varios comandos integrados (scp, md5sum, sha*sum , cd, pwd, sftpgo-copy y sftpgo-remove).
  • Modo portátil para compartir un directorio común con generación automática de credenciales de conexión anunciadas a través de DNS de multidifusión.
  • Sistema de creación de perfiles incorporado para análisis de rendimiento.
  • Proceso simplificado para migrar cuentas del sistema Linux.
  • Almacenamiento de registros en formato JSON.
  • Soporte para directorios virtuales (por ejemplo, el contenido de un determinado directorio se puede servir no desde el FS local, sino desde un almacenamiento en la nube externo).
  • Cryptfs admite el cifrado transparente de datos sobre la marcha al guardarlos en el FS y el descifrado al regresar.
  • Soporte para reenviar conexiones a otros servidores SFTP.
  • Posibilidad de utilizar SFTPGo como subsistema SFTP para OpenSSH.
  • La capacidad de almacenar credenciales y datos confidenciales en forma cifrada utilizando servidores KMS (servicios de administración de claves), como Vault, GCP KMS, AWS KMS.

Fuente: opennet.ru

Añadir un comentario