Lanzamiento del servidor SFTP SFTPGo 2.2.0

Se ha publicado la versión del servidor SFTPGo 2.2, que permite organizar el acceso remoto a archivos a través de los protocolos SFTP, SCP/SSH, Rsync, HTTP y WebDav. Además, SFTPGo se puede usar para proporcionar acceso a repositorios de Git utilizando el protocolo SSH. Los datos pueden provenir tanto del sistema de archivos local como de almacenamiento externo compatible con Amazon S3, Google Cloud Storage y Azure Blob Storage. Es posible almacenar datos en forma encriptada. Para gestionar la base de datos de usuarios y metadatos se utilizan bases de datos que soportan SQL o el formato clave/valor, como PostgreSQL, MySQL, SQLite, CockroachDB o bbolt, aunque también existe la opción de almacenar metadatos en la memoria, sin necesidad de conectar a una base de datos externa. El código del proyecto está escrito en Go y se distribuye bajo la licencia GPLv3.

En la nueva versión:

  • Se ha añadido soporte para la autenticación de dos factores utilizando contraseñas de un solo uso con tiempo limitado de validez (TOTP, RFC 6238). Aplicaciones como Authy y Google Authenticator pueden utilizarse como autenticadores.
  • Se ha implementado la posibilidad de ampliar la funcionalidad a través de plugins. Entre los plugins ya disponibles se encuentran: soporte para servicios adicionales de intercambio de claves, integración del esquema Publicar/Suscribirse, almacenamiento y búsqueda de información sobre eventos en la base de datos.
  • En la API REST se ha agregado soporte para la autenticación mediante claves, además de tokens JWT, y se ha proporcionado la posibilidad de establecer políticas de retención de datos (limitación de la vida útil de los datos) vinculadas a carpetas y usuarios específicos. Por defecto, se activa la interfaz Swagger UI para navegar por los recursos de la API sin necesidad de utilizar herramientas externas.
  • Se ha añadido soporte para operaciones de escritura en la interfaz web (subida de archivos, creación de carpetas, renombrado y eliminación), se ha implementado la posibilidad de restablecer la contraseña con confirmación por email, se han integrado un editor de archivos de texto y un visor de documentos PDF. Se ha añadido la posibilidad de crear enlaces HTTP para proporcionar a usuarios externos acceso a archivos y carpetas específicos, con la opción de asignar una contraseña de acceso distinta, limitar direcciones IP, establecer un tiempo de caducidad del enlace y limitar el número de descargas.

Principales características de SFTPGo:

  • Se aplica aislamiento chroot a cada cuenta, limitando el acceso al directorio principal del usuario. Es posible crear directorios virtuales que hagan referencia a datos fuera del directorio principal del usuario.
  • Las cuentas se almacenan en una base de datos virtual de usuarios, que no se cruza con la base de datos de usuarios del sistema. Para el almacenamiento de la base de datos de usuarios se pueden utilizar SQLite, MySQL, PostgreSQL, bbolt y almacenamiento en memoria. Se proporcionan herramientas para asociar cuentas virtuales y del sistema, permitiendo la asociación directa o arbitraria (un usuario del sistema puede estar asociado a otro usuario virtual).
  • Se admite la autenticación mediante claves públicas, claves SSH y contraseñas (incluida la autenticación interactiva con entrada de contraseña desde el teclado). Es posible vincular múltiples claves para cada usuario, así como configurar autenticación multifactor y escalonada (por ejemplo, en caso de autenticación exitosa con clave, se puede solicitar adicionalmente una contraseña).
  • Para cada usuario, es posible configurar diferentes métodos de autenticación, así como definir métodos propios implementados a través de la llamada a programas externos de autenticación (por ejemplo, para autenticación mediante LDAP) o mediante solicitudes a través de la API HTTP.
  • Es posible conectar controladores externos o llamadas a la API HTTP para cambiar dinámicamente los parámetros del usuario, utilizando antes de que el usuario inicie sesión. Se admite la creación dinámica de usuarios al conectarse.
  • Soporte para cuotas individuales en tamaño de datos y número de archivos.
  • Soporte para limitación de ancho de banda con configuración separada de restricciones para tráfico entrante y saliente, así como restricciones en el número de conexiones simultáneas.
  • Herramientas de control de acceso, vinculadas al usuario o al directorio (se puede restringir la visualización de la lista de archivos, prohibir cargas, descargas, sobrescrituras, eliminaciones, renombramientos o cambios en los permisos, así como prohibir la creación de directorios o enlaces simbólicos, etc.).
  • Se pueden definir restricciones de red individuales para cada usuario, por ejemplo, se puede permitir el acceso solo desde ciertas IP o subredes.
  • Se admite la conexión de filtros de contenido cargado vinculados a usuarios y directorios específicos (por ejemplo, se pueden bloquear las cargas de archivos con ciertas extensiones).
  • Es posible vincular controladores que se ejecuten durante varias operaciones con archivos (carga, eliminación, renombrado, etc.). Además de llamar a los controladores, se admite el envío de notificaciones en forma de solicitudes HTTP.
  • Cierre automático de conexiones inactivas.
  • Actualización atómica de la configuración sin romper conexiones.
  • Proporcionar métricas para monitoreo en Prometheus.
  • Se admite el protocolo HAProxy PROXY para organizar el balanceo de carga o el proxy de conexiones a servicios SFTP/SCP sin perder la información sobre la IP de origen del usuario.
  • REST API 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 a través de archivos de configuración normales).
  • Posibilidad de definir configuraciones en formatos JSON, TOML, YAML, HCL y envfile.
  • Soporte para conexiones SSH con acceso restringido a comandos del sistema. Por ejemplo, se permite ejecutar comandos necesarios para el funcionamiento de 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 portable para compartir un único directorio común con generación automática de credenciales de conexión, anunciadas a través de multicast DNS.
  • Sistema de perfilado incorporado para análisis de rendimiento.
  • Proceso simplificado de migración de cuentas de usuario de Linux.
  • Almacenamiento de registros en formato JSON.
  • Soporte para directorios virtuales (por ejemplo, el contenido de un directorio específico se puede servir no desde el sistema de archivos local, sino desde un almacenamiento en la nube externo).
  • Soporte para cryptfs para cifrado transparente de datos sobre la marcha al guardarlos en el sistema de archivos y descifrado al ser servido.
  • Soporte para el forwarding de conexiones a otros servidores SFTP.
  • Posibilidad de usar SFTPGo como subsistema SFTP para OpenSSH.
  • La posibilidad de almacenar datos de cuentas y confidenciales de forma cifrada utilizando servidores KMS (Key Management Services), como Vault, GCP KMS, AWS KMS.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster