La version 2.5.0 du serveur SFTPGo a été publiée, permettant l'accès à distance aux fichiers via les protocoles SFTP, SCP/SSH, Rsync, HTTP et WebDav, ainsi que l'accès aux dépôts Git en utilisant le protocole SSH. Les données peuvent provenir de systèmes de fichiers locaux ou de stockages externes compatibles avec Amazon S3, Google Cloud Storage et Azure Blob Storage. Il est possible de stocker les données de manière chiffrée. Pour le stockage de la base d'utilisateurs et des métadonnées, des SGBD prenant en charge SQL ou le format clé/valeur, tels que PostgreSQL, MySQL, SQLite, CockroachDB ou bbolt, sont utilisés, mais il est également possible de stocker les métadonnées en mémoire vive sans nécessiter de connexion à une base de données externe. Le code du projet est écrit en Go et est distribué sous licence GPLv3.
Dans la nouvelle version :
- L'interface web offre la possibilité de masquer les messages d'erreur. L'interface web pour l'administrateur a ajouté la prise en charge de la recherche dans le journal d'audit et de l'exportation de ses données, ainsi que la gestion des listes. adresses IP Et des réseaux, la possibilité de configurer SMTP et les paramètres standards ACME et SFTP a été fournie. Dans l'interface web client, un formulaire de connexion propre (au lieu de l'authentification de base) a été mis en œuvre, ainsi que des opérations de copie, et la limite sur la taille des téléchargements a été supprimée.

- Le soutien aux politiques d'utilisation des mots de passe a été ajouté, par exemple, il est possible de définir des exigences sur la robustesse des mots de passe et de spécifier la durée de vie du mot de passe.
- EventManager a été amélioré avec la possibilité d'afficher des notifications concernant les mots de passe expirés, l'opération de copie a été réalisée, et la prise en charge des actions préalablement appelées (pre-*) et des gestionnaires qui s'activent lors d'actions spécifiques a été ajoutée (par exemple, un gestionnaire a été ajouté, qui est appelé lors de la connexion d'un utilisateur).
- La possibilité d'accorder des droits d'administrateur aux utilisateurs a été ajoutée.
- L'interface de ligne de commande a ajouté des commandes pour réinitialiser le mot de passe administrateur et vérifier le bon fonctionnement du service.
- La prise en charge des opérateurs conditionnels lors de la réalisation de renommages massifs de fichiers côté fournisseurs de cloud a été ajoutée.
- La prise en charge du suivi et du redémarrage automatique a été ajoutée. des certificats TLS.
- La possibilité de définir ses propres types MIME pour WebDAV a été ajoutée.
- Pour SSH, l'authentification interactive par clavier est activée par défaut.
- En mode portable, il est désormais possible de charger des mots de passe depuis un fichier.
- Ajout d'une prise en charge expérimentale du service Terraform.
Principales fonctionnalités de SFTPGo :
- Pour chaque compte, une isolation chroot est appliquée, 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 en dehors du répertoire personnel de l'utilisateur.
- Les comptes sont stockés dans une base de données virtuelle d'utilisateurs, séparée de la base de données système des utilisateurs. SQLite, MySQL, PostgreSQL, bbolt et le stockage en mémoire peuvent être utilisés pour gérer la base de données des utilisateurs. Des outils sont fournis pour faire correspondre les comptes virtuels et systèmes — il est possible d'effectuer une correspondance directe ou arbitraire (un utilisateur système peut être associé à un autre utilisateur virtuel).
- L'authentification par clés publiques, clés SSH et mots de passe est prise en charge (y compris l'authentification interactive avec saisie du mot de passe via le clavier). Il est possible d'associer plusieurs clés à chaque utilisateur, ainsi que de configurer une authentification multifactorielle et par étapes (par exemple, en cas d'authentification réussie par clé, un mot de passe peut être demandé en complément).
- Pour chaque utilisateur, il est possible de configurer différents méthodes d'authentification, ainsi que de définir des méthodes personnalisées, mises en œuvre par des appels à des programmes d'authentification externes (par exemple, pour l'authentification via LDAP) ou l'envoi de requêtes via l'API HTTP.
- Il est possible de connecter des gestionnaires externes ou d'appels d'API HTTP pour modifier dynamiquement les paramètres utilisateurs appelés avant la connexion de l'utilisateur. La création dynamique d'utilisateurs lors de 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 configuration séparée pour le trafic entrant et sortant, ainsi que des limitations sur le nombre de connexions simultanées.
- Moyens de contrôle d'accès agissant en fonction de l'utilisateur ou du répertoire (il est possible de restreindre l'affichage de la liste des fichiers, d'interdire le téléchargement, le transfert, la réécriture, la suppression, le renommage ou la modification des droits d'accès, d'interdire la création de répertoires ou de liens symboliques, etc.).
- Pour chaque utilisateur, il est possible de définir des limitations réseau individuelles, par exemple, permettre l'accès uniquement à partir de certaines adresses IP ou sous-réseaux.
- Prise en charge de la connexion de filtres de contenu téléchargé en fonction des utilisateurs individuels et des répertoires (par exemple, il est possible de bloquer le téléchargement de fichiers avec une certaine extension).
- Il est possible de lier des gestionnaires qui s'exécutent lors de différentes opérations sur le fichier (téléchargement, suppression, renommage, etc.). En plus de l'appel des gestionnaires, il est pris en charge l'envoi de notifications sous forme de requêtes HTTP.
- Fermeture automatique des connexions inactives.
- Mise à jour atomique de la configuration sans interruption des connexions.
- Fourniture de métriques pour la surveillance dans Prometheus.
- Prise en charge du protocole HAProxy PROXY pour organiser l'équilibrage de charge ou le proxy des connexions vers les services SFTP/SCP sans perte d'informations sur l'adresse IP d'origine de l'utilisateur.
- API REST pour la gestion des utilisateurs et des répertoires, la création de sauvegardes et la génération de 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 traditionnels est également prise en charge).

- Possibilité de définir des paramètres dans les formats JSON, TOML, YAML, HCL et envfile.
- Prise en charge de la connexion SSH avec un accès limité aux commandes système. Par exemple, l'exécution de commandes nécessaires pour le fonctionnement de Git (git-receive-pack, git-upload-pack, git-upload-archive) et rsync est autorisée, ainsi que quelques commandes intégrées (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy et sftpgo-remove).
- Mode portable pour le partage d'un répertoire commun avec génération automatique des identifiants de connexion, annoncés via multicast DNS.
- Système de profilage intégré pour analyser les performances.
- Processus simplifié de migration des comptes utilisateurs Linux.
- Stockage des journaux au format JSON.
- Prise en charge des répertoires virtuels (par exemple, le contenu d'un répertoire donné peut être servi non pas à partir du système de fichiers local, mais depuis un stockage cloud externe).
- Prise en charge de cryptfs pour le chiffrement transparent des données à la volée lors de l'enregistrement dans le système de fichiers et déchiffrement lors de la restitution.
- Prise en charge du transfert de connexions vers d'autres serveurs SFTP.
- Possibilité d'utiliser SFTPGo comme sous-système SFTP pour OpenSSH.
- Possibilité de stocker des données d'identification et sensibles sous forme chiffrée en utilisant des serveurs KMS (Key Management Services) tels que Vault, GCP KMS, AWS KMS.
- Prise en charge de l'authentification à deux facteurs utilisant des mots de passe temporaires (TOTP, RFC 6238). Des applications telles qu'Authy et Google Authenticator peuvent être utilisées comme authentificateurs.
- Extension des fonctionnalités via des plugins. Par exemple, des plugins prenant en charge des services supplémentaires d'échange de clés, l'intégration du schéma Publish/Subscribe, ainsi que le stockage et la recherche d'informations sur des événements dans une base de données.
Source : opennet.ru


