Veröffentlichung des SFTP-Servers SFTPGo 2.2.0

Die Version des SFTPGo 2.2-Servers wurde veröffentlicht, mit der Sie den Fernzugriff auf Dateien mithilfe der Protokolle SFTP, SCP/SSH, Rsync, HTTP und WebDav organisieren können. Mit SFTPGo kann unter anderem der Zugriff auf Git-Repositories über das SSH-Protokoll ermöglicht werden. Daten können sowohl aus dem lokalen Dateisystem als auch von externen Speichern übertragen werden, die mit Amazon S3, Google Cloud Storage und Azure Blob Storage kompatibel sind. Es besteht die Möglichkeit, Daten verschlüsselt zu speichern. Zur Speicherung der Benutzerdatenbank und Metadaten werden DBMS mit Unterstützung für SQL oder Schlüssel/Wert-Format verwendet, wie zum Beispiel PostgreSQL, MySQL, SQLite, CockroachDB oder bbolt, aber es ist auch möglich, Metadaten im RAM zu speichern, was keine Verbindung mit einem erfordert externe Datenbank. Der Projektcode ist in Go geschrieben und wird unter der GPLv3-Lizenz vertrieben.

In der neuen Version:

  • Unterstützung für Zwei-Faktor-Authentifizierung mit zeitlich begrenzten Einmalkennwörtern hinzugefügt (TOTP, RFC 6238). Als Authentifikatoren können Anwendungen wie Authy und Google Authenticator verwendet werden.
  • Die Möglichkeit, die Funktionalität durch Plugins zu erweitern, wurde implementiert. Zu den bereits verfügbaren Plugins gehören: Unterstützung zusätzlicher Schlüsselaustauschdienste, Integration des Publish/Subscribe-Schemas, Speicherung und Suche von Informationen zu Ereignissen im DBMS.
  • Die REST-API bietet zusätzlich zu JWT-Tokens Unterstützung für die Authentifizierung mithilfe von Schlüsseln und bietet außerdem die Möglichkeit, Datenspeicherrichtlinien (die die Lebensdauer von Daten begrenzen) in Bezug auf einzelne Verzeichnisse und Benutzer festzulegen. Standardmäßig ist die Swagger-Benutzeroberfläche für die Navigation in API-Ressourcen aktiviert, ohne externe Dienstprogramme zu verwenden.
  • Die Weboberfläche wurde um Unterstützung für Schreibvorgänge erweitert (Dateien hochladen, Verzeichnisse erstellen, umbenennen und löschen), die Möglichkeit zum Zurücksetzen eines Passworts mit Bestätigung per E-Mail wurde implementiert, ein Textdatei-Editor und ein PDF-Dokument-Viewer wurden integriert. Es wurde die Möglichkeit hinzugefügt, HTTP-Links zu erstellen, um externen Benutzern Zugriff auf einzelne Dateien und Verzeichnisse zu gewähren, mit der Möglichkeit, ein separates Zugriffskennwort festzulegen, IP-Adressen zu begrenzen, die Link-Lebensdauer festzulegen und die Anzahl der Downloads zu begrenzen.

Hauptmerkmale von SFTPGo:

  • Jedes Konto ist chrooted, wodurch der Zugriff auf das Home-Verzeichnis des Benutzers eingeschränkt wird. Es ist möglich, virtuelle Verzeichnisse zu erstellen, die auf Daten außerhalb des Home-Verzeichnisses des Benutzers verweisen.
  • Konten werden in einer virtuellen Benutzerdatenbank gespeichert, die sich nicht mit der Systembenutzerdatenbank überschneidet. Zur Speicherung von Benutzerdatenbanken können SQLite, MySQL, PostgreSQL, Bbolt und In-Memory-Storage verwendet werden. Es stehen Funktionen für die Zuordnung virtueller und Systemkonten zur Verfügung – entweder direkte oder zufällige Zuordnung ist möglich (ein Systembenutzer kann einem anderen virtuellen Benutzer zugeordnet werden).
  • Die Authentifizierung mit öffentlichen Schlüsseln, SSH-Schlüsseln und Passwörtern wird unterstützt (einschließlich interaktiver Authentifizierung mit einem über die Tastatur eingegebenen Passwort). Es ist möglich, für jeden Benutzer mehrere Schlüssel zu binden sowie eine mehrstufige und mehrstufige Authentifizierung einzurichten (z. B. kann bei erfolgreicher Schlüsselauthentifizierung zusätzlich ein Passwort abgefragt werden).
  • Für jeden Benutzer ist es möglich, verschiedene Authentifizierungsmethoden zu konfigurieren sowie eigene Methoden zu definieren, die durch den Aufruf externer Authentifizierungsprogramme (z. B. zur Authentifizierung über LDAP) oder das Senden von Anfragen über die HTTP-API implementiert werden.
  • Es ist möglich, externe Handler oder HTTP-API-Aufrufe anzuschließen, um Benutzerparameter dynamisch zu ändern, die aufgerufen werden, bevor sich der Benutzer anmeldet. Die dynamische Erstellung von Benutzern bei der Verbindung wird unterstützt.
  • Unterstützt individuelle Kontingente für Datengröße und Anzahl der Dateien.
  • Unterstützung der Bandbreitenbegrenzung mit separater Konfiguration von Beschränkungen für ein- und ausgehenden Datenverkehr sowie Beschränkungen der Anzahl gleichzeitiger Verbindungen.
  • Zugriffskontrolltools, die in Bezug auf einen Benutzer oder ein Verzeichnis funktionieren (Sie können die Anzeige einer Liste von Dateien einschränken, das Hochladen, Herunterladen, Überschreiben, Löschen, Umbenennen oder Ändern von Zugriffsrechten verbieten, die Erstellung von Verzeichnissen oder symbolischen Links verbieten usw.).
  • Für jeden Benutzer können Sie individuelle Netzwerkeinschränkungen definieren, z. B. können Sie nur Anmeldungen von bestimmten IPs oder Subnetzen zulassen.
  • Es unterstützt die Verknüpfung von Filtern für heruntergeladene Inhalte in Bezug auf einzelne Benutzer und Verzeichnisse (Sie können beispielsweise das Herunterladen von Dateien mit einer bestimmten Erweiterung blockieren).
  • Es ist möglich, Handler zu binden, die bei verschiedenen Vorgängen mit einer Datei (Herunterladen, Löschen, Umbenennen usw.) gestartet werden. Neben dem Aufruf von Handlern wird auch das Versenden von Benachrichtigungen in Form von HTTP-Anfragen unterstützt.
  • Automatische Beendigung inaktiver Verbindungen.
  • Atomare Konfigurationsaktualisierung ohne Verbindungsunterbrechung.
  • Bereitstellung von Metriken für die Überwachung in Prometheus.
  • Das HAProxy PROXY-Protokoll wird unterstützt, um Lastausgleich oder Proxy-Verbindungen zu SFTP/SCP-Diensten zu organisieren, ohne Informationen über die Quell-IP-Adresse des Benutzers zu verlieren.
  • REST-API zum Verwalten von Benutzern und Verzeichnissen, zum Erstellen von Backups und zum Generieren von Berichten über aktive Verbindungen.
  • Webschnittstelle (http://127.0.0.1:8080/web) zur Konfiguration und Überwachung (Konfiguration über reguläre Konfigurationsdateien wird ebenfalls unterstützt).
  • Möglichkeit, Einstellungen in den Formaten JSON, TOML, YAML, HCL und envfile zu definieren.
  • Unterstützung für die Verbindung über SSH mit eingeschränktem Zugriff auf Systembefehle. Es ist beispielsweise erlaubt, für Git erforderliche Befehle (git-receive-pack, git-upload-pack, git-upload-archive) und rsync sowie mehrere integrierte Befehle (scp, md5sum, sha*sum) auszuführen , cd, pwd, sftpgo-copy und sftpgo-remove).
  • Portabler Modus zur gemeinsamen Nutzung eines gemeinsamen Verzeichnisses mit automatischer Generierung von Verbindungsanmeldeinformationen, die über Multicast-DNS bekannt gegeben werden.
  • Integriertes Profiling-System zur Leistungsanalyse.
  • Vereinfachter Prozess zur Migration von Linux-Systemkonten.
  • Protokolle im JSON-Format speichern.
  • Unterstützung für virtuelle Verzeichnisse (z. B. kann der Inhalt eines bestimmten Verzeichnisses nicht vom lokalen FS, sondern von einem externen Cloud-Speicher bereitgestellt werden).
  • Cryptfs-Unterstützung für transparente On-the-Fly-Verschlüsselung von Daten beim Speichern im FS und Entschlüsselung bei der Rückgabe.
  • Unterstützung für die Weiterleitung von Verbindungen zu anderen SFTP-Servern.
  • Möglichkeit, SFTPGo als SFTP-Subsystem für OpenSSH zu verwenden.
  • Die Möglichkeit, Anmeldeinformationen und vertrauliche Daten in verschlüsselter Form mithilfe von KMS-Servern (Key Management Services) wie Vault, GCP KMS, AWS KMS zu speichern.

Source: opennet.ru

Kommentar hinzufügen