Опубликован выпуск сервера SFTPGo 2.5.0, позволяющего организовать удалённый доступ к файлам при помощи протоколов SFTP, SCP/SSH, Rsync, HTTP и WebDav, а также для предоставления доступа к Git-репозиториям, используя протокол SSH. Данные могут отдаваться как с локальной файловой системы, так и из внешних хранилищ, совместимых с Amazon S3, Google Cloud Storage и Azure Blob Storage. Возможно хранение данных в зашифрованном виде. Для хранения пользовательской базы и метаданных используются СУБД с поддержкой SQL или формата ключ/значение, такие как PostgreSQL, MySQL, SQLite, CockroachDB или bbolt, но имеется и возможность хранения метаданных в оперативной памяти, не требующая подключения внешней БД. Код проекта написан на языке Go и распространяется под лицензией GPLv3.
U novoj verziji:
- В web-интерфейсе предоставлена возможность закрытия сообщений об ошибках. В web-интерфейсе для администратора добавлена поддержка поиска в логе аудита и экспорта данных из него, реализовано управление списками IP-адресов и сетей, предоставлена возможность настройки SMTP и типовых параметров ACME и SFTP. В клиентском web-интерфейсе реализована собственная форма входа (вместо basic auth), добавлена операций копирования и убрано ограничение на размер загрузок.
- Добавлена поддержка политик использования паролей, например, можно определить требования к надёжности пароля и задать время жизни пароля.
- В EventManager добавлена возможность вывода уведомлений о просроченных паролях, реализована операция копирования, добавлена поддержка предварительно вызываемых действий (pre-*) и обработчиков, срабатывающих при определённых действиях (например, добавлен обработчик, вызываемый при входе пользователя).
- Добавлена возможность предоставления пользователям прав администратора.
- В интерфейс командной строки добавлены команды для сброса пароля администратора и проверки работоспособности сервиса.
- Добавлена поддержка условных операторов при выполнении массового переименования файлов на стороне облачных провайдеров.
- Добавлена поддержка отслеживания и автоматической перезагрузки TLS-сертификатов.
- Добавлена возможность определеения собственных MIME-типов для WebDAV.
- Для SSH включена по умолчанию интерактивная аутентификация с использованием клавиатуры.
- В переносимом режиме появилась возможность загрузки паролей из файла.
- Добавлена экспериментальная поддержка сервиса Terraform.
Glavne karakteristike SFTPGo:
- Svaki račun je chroot, ograničavajući pristup korisničkom kućnom direktoriju. Moguće je kreirati virtualne direktorije koji referenciraju podatke izvan korisničkog kućnog direktorija.
- Računi se pohranjuju u virtualnu korisničku bazu podataka koja se ne preklapa s bazom podataka korisnika sistema. SQLite, MySQL, PostgreSQL, bbolt i memorija za skladištenje mogu se koristiti za skladištenje korisničkih baza podataka. Omogućene su mogućnosti za mapiranje virtuelnih i sistemskih naloga - moguće je direktno ili nasumično mapiranje (jedan korisnik sistema može biti mapiran na drugog virtuelnog korisnika).
- Podržana je autentifikacija pomoću javnih ključeva, SSH ključeva i lozinki (uključujući interaktivnu autentifikaciju lozinkom unesenom s tastature). Moguće je vezati nekoliko ključeva za svakog korisnika, kao i postaviti višefaktorsku i višestepenu autentifikaciju (na primjer, u slučaju uspješne provjere autentičnosti ključa može se dodatno zatražiti lozinka).
- Za svakog korisnika moguće je konfigurirati različite metode provjere autentičnosti, kao i definirati vlastite metode, implementirane pozivanjem eksternih programa za autentifikaciju (na primjer, za autentifikaciju putem LDAP-a) ili slanjem zahtjeva putem HTTP API-ja.
- Moguće je povezati vanjske rukovaoce ili HTTP API pozive za dinamičku promjenu korisničkih parametara, pozvanih prije nego što se korisnik prijavi. Podržano je dinamičko kreiranje korisnika nakon povezivanja.
- Podržava pojedinačne kvote za veličinu podataka i broj datoteka.
- Podrška za ograničenje propusnog opsega sa odvojenom konfiguracijom ograničenja za dolazni i odlazni saobraćaj, kao i ograničenja broja istovremenih veza.
- Alati za kontrolu pristupa koji rade u odnosu na korisnika ili direktorij (možete ograničiti pregled liste datoteka, zabraniti postavljanje, preuzimanje, prepisivanje, brisanje, preimenovanje ili promjenu prava pristupa, zabraniti kreiranje direktorija ili simboličkih veza, itd.).
- Za svakog korisnika možete definirati pojedinačna mrežna ograničenja, na primjer, možete dozvoliti samo prijave sa određenih IP-ova ili podmreža.
- Podržava povezivanje filtera za preuzeti sadržaj u odnosu na pojedinačne korisnike i direktorije (na primjer, možete blokirati preuzimanje datoteka s određenim ekstenzijom).
- Moguće je vezati rukovaoce koji se pokreću tokom raznih operacija sa datotekom (preuzimanje, brisanje, preimenovanje itd.). Osim rukovatelja pozivanjem, podržano je slanje obavijesti u obliku HTTP zahtjeva.
- Automatski prekid neaktivnih veza.
- Atomsko ažuriranje konfiguracije bez prekida veze.
- Pružanje metrike za praćenje u Prometheusu.
- HAProxy PROXY protokol je podržan za organiziranje balansiranja opterećenja ili proxy veza sa SFTP/SCP uslugama bez gubitka informacija o izvornoj IP adresi korisnika.
- REST API za upravljanje korisnicima i direktorijumima, kreiranje rezervnih kopija i generisanje izveštaja o aktivnim vezama.
- Web sučelje (http://127.0.0.1:8080/web) za konfiguraciju i praćenje (konfiguracija putem redovnih konfiguracijskih datoteka je također podržana).
- Mogućnost definiranja postavki u JSON, TOML, YAML, HCL i envfile formatima.
- Podrška za povezivanje putem SSH-a sa ograničenim pristupom sistemskim komandama. Na primjer, dozvoljeno je pokretanje naredbi neophodnih za Git (git-receive-pack, git-upload-pack, git-upload-archive) i rsync, kao i nekoliko ugrađenih naredbi (scp, md5sum, sha*sum , cd, pwd, sftpgo-copy i sftpgo-remove).
- Prijenosni način za dijeljenje jednog zajedničkog direktorija s automatskim generiranjem akreditiva za vezu koji se oglašava putem multicast DNS-a.
- Ugrađen sistem profilisanja za analizu performansi.
- Pojednostavljeni proces za migraciju Linux sistemskih naloga.
- Pohranjivanje dnevnika u JSON formatu.
- Podrška za virtuelne direktorijume (na primer, sadržaj određenog direktorijuma se može servirati ne iz lokalnog FS-a, već iz eksternog skladišta u oblaku).
- Cryptfs podrška za transparentno šifriranje podataka u hodu prilikom pohranjivanja u FS i dešifriranje prilikom vraćanja.
- Podrška za prosljeđivanje konekcija na druge SFTP servere.
- Mogućnost korištenja SFTPGo kao SFTP podsistema za OpenSSH.
- Mogućnost skladištenja akreditiva i povjerljivih podataka u šifriranom obliku pomoću KMS servera (Key Management Services), kao što su Vault, GCP KMS, AWS KMS.
- Поддержка двухфакторной аутентификации с использованием одноразовых паролей с ограниченным временем жизни (TOTP, RFC 6238). В качестве аутентификаторов могут использоваться такие приложения, как Authy и Google Authenticator.
- Расширение функциональности через плагины. Например доступны плагины с поддержкой дополнительных сервисов обмена ключами, интеграции схемы Publish/Subscribe, хранения и поиска информации о событиях в СУБД.
izvor: opennet.ru