Состоялся первый значительный выпуск сервера , позволяющего организовать удалённый доступ к файлам при помощи протоколов SFTP, SCP/SSH и Rsync. В том числе SFTPGo может использоваться для предоставления доступа к Git-репозиториям, используя протокол SSH. Данные могут отдаваться как с локальной файловой системы, так и из внешних хранилищ, совместимых с Amazon S3 и Google Cloud Storage. Для хранения пользовательской базы и метаданных используются СУБД с поддержкой SQL или формата ключ/значение, такие как PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x или . Имеется также режим хранения метаданных в оперативной памяти, не требующий подключения внешней БД. Код проекта написан на языке Go и sott Licenza GPLv3.
Caratteristiche principali:
- Per ogni account viene applicata l'isolamento chroot, limitando l'accesso alla home directory dell'utente. È possibile creare directory virtuali che fanno riferimento a dati al di fuori della home directory dell'utente.
- Gli account sono memorizzati in un database virtuale degli utenti, non sovrapposto al database degli utenti di sistema. Possono essere utilizzati SQLite, MySQL, PostgreSQL, bbolt e la memoria per la memorizzazione del database degli utenti. Sono forniti strumenti per mappare gli account virtuali e di sistema — è possibile una mappatura diretta o arbitraria (un utente di sistema può essere mappato a un altro utente virtuale).
- Supporta l'autenticazione tramite chiavi pubbliche, chiavi SSH e password (inclusa l'autenticazione interattiva con input da tastiera). È possibile associare più chiavi per ogni utente, nonché configurare l'autenticazione multifattoriale e a più fasi (ad esempio, dopo un'autenticazione riuscita tramite chiave, potrebbe essere richiesta una password aggiuntiva).
- Per ogni utente, è possibile configurare diversi metodi di autenticazione, così come definire metodi personalizzati tramite l'invocazione di programmi esterni di autenticazione (ad esempio, per l'autenticazione tramite LDAP) o l'invio di richieste tramite HTTP API.
- Возможно подключение внешних обработчиков или вызовов HTTP API для динамического изменения параметров пользователя, вызываемых перед входом пользователя. Поддерживается создание пользователей при подключении.
- Supporto per quote individuali sulle dimensioni dei dati e sul numero di file.
- Supporto per il limitamento della larghezza di banda con impostazioni separate per le restrizioni sul traffico in ingresso e in uscita, e limite sul numero di connessioni simultanee.
- Mezzi di controllo degli accessi, che operano in base all'utente o alla directory (è possibile limitare la visualizzazione dell'elenco dei file, vietare il caricamento, il download, la scrittura, la cancellazione, il rinominare o la modifica dei permessi, vietare la creazione di directory o collegamenti simbolici, ecc.).
- Per ogni utente è possibile definire limitazioni di rete individuali, ad esempio, consentire l'accesso solo da determinati IP o sottoreti.
- Supporta il collegamento di filtri per il contenuto caricato in relazione a singoli utenti e directory (ad esempio, è possibile bloccare il caricamento di file con determinate estensioni).
- È possibile collegare gestori che vengono attivati durante varie operazioni con il file (caricamento, cancellazione, rinominazione, ecc.). Oltre all'attivazione di gestori, è support l'invio di notifiche sotto forma di richieste HTTP.
- Chiusura automatica delle connessioni inattive.
- Aggiornamento atomico della configurazione senza interrompere le connessioni.
- метрик для мониторинга в Prometheus.
- È supportato il protocollo HAProxy PROXY per la gestione del bilanciamento del carico o il proxy delle connessioni verso i servizi SFTP/SCP senza perdita di informazioni sull'indirizzo IP originale dell'utente.
- для управления пользователями и каталогами, создания резервных копий и формирования отчётов об активных соединениях.
- (http://127.0.0.1:8080/web) для настройки и мониторинга (поддерживается и настройка через обычные файлы конфигурации).
- Possibilità di definire le impostazioni nei formati JSON, TOML, YAML, HCL e envfile.
- подключения по SSH с ограниченным доступом к системным командам. Например, разрешён запуск команд, необходимых для работы Git (git-receive-pack, git-upload-pack, git-upload-archive) и rsync, а также нескольких встроенных команд (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy и sftpgo-remove).
- Modalità для совместного использования одного общего каталога с автоматической генерацией учётных данных для подключения, анонсируемых через multicast DNS.
- Встроенная система для анализа производительности.
- Упрощённый миграции системных учётных записей Linux.
- логов в формате JSON.
Fonte: opennet.ru
