Hace poco se dio a conocer el lanzamiento de la nueva versión del servidor SFTPGo 2.2, que permite organizar el acceso remoto a archivos utilizando los protocolos SFTP, SCP/SSH, Rsync, HTTP y WebDav. La inclusión de SFTPGo se puede utilizar para proporcionar acceso a los repositorios de Git mediante el protocolo SSH, ademas de que los datos se pueden enviar tanto desde el sistema de archivos local como desde un almacenamiento externo compatible con Amazon S3, Google Cloud Storage y Azure Blob Storage.
En SFTPGo es posible el almacenamiento de datos en forma cifrada y para almacenar la base de datos del usuario y metadatos se utilizan DBMS con soporte para SQL o el formato clave / valor, como PostgreSQL, MySQL, SQLite, CockroachDB o bbolt , pero también existe la posibilidad de almacenar metadatos en RAM, que no requiere una conexión de base de datos externa.
Sobre SFTPGo
Las cuentas se almacenan en una base de usuarios virtual que no se superpone con la base de datos de usuarios del sistema. SQLite, MySQL, PostgreSQL, bbolt y el almacenamiento en memoria se pueden utilizar para almacenar bases de datos de usuarios. Se proporcionan medios para mapear cuentas virtuales y del sistema; es posible mapeo directo o arbitrario (un usuario del sistema puede asignarse a otro usuario virtual).
SFTPGo 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 varias claves para cada usuario, así como configurar la autenticación de múltiples factores y etapas (por ejemplo, en caso de una autenticación de clave exitosa, se puede solicitar una contraseña adicional).
Para cada usuario, puede 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 a la API HTTP para cambiar dinámicamente los parámetros de usuario que se llaman antes de iniciar sesión. Admite la creación dinámica de usuarios al conectarse.
De las características principales que se destacan de SFTPGo, podremos encontrar las siguientes:
- Herramientas de control de acceso que operan en relación con un usuario o directorio
- Se admite la conexión de filtros para contenido descargable en relación con usuarios y directorios individuales
- Es posible vincular controladores que se inician durante varias operaciones con un archivo
- Terminación automática de conexiones inactivas.
- El protocolo HAProxy PROXY es compatible para organizar el equilibrio de carga o las conexiones de proxy a los servicios SFTP / SCP sin perder información sobre la dirección IP original del usuario.
- API REST para administrar 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
- Capacidad para definir configuraciones en formatos JSON, TOML, YAML, HCL y envfile.
- Soporte para conexión SSH con acceso limitado a los comandos del sistema
- Modo portátil para compartir un directorio compartido con generación automática de credenciales de conexión anunciadas a través de DNS multidifusión.
- Proceso simplificado de migración de cuentas del sistema Linux.
- Almacenamiento de registros en formato JSON.
- Soporte para directorios virtuales
- Soporte de Cryptfs para el cifrado de datos transparente
- Soporte para reenviar conexiones a otros servidores SFTP.
- Posibilidad de utilizar SFTPGo como un subsistema SFTP para OpenSSH.
- La capacidad de almacenar credenciales y datos confidenciales en forma encriptada utilizando servidores KMS (Servicios de administración de claves), como Vault, GCP KMS, AWS KMS.
Principales novedades de SFTPGo 2.2
En esta nueva versión que se presentó, podremos encontrar que se agregó soporte para la autenticación de dos factores mediante el uso de contraseñas únicas por tiempo limitado (TOTP RFC 6238 ). Las aplicaciones como Authy y Google Authenticator se pueden utilizar como autenticadores.
Ademas se implementó la capacidad de expandir 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 recuperación de información sobre eventos en el DBMS.
La API REST agrega soporte para la autenticación de claves, además de los tokens JWT, y también brinda la capacidad de establecer políticas de retención 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.
Mientras que en la interfaz web ha agregado soporte para operaciones de escritura (carga de archivos, creación de directorios, cambio de nombre y eliminación), implementó la capacidad de restablecer una contraseña con confirmación por correo electrónico, integró un editor de archivos de texto y un visor de documentos PDF.
Tambien 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 vida útil del enlace y limitar el número de descargas.
Finalmente, si estás interesado en poder conocer más al respecto, asi como tambien las instrucciones para poder implementar este servidor SFTP puedes consultar los detalles en el siguiente enlace.