Versión do servidor SFTPo 1.0 SFTP

Produciuse a primeira versión significativa do servidor SFTPGo 1.0, que lle permite organizar o acceso remoto aos ficheiros mediante os protocolos SFTP, SCP/SSH e Rsync. Entre outras cousas, SFTPGo pódese usar para proporcionar acceso aos repositorios Git mediante o protocolo SSH. Os datos pódense transferir tanto desde o sistema de ficheiros local como desde o almacenamento externo compatible con Amazon S3 e Google Cloud Storage. Para almacenar a base de datos do usuario e os metadatos, utilízanse DBMS con soporte para SQL ou formato de clave/valor, como PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x ou bbolt 1.3.x. Tamén hai un modo para almacenar metadatos na RAM, que non require conectar unha base de datos externa. O código do proxecto está escrito en Go e distribuído por licenciado baixo GPLv3.

Características clave:

  • Cada conta está chrooteada, o que limita o acceso ao directorio de inicio do usuario. É posible crear directorios virtuais que fan referencia a datos fóra do directorio de inicio do usuario.
  • As contas gárdanse nunha base de datos de usuarios virtual que non se solapa coa base de datos de usuarios do sistema. Pódense usar SQLite, MySQL, PostgreSQL, bbolt e o almacenamento en memoria para almacenar bases de datos de usuarios. Ofrécense instalacións para mapear contas virtuais e do sistema: é posible mapear directamente ou aleatoriamente (pódese asignar un usuario do sistema a outro usuario virtual).
  • Admítese a autenticación mediante chaves públicas, claves SSH e contrasinais (incluída a autenticación interactiva cun contrasinal introducido desde o teclado). É posible vincular varias claves para cada usuario, así como configurar a autenticación de varios factores e de varios pasos (por exemplo, no caso de que a autenticación de claves teña éxito, pódese solicitar adicionalmente un contrasinal).
  • Para cada usuario, é posible configurar diferentes métodos de autenticación, así como definir os seus propios métodos, implementados chamando a programas de autenticación externos (por exemplo, para a autenticación mediante LDAP) ou enviando solicitudes a través da API HTTP.
  • É posible conectar controladores externos ou chamadas API HTTP para cambiar dinámicamente os parámetros do usuario, chamado antes de que o usuario inicie sesión. Soportado dinámico creando usuarios ao conectarse.
  • Admite cotas individuais para o tamaño dos datos e o número de ficheiros.
  • Soporte para limitar o ancho de banda con configuración separada de restricións para o tráfico entrante e saínte, así como restricións sobre o número de conexións simultáneas.
  • Ferramentas de control de acceso que operan en relación a un usuario ou directorio (pode limitar a visualización dunha lista de ficheiros, prohibir a carga, descarga, sobrescritura, eliminación, renomeado ou cambio de dereitos de acceso, prohibir a creación de directorios ou ligazóns simbólicas, etc.).
  • Para cada usuario, pode definir restricións de rede individuais, por exemplo, só pode permitir inicios de sesión desde determinadas IP ou subredes.
  • Admite filtros de conexión para o contido descargado en relación con usuarios e directorios individuais (por exemplo, pode bloquear a descarga de ficheiros cunha extensión determinada).
  • É posible vincular controladores que se inician durante varias operacións cun ficheiro (descargar, eliminar, renomear, etc.). Ademais de chamar aos controladores, é compatible o envío de notificacións en forma de solicitudes HTTP.
  • Terminación automática de conexións inactivas.
  • Actualización da configuración atómica sen interromper as conexións.
  • Proporcionando métricas para monitorizar en Prometheus.
  • O protocolo HAProxy PROXY é compatible para organizar o equilibrio de carga ou as conexións de proxy aos servizos SFTP/SCP sen perder información sobre o enderezo IP de orixe do usuario.
  • API REST para xestionar usuarios e directorios, crear copias de seguridade e xerar informes sobre conexións activas.
  • Interface web (http://127.0.0.1:8080/web) para a configuración e monitorización (tamén se admite a configuración mediante ficheiros de configuración habituais).
  • Capacidade de definir axustes en formatos JSON, TOML, YAML, HCL e envfile.
  • Apoiar conexións vía SSH con acceso limitado aos comandos do sistema. Por exemplo, permítese executar os comandos necesarios para Git (git-receive-pack, git-upload-pack, git-upload-archive) e rsync, así como varios comandos integrados (scp, md5sum, sha*sum , cd, pwd, sftpgo-copy e sftpgo-remove).
  • Modo portátil para compartir un directorio común coa xeración automática de credenciais de conexión anunciadas a través de DNS multicast.
  • Sistema embebido perfilado para a análise do rendemento.
  • Simplificado proceso migración de contas do sistema Linux.
  • Almacenamento rexistros en formato JSON.

Fonte: opennet.ru

Engadir un comentario