Lanzamiento del servidor SFTP SFTPGo 1.0

Se produjo el primer lanzamiento significativo del servidor. SFTPGo 1.0, que le permite organizar el acceso remoto a archivos utilizando los protocolos SFTP, SCP/SSH y Rsync. 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 un almacenamiento externo compatible con Amazon S3 y Google Cloud Storage. Para almacenar la base de datos y los metadatos del usuario se utilizan DBMS con soporte para SQL o formato clave/valor, como PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x o perno 1.3.x. También existe un modo para almacenar metadatos en RAM, que no requiere conectar una base de datos externa. El código del proyecto está escrito en Go y distribuido por licenciado bajo GPLv3.

Características principales:

  • 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. Soportado dinámica creando 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.
  • 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 mediante archivos de configuración normales).
  • Capacidad para definir configuraciones en formatos JSON, TOML, YAML, HCL y envfile.
  • Apoyar Conexiones vía SSH con acceso limitado a 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).
  • régimen 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 Integrado perfilando para análisis de desempeño.
  • Simplificado proceso Migración de cuentas del sistema Linux.
  • Almacenamiento registros en formato JSON.

Fuente: opennet.ru

Añadir un comentario