Состоялся первый значительный выпуск сервера , позволяющего организовать удалённый доступ к файлам при помощи протоколов SFTP, SCP/SSH и Rsync. В том числе SFTPGo может использоваться для предоставления доступа к Git-репозиториям, используя протокол SSH. Данные могут отдаваться как с локальной файловой системы, так и из внешних хранилищ, совместимых с Amazon S3 и Google Cloud Storage. Для хранения пользовательской базы и метаданных используются СУБД с поддержкой SQL или формата ключ/значение, такие как PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x или . Имеется также режим хранения метаданных в оперативной памяти, не требующий подключения внешней БД. Код проекта написан на языке Go и Die Veröffentlichung des Video Players MPV 0.32
Hauptmerkmale:
- Für jedes Konto wird eine chroot-Isolierung angewendet, die den Zugriff auf das Home-Verzeichnis des Nutzers einschränkt. Es ist möglich, virtuelle Verzeichnisse zu erstellen, die auf Daten außerhalb des Benutzer-HOME-Verzeichnisses verweisen.
- Die Konten werden in einer virtuellen Benutzerdatenbank gespeichert, die nicht mit der systeminternen Benutzerdatenbank überlappt. Für die Speicherung der Benutzerdatenbank können SQLite, MySQL, PostgreSQL, bbolt und der Speicher im Arbeitsspeicher verwendet werden. Es stehen Werkzeuge zur Verfügung, um virtuelle und systeminterne Konten abzugleichen — eine direkte oder willkürliche Zuordnung ist möglich (ein systeminterner Benutzer kann einem anderen virtuellen Benutzer zugeordnet werden).
- Die Authentifizierung unterstützt öffentliche Schlüssel, SSH-Schlüssel und Passwörter (einschließlich interaktiver Authentifizierung mit passwortbasierter Eingabe über die Tastatur). Es können mehrere Schlüssel für jeden Benutzer zugewiesen werden, sowie die Konfiguration von Multi-Faktor- und Mehrstufen-Authentifizierung (zum Beispiel kann nach erfolgreicher Schlüssel-Authentifizierung zusätzlich ein Passwort angefordert werden).
- Für jeden Benutzer können unterschiedliche Authentifizierungsmethoden eingestellt werden, einschließlich der Definition eigener Methoden, die über externe Authenticator-Programme (zum Beispiel für LDAP-Authentifizierung) oder durch HTTP-API-Anfragen bereitgestellt werden.
- Возможно подключение внешних обработчиков или вызовов HTTP API для динамического изменения параметров пользователя, вызываемых перед входом пользователя. Поддерживается создание пользователей при подключении.
- Unterstützung individueller Quoten für Datenvolumen und Anzahl der Dateien.
- Unterstützung für die Begrenzung der Bandbreite mit separaten Einstellungen für eingehenden und ausgehenden Datenverkehr sowie Beschränkungen für die Anzahl gleichzeitiger Verbindungen.
- Zugriffssteuerungsmechanismen, die benutzerspezifisch oder katalogbasiert arbeiten (z. B. kann die Anzeige der Dateiliste eingeschränkt, das Hochladen, Herunterladen, Überschreiben, Löschen, Umbenennen oder Ändern von Berechtigungen verboten sowie das Erstellen von Verzeichnissen oder symbolischen Links untersagt werden).
- Für jeden Benutzer können individuelle Netzwerkeinschränkungen festgelegt werden, zum Beispiel kann der Zugang nur von bestimmten IP-Adressen oder Subnetzen gestattet werden.
- Es wird unterstützt, Inhalte mit spezifischen Filteroptionen zu verbinden, die benutzerspezifisch oder katalogbasiert sind (z. B. können Uploads von Dateien mit bestimmten Dateierweiterungen blockiert werden).
- Es ist möglich, Handler zu binden, die bei verschiedenen Dateioperationen (Hochladen, Löschen, Umbenennen usw.) ausgeführt werden. Neben dem Aufruf von Handlern wird auch die Versendung von Benachrichtigungen in Form von HTTP-Anfragen unterstützt.
- Automatische Beendigung von inaktiven Verbindungen.
- Atomare Aktualisierung der Konfiguration ohne Unterbrechung der Verbindungen.
- метрик для мониторинга в Prometheus.
- Das HAProxy PROXY-Protokoll wird unterstützt, um Lastenausgleich oder Proxy-Verbindungen zu SFTP/SCP-Diensten ohne Verlust der ursprünglichen IP-Adresse des Nutzers zu ermöglichen.
- для управления пользователями и каталогами, создания резервных копий и формирования отчётов об активных соединениях.
- (http://127.0.0.1:8080/web) для настройки и мониторинга (поддерживается и настройка через обычные файлы конфигурации).
- Möglichkeit, Einstellungen in den Formaten JSON, TOML, YAML, HCL und envfile zu definieren.
- подключения по SSH с ограниченным доступом к системным командам. Например, разрешён запуск команд, необходимых для работы Git (git-receive-pack, git-upload-pack, git-upload-archive) и rsync, а также нескольких встроенных команд (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy и sftpgo-remove).
- Modus для совместного использования одного общего каталога с автоматической генерацией учётных данных для подключения, анонсируемых через multicast DNS.
- Встроенная система для анализа производительности.
- Упрощённый миграции системных учётных записей Linux.
- логов в формате JSON.
Quelle: opennet.ru
