Выпуск SFTP-сервера SFTPGo 2.2.0

Апублікаваны выпуск сервера SFTPGo 2.2, які дазваляе арганізаваць выдалены доступ да файлаў пры дапамозе пратаколаў SFTP, SCP/SSH, Rsync, HTTP і WebDav. У тым ліку SFTPGo можа выкарыстоўвацца для падавання доступу да Git-рэпазітароў, выкарыстаючы пратакол SSH. Дадзеныя могуць аддавацца як з лакальнай файлавай сістэмы, так і з вонкавых сховішчаў, сумяшчальных з Amazon S3, Google Cloud Storage і Azure Blob Storage. Магчыма захоўванне дадзеных у зашыфраваным выглядзе. Для захоўвання карыстацкай базы і метададзеных выкарыстоўваюцца СКБД з падтрымкай SQL ці фармату ключ/значэнне, такія як PostgreSQL, MySQL, SQLite, CockroachDB ці bbolt, але маецца і магчымасць захоўвання метададзеных у аператыўнай памяці, не патрабавальная падлучэнні вонкавай БД. Код праекту напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй GPLv3.

У новай версіі:

  • Дададзена падтрымка двухфактарнай аўтэнтыфікацыі з выкарыстаннем аднаразовых пароляў з абмежаваным часам жыцця (TOTP, RFC 6238). У якасці аўтэнтыфікатараў могуць выкарыстоўвацца такія прыкладанні, як Authy і Google Authenticator.
  • Рэалізавана магчымасць пашырэння функцыянальнасці праз убудовы. Сярод ужо даступных убудоў: падтрымка дадатковых сэрвісаў абмену ключамі, інтэграцыя схемы Publish/Subscribe, захоўванне і пошук інфармацыі аб падзеях у СКБД.
  • У REST API дададзена падтрымка аўтэнтыфікацыі па ключах, акрамя такенаў JWT, а таксама забяспечана магчымасць задання палітык захоўвання дадзеных (абмежаванне часу жыцця дадзеных) у прывязцы да асобных каталогаў і карыстальнікам. Па змаўчанні актываваны інтэрфейс Swagger UI для навігацыі па рэсурсах API без ужывання вонкавых утыліт.
  • У web-інтэрфейс дададзена падтрымка аперацый запісу (загрузка файлаў, стварэнне каталогаў, перайменаванне і выдаленне), рэалізаваная магчымасць скіду пароля з пацверджаннем па email, інтэграваныя рэдактар ​​тэкставых файлаў і прагляднік PDF-дакументаў. Дададзена магчымасць стварэння HTTP-спасылак для падавання вонкавым карыстачам доступу да асобных файлаў і каталогам, з магчымасцю задання асобнага пароля доступу, абмежаванні па IP-адрасам, заданні часу жыцця спасылкі і лімітаванні ліку загрузак.

Асноўныя магчымасці SFTPGo:

  • Для кожнага ўліковага запісу прымяняецца chroot-ізаляцыя, якая абмяжоўвае доступ хатнім каталогам карыстальніка. Магчыма стварэння віртуальных каталогаў, якія спасылаюцца на дадзеныя па-за карыстацкім хатнім каталогам.
  • Уліковыя запісы захоўваюцца ў віртуальнай базе карыстальнікаў, якая не перасякаецца з сістэмнай БД карыстальнікаў. Для захоўвання БД карыстачоў могуць ужывацца SQLite, MySQL, PostgreSQL, bbolt і захоўванне ў памяці. Даюцца сродкі для супастаўлення віртуальных і сістэмных уліковых запісаў - магчыма прамое або адвольнае супастаўленне (адзін сістэмны карыстальнік можа быць супастаўлены з іншым віртуальным карыстальнікам).
  • Падтрымліваецца аўтэнтыфікацыя па адкрытых ключах, ключах SSH і паролям (у тым ліку інтэрактыўная аўтэнтыфікацыя з уводам пароля з клавіятуры). Магчыма прывязка некалькіх ключоў для кожнага карыстальніка, а таксама настройка мультыфактарнай і шматэтапнай аўтэнтыфікацыі (напрыклад, у выпадку паспяховай аўтэнтыфікацыі па ключы можа дадаткова быць запытаны пароль).
  • Для кожнага карыстальніка магчыма настройка розных метадаў аўтэнтыфікацыі, а таксама вызначэнне ўласных метадаў, якія рэалізуюцца праз выклік знешніх праграм-аўтэнтыфікатараў (напрыклад, для аўтэнтыфікацыі праз LDAP) або адпраўку запытаў праз HTTP API.
  • Магчыма падлучэнне вонкавых апрацоўшчыкаў або выклікаў HTTP API для дынамічнай змены параметраў карыстача, выкліканых перад уваходам карыстача. Падтрымліваецца дынамічнае стварэнне карыстальнікаў пры падключэнні.
  • Падтрымка індывідуальных квот на памер даных і колькасць файлаў.
  • Падтрымка абмежавання прапускной здольнасці з паасобнай наладай абмежаванняў для ўваходнага і выходнага трафіку, а таксама абмежаванняў на лік адначасовых падлучэнняў.
  • Сродкі размежавання доступу, якія дзейнічаюць у прывязцы да карыстача або каталогу (можна абмежаваць прагляд спісу файлаў, забараніць загрузку, запампоўка, перазапіс, выдаленне, перайменаванне ці змена правоў доступу, забараніць стварэнне каталогаў ці сімвалічных спасылак і да т.п.).
  • Для кожнага карыстальніка можна вызначыць індывідуальныя сеткавыя абмежаванні, напрыклад, можна дазволіць уваход толькі з пэўных IP або падсетак.
  • Падтрымліваецца падлучэнне фільтраў загружанага кантэнту ў прывязцы да асобных карыстачоў і каталогам (напрыклад, можна блакаваць загрузку файлаў з вызначаным пашырэннем).
  • Магчымая прывязка апрацоўшчыкаў, якія запускаюцца пры розных аперацыях з файлам (загрузка, выдаленне, перайменаванне і да т.п.). Акрамя выкліку апрацоўшчыкаў падтрымліваецца адпраўка апавяшчэнняў у форме HTTP-запытаў.
  • Аўтаматычнае завяршэнне неактыўных злучэнняў.
  • Атамарнае абнаўленне канфігурацыі без разрыву злучэнняў.
  • Прадастаўленне метрык для маніторынгу ў Prometheus.
  • Падтрымліваецца пратакол HAProxy PROXY для арганізацыі балансавання нагрузкі ці праксіравання злучэнняў да сэрвісаў SFTP/SCP без страты звестак аб зыходным IP-адрасе карыстача.
  • REST API для кіравання карыстальнікамі і каталогамі, стварэння рэзервовых копій і фарміравання справаздач аб актыўных злучэннях.
  • Web-інтэрфейс (http://127.0.0.1:8080/web) для настройкі і маніторынгу (падтрымліваецца і настройка праз звычайныя файлы канфігурацыі).
  • Магчымасць вызначэння настроек у фарматах JSON, TOML, YAML, HCL і envfile.
  • Падтрымка падлучэння па SSH з абмежаваным доступам да сістэмных каманд. Напрыклад, дазволены запуск каманд, неабходных для працы Git (git-receive-pack, git-upload-pack, git-upload-archive) і rsync, а таксама некалькіх убудаваных каманд (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy і sftpgo-remove).
  • Рэжым portable для сумеснага выкарыстання аднаго агульнага каталога з аўтаматычнай генерацыяй уліковых дадзеных для падлучэння, якія анансуюцца праз multicast DNS.
  • Убудаваная сістэма прафілявання для аналізу прадукцыйнасці.
  • Спрошчаны працэс міграцыі сістэмных уліковых запісаў Linux.
  • Захоўванне логаў у фармаце JSON.
  • Падтрымка віртуальных каталогаў (напрыклад, змесціва вызначанага каталога можна аддаваць не з лакальнай ФС, а з вонкавага хмарнага сховішчы).
  • Падтрымка cryptfs для празрыстага шыфравання дадзеных на лета пры захаванні ў ФС і расшыфроўкі пры аддачы.
  • Падтрымка пракіду злучэнняў да іншых сервераў SFTP.
  • Магчымасць выкарыстання SFTPGo у якасці SFTP-падсістэмы для OpenSSH.
  • Магчымасць захоўвання ўліковых і канфідэнцыйных дадзеных у зашыфраваным выглядзе з выкарыстаннем KMS-сервераў (Key Management Services), такіх як Vault, GCP KMS, AWS KMS.

Крыніца: opennet.ru

Дадаць каментар