Sortie du serveur SFTP SFTPGo 2.2.0

La version du serveur SFTPGo 2.2 a été publiée, qui permet d'organiser l'accès à distance aux fichiers à l'aide des protocoles SFTP, SCP/SSH, Rsync, HTTP et WebDav. Entre autres choses, SFTPGo peut être utilisé pour fournir un accès aux référentiels Git à l'aide du protocole SSH. Les données peuvent être transférées à la fois depuis le système de fichiers local et depuis des stockages externes compatibles avec Amazon S3, Google Cloud Storage et Azure Blob Storage. Il est possible de stocker des données sous forme cryptée. Pour stocker la base de données utilisateur et les métadonnées, on utilise des SGBD prenant en charge SQL ou le format clé/valeur, tels que PostgreSQL, MySQL, SQLite, CockroachDB ou bbolt, mais il est également possible de stocker les métadonnées en RAM, ce qui ne nécessite pas de connecter un base de données externe. Le code du projet est écrit en Go et distribué sous licence GPLv3.

Dans la nouvelle version:

  • Ajout de la prise en charge de l'authentification à deux facteurs à l'aide de mots de passe à usage unique limités dans le temps (TOTP, RFC 6238). Des applications telles que Authy et Google Authenticator peuvent être utilisées comme authentificateurs.
  • La possibilité d'étendre les fonctionnalités via des plugins a été implémentée. Parmi les plugins déjà disponibles : prise en charge de services supplémentaires d'échange de clés, intégration du schéma Publier/Abonner, stockage et recherche d'informations sur les événements dans le SGBD.
  • L'API REST a ajouté la prise en charge de l'authentification à l'aide de clés, en plus des jetons JWT, et offre également la possibilité de définir des politiques de stockage de données (limitant la durée de vie des données) par rapport aux répertoires et utilisateurs individuels. Par défaut, Swagger UI est activé pour naviguer dans les ressources API sans utiliser d'utilitaires externes.
  • La prise en charge des opérations d'écriture a été ajoutée à l'interface Web (téléchargement de fichiers, création de répertoires, renommage et suppression), la possibilité de réinitialiser un mot de passe avec confirmation par email a été implémentée, un éditeur de fichiers texte et une visionneuse de documents PDF ont été intégrés. Ajout de la possibilité de créer des liens HTTP pour fournir aux utilisateurs externes un accès à des fichiers et répertoires individuels, avec la possibilité de définir un mot de passe d'accès distinct, de limiter les adresses IP, de définir la durée de vie du lien et de limiter le nombre de téléchargements.

Principales fonctionnalités de SFTPGo :

  • Chaque compte est chrooté, limitant l'accès au répertoire personnel de l'utilisateur. Il est possible de créer des répertoires virtuels faisant référence à des données extérieures au répertoire personnel de l'utilisateur.
  • Les comptes sont stockés dans une base de données utilisateur virtuelle qui ne croise pas la base de données utilisateur système. SQLite, MySQL, PostgreSQL, bbolt et le stockage en mémoire peuvent être utilisés pour stocker les bases de données utilisateur. Des moyens sont fournis pour mapper les comptes virtuels et système - un mappage direct ou arbitraire est possible (un utilisateur système peut être mappé à un autre utilisateur virtuel).
  • L'authentification par clé publique, clé SSH et mot de passe est prise en charge (y compris l'authentification interactive avec saisie du mot de passe au clavier). Il est possible de lier plusieurs clés pour chaque utilisateur, ainsi que de mettre en place une authentification multi-facteurs et multi-étapes (par exemple, en cas d'authentification par clé réussie, un mot de passe peut être demandé en plus).
  • Il est possible de configurer différentes méthodes d'authentification pour chaque utilisateur, ainsi que de définir ses propres méthodes mises en œuvre en appelant des programmes d'authentification externes (par exemple, pour l'authentification via LDAP) ou en envoyant des requêtes via l'API HTTP.
  • Il est possible de connecter des gestionnaires externes ou des appels d'API HTTP pour modifier dynamiquement les paramètres utilisateur qui sont appelés avant que l'utilisateur ne se connecte. La création dynamique d'utilisateurs à la connexion est prise en charge.
  • Prise en charge des quotas individuels pour la taille des données et le nombre de fichiers.
  • Prise en charge de la limitation de la bande passante avec des paramètres distincts pour les limites du trafic entrant et sortant, ainsi que des limites pour le nombre de connexions simultanées.
  • Des outils de contrôle d'accès agissant par rapport à un utilisateur ou un répertoire (vous pouvez restreindre la visualisation de la liste des fichiers, interdire l'upload, le téléchargement, l'écrasement, la suppression, le renommage ou la modification des droits d'accès, interdire la création de répertoires ou de liens symboliques, etc.).
  • Pour chaque utilisateur, vous pouvez définir des restrictions de réseau individuelles, par exemple, vous ne pouvez autoriser l'accès qu'à partir de certaines adresses IP ou sous-réseaux.
  • Il prend en charge la connexion de filtres pour le contenu téléchargeable en relation avec des utilisateurs et des répertoires individuels (par exemple, vous pouvez bloquer le téléchargement de fichiers avec une certaine extension).
  • Vous pouvez lier des gestionnaires qui sont lancés lors de diverses opérations avec le fichier (chargement, suppression, changement de nom, etc.). Outre les gestionnaires d'appel, l'envoi de notifications sous la forme de requêtes HTTP est pris en charge.
  • Arrêt automatique des connexions inactives.
  • Mise à jour de la configuration atomique sans interrompre les connexions.
  • Fournir des métriques pour la surveillance dans Prometheus.
  • Le protocole HAProxy PROXY est pris en charge pour organiser l'équilibrage de charge ou les connexions proxy aux services SFTP/SCP sans perdre la connaissance de l'adresse IP source de l'utilisateur.
  • API REST pour gérer les utilisateurs et les répertoires, créer des sauvegardes et créer des rapports sur les connexions actives.
  • Interface Web (http://127.0.0.1:8080/web) pour la configuration et la surveillance (la configuration via des fichiers de configuration standard est également prise en charge).
  • Possibilité de définir des paramètres aux formats JSON, TOML, YAML, HCL et envfile.
  • Prise en charge de la connexion via SSH avec un accès limité aux commandes système. Par exemple, les commandes requises pour Git (git-receive-pack, git-upload-pack, git-upload-archive) et rsync sont autorisées à s'exécuter, ainsi que plusieurs commandes intégrées (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy et sftpgo-remove).
  • Mode portable pour partager un répertoire partagé avec génération automatique d'informations d'identification de connexion annoncées via DNS multicast.
  • Système de profilage intégré pour l'analyse des performances.
  • Processus de migration de compte système Linux simplifié.
  • Stockage des journaux au format JSON.
  • Prise en charge des répertoires virtuels (par exemple, le contenu d'un certain répertoire peut être fourni non pas à partir du système de fichiers local, mais à partir d'un stockage cloud externe).
  • Prise en charge de cryptfs pour chiffrer de manière transparente les données à la volée lors de l'enregistrement dans le système de fichiers et les déchiffrer lors du téléchargement.
  • Prise en charge du transfert de connexions vers d'autres serveurs SFTP.
  • Possibilité d'utiliser SFTPGo comme sous-système SFTP pour OpenSSH.
  • La possibilité de stocker des informations d'identification et des données confidentielles sous forme cryptée à l'aide de serveurs KMS (Key Management Services), tels que Vault, GCP KMS, AWS KMS.

Source: opennet.ru

Ajouter un commentaire