La premiĂšre version importante du serveur a Ă©tĂ© publiĂ©e. , permettant d'organiser l'accĂšs Ă distance aux fichiers via les protocoles SFTP, SCP/SSH et Rsync. SFTPGo peut Ă©galement ĂȘtre utilisĂ© pour fournir un accĂšs aux dĂ©pĂŽts Git en utilisant le protocole SSH. Les donnĂ©es peuvent ĂȘtre rĂ©cupĂ©rĂ©es Ă partir du systĂšme de fichiers local ou de stockages externes compatibles avec Amazon S3 et Google Cloud Storage. Pour stocker la base d'utilisateurs et les mĂ©tadonnĂ©es, des bases de donnĂ©es avec support SQL ou en format clĂ©/valeur, telles que PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x ou . Il existe Ă©galement un mode de stockage des mĂ©tadonnĂ©es en mĂ©moire vive, ne nĂ©cessitant pas de connexion Ă une base de donnĂ©es externe. Le code du projet est Ă©crit en Go et sous licence GPLv3.
Caractéristiques principales :
- 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'effectuer des appels API HTTP pour modifier dynamiquement les paramÚtres des utilisateurs, appelés avant la connexion de l'utilisateur. La prise en charge de d'utilisateurs lors de la connexion est également disponible.
- 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.
- 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.
- 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.
- (http://127.0.0.1:8080/web) pour la configuration et la surveillance (la configuration par des fichiers de configuration ordinaires est également prise en charge).
- Possibilité de définir des paramÚtres dans les formats JSON, TOML, YAML, HCL et envfile.
- connexion SSH avec accÚs restreint aux commandes systÚme. Par exemple, le lancement de commandes nécessaires au fonctionnement de Git (git-receive-pack, git-upload-pack, git-upload-archive) et rsync, ainsi que plusieurs commandes intégrées (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy et sftpgo-remove) est autorisé.
- Mode pour le partage d'un répertoire commun avec génération automatique des identifiants de connexion, annoncés via multicast DNS.
- SystÚme intégré pour l'analyse des performances.
- Processus simplifié migration des comptes systÚme Linux.
- des journaux au format JSON.
Source : opennet.ru
