Veröffentlicht: SFTP-Server SFTPGo 2.2.0

Die Version 2.2 des SFTPGo-Servers wurde veröffentlicht, die die Fernzugriffsmöglichkeiten auf Dateien über die Protokolle SFTP, SCP/SSH, Rsync, HTTP und WebDav ermöglicht. SFTPGo kann auch verwendet werden, um Zugriff auf Git-Repositories über das SSH-Protokoll zu gewähren. Daten können sowohl von lokalen Dateisystemen als auch aus externen Speichern, die mit Amazon S3, Google Cloud Storage und Azure Blob Storage kompatibel sind, bereitgestellt werden. Es ist möglich, Daten in verschlüsselter Form zu speichern. Für die Speicherung der Benutzerdaten und Metadaten werden SQL-kompatible Datenbanken oder Schlüssel/Wert-Formate wie PostgreSQL, MySQL, SQLite, CockroachDB oder bbolt verwendet, es besteht aber auch die Möglichkeit, Metadaten im Arbeitsspeicher zu speichern, ohne eine externe Datenbank anzuschließen. Der Projektcode ist in Go geschrieben und wird unter der GPLv3-Lizenz veröffentlicht.

In der neuen Version:

  • Die Unterstützung für eine Zwei-Faktor-Authentifizierung mit zeitlich begrenzten Einmalpasswörtern (TOTP, RFC 6238) wurde hinzugefügt. Als Authentifikatoren können Apps wie Authy und Google Authenticator verwendet werden.
  • Die Möglichkeit zur Erweiterung der Funktionalität über Plugins wurde implementiert. Zu den bereits verfügbaren Plugins gehören die Unterstützung zusätzlicher Schlüsselverwaltungsdienste, die Integration eines Publish/Subscribe-Schemas und die Speicherung sowie Suche nach Ereignisinformationen in einer Datenbank.
  • In die REST-API wurde die Unterstützung für die Authentifizierung über Schlüssel zusätzlich zu JWT-Token integriert sowie die Möglichkeit, Datenaufbewahrungspolitiken (Lebensdauer der Daten) in Bezug auf einzelne Verzeichnisse und Benutzer festzulegen. Standardmäßig ist das Swagger UI-Interface aktiviert, um die Ressourcen der API ohne externe Tools zu navigieren.
  • Der Web-Interface wurde um Schreiboperationen (Datei-Uploads, Verzeichniserstellung, Umbenennung und Löschung) ergänzt, und die Möglichkeit zum Zurücksetzen des Passworts mit Bestätigung per E-Mail wurde implementiert. Ein Texteditor und ein PDF-Viewer wurden integriert. Die Möglichkeit zur Erstellung von HTTP-Links, um externen Benutzern den Zugriff auf einzelne Dateien und Verzeichnisse zu gewähren, wurde hinzufügt, wobei es möglich ist, separate Zugangspasswörter sowie Einschränkungen für IP-Adressen, die Lebensdauer des Links und die Anzahl der Downloads festzulegen.

Hauptfunktionen von SFTPGo:

  • Für jedes Benutzerkonto wird chroot-Isolierung angewendet, die den Zugriff auf das Heimatverzeichnis des Benutzers einschränkt. Es ist möglich, virtuelle Verzeichnisse zu erstellen, die auf Daten außerhalb des Heimatverzeichnisses des Benutzers verweisen.
  • Benutzerkonten werden in einer virtuellen Benutzerdatenbank gespeichert, die nicht mit der systemweiten Benutzerdatenbank überlappt. Für die Speicherung der Benutzerdatenbank können SQLite, MySQL, PostgreSQL, bbolt und Speichern im Arbeitsspeicher verwendet werden. Es stehen Werkzeuge zur Verfügung, um virtuelle und systemweite Benutzerkonten abzugleichen – ein systemweiter Benutzer kann direkt oder beliebig einem anderen virtuellen Benutzer zugeordnet werden.
  • Die Authentifizierung über öffentliche Schlüssel, SSH-Schlüssel und Passwörter wird unterstützt (einschließlich interaktiver Authentifizierung, bei der das Passwort über die Tastatur eingegeben wird). Es ist möglich, mehrere Schlüssel für jeden Benutzer zu binden, sowie die Einrichtung von Zwei-Faktor- und mehrstufiger Authentifizierung (zum Beispiel kann nach erfolgreicher Authentifizierung mit einem Schlüssel zusätzlich ein Passwort angefordert werden).
  • Für jeden Benutzer können verschiedene Authentifizierungsmethoden eingerichtet werden, sowie eigene Methoden definiert werden, die über den Aufruf externer Authentifizierungsprogramme (zum Beispiel zur Authentifizierung über LDAP) oder über HTTP API-Anfragen umgesetzt werden.
  • Es ist möglich, externe Handler oder HTTP-API-Aufrufe zu verbinden, um Benutzerparameter dynamisch zu ändern, die vor dem Benutzerlogin aufgerufen werden. Es wird die dynamische Erstellung von Benutzern bei der Anmeldung unterstützt.
  • Unterstützung individueller Datenquoten und Dateizahlen.
  • Unterstützung von Bandbreitenbeschränkungen mit separaten Einstellungsmöglichkeiten für eingehenden und ausgehenden Datenverkehr sowie für die Anzahl gleichzeitiger Verbindungen.
  • Zugangskontrollmechanismen, die an Benutzer oder Verzeichnisse gebunden sind (z. B. kann der Zugriff auf die Dateiliste eingeschränkt, der Upload, Download, das Überschreiben, Löschen, Umbenennen oder Ändern der Berechtigungen verboten und die Erstellung von Verzeichnissen oder symbolischen Links untersagt werden usw.).
  • Für jeden Benutzer können individuelle Netzwerkbeschränkungen definiert werden, z. B. kann der Zugang nur von bestimmten IPs oder Subnetzen erlaubt werden.
  • Unterstützung von Filterverbindungen für herunterladbare Inhalte, die an einzelne Benutzer und Verzeichnisse gebunden sind (z. B. kann der Download von Dateien mit bestimmten Erweiterungen blockiert werden).
  • Es ist möglich, Handler zu binden, die bei verschiedenen Dateioperationen (Hochladen, Löschen, Umbenennen usw.) ausgelöst werden. Neben dem Aufrufen von Handlern wird auch das Versenden von Benachrichtigungen in Form von HTTP-Anfragen unterstützt.
  • Automatisches Beenden inaktiver Verbindungen.
  • Atomare Konfigurationsaktualisierung ohne Unterbrechung der Verbindungen.
  • Bereitstellung von Metriken zur Überwachung in Prometheus.
  • Unterstützung des HAProxy PROXY-Protokolls für das Lastenausgleich oder das Proxying von Verbindungen zu SFTP/SCP-Diensten, ohne dass Informationen über die ursprüngliche IP-Adresse des Benutzers verloren gehen.
  • REST-API zur Verwaltung von Benutzern und Katalogen, zur Erstellung von Sicherungskopien und zur Berichterstattung über aktive Verbindungen.
  • Web-Oberfläche (http://127.0.0.1:8080/web) zur Konfiguration und Überwachung (Konfiguration ist auch über normale Konfigurationsdateien möglich).
  • Die Möglichkeit, Einstellungen im JSON-, TOML-, YAML-, HCL- und envfile-Format zu definieren.
  • Unterstützung für SSH-Verbindungen mit eingeschränktem Zugriff auf Systembefehle. Zum Beispiel ist die Ausführung der für Git erforderlichen Befehle (git-receive-pack, git-upload-pack, git-upload-archive) und rsync sowie einiger integrierter Befehle (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy und sftpgo-remove) erlaubt.
  • Portable Modus zur gemeinsamen Nutzung eines gemeinsamen Verzeichnisses mit automatischer Generierung von Anmeldedaten, die über Multicast DNS angekündigt werden.
  • Integriertes Profilsystem zur Leistungsanalyse.
  • Vereinfachter Prozess zur Migration von Linux-Systembenutzerkonten.
  • Protokollspeicherung im JSON-Format.
  • Unterstützung für virtuelle Verzeichnisse (z. B. kann der Inhalt eines bestimmten Verzeichnisses nicht aus dem lokalen Dateisystem, sondern aus einem externen Cloud-Speicher bereitgestellt werden).
  • Unterstützung für cryptfs zur transparenten Verschlüsselung von Daten in Echtzeit während der Speicherung im Dateisystem und zur Entschlüsselung bei der Bereitstellung.
  • Unterstützung für das Weiterleiten von Verbindungen zu anderen SFTP-Servern.
  • Die Möglichkeit, SFTPGo als SFTP-Subsystem für OpenSSH zu verwenden.
  • Die Möglichkeit, Benutzer- und vertrauliche Daten in verschlüsselter Form unter Verwendung von KMS-Servern (Key Management Services) wie Vault, GCP KMS, AWS KMS zu speichern.

Quelle: opennet.ru

60GB SSD 8Gb DDR4