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

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

Асноўныя асаблівасці:

  • Для кожнага ўліковага запісу прымяняецца 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).
  • рэжым партатыўны для сумеснага выкарыстання аднаго агульнага каталога з аўтаматычнай генерацыяй уліковых дадзеных для падлучэння, якія анансуюцца праз multicast DNS.
  • Убудаваная сістэма прафілявання для аналізу прадукцыйнасці.
  • Спрошчаны працэс міграцыі сістэмных уліковых запісаў Linux.
  • захоўванне логаў у фармаце JSON.

Крыніца: opennet.ru

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