Kutolewa kwa Seva ya SFTP SFTPGo 1.0

Toleo la kwanza muhimu la seva lilifanyika SFTGo 1.0, ambayo hukuruhusu kupanga ufikiaji wa mbali kwa faili kwa kutumia itifaki za SFTP, SCP/SSH na Rsync. Miongoni mwa mambo mengine, SFTPGo inaweza kutumika kutoa ufikiaji wa hazina za Git kwa kutumia itifaki ya SSH. Data inaweza kuhamishwa kutoka kwa mfumo wa faili wa ndani na kutoka kwa hifadhi ya nje inayooana na Amazon S3 na Hifadhi ya Wingu la Google. Ili kuhifadhi hifadhidata na metadata ya mtumiaji, DBMS zinazotumia SQL au umbizo la ufunguo/thamani hutumiwa, kama vile PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x au bbolt 1.3.x. Pia kuna hali ya kuhifadhi metadata kwenye RAM, ambayo hauitaji kuunganisha hifadhidata ya nje. Msimbo wa mradi umeandikwa katika Go na kusambazwa na iliyopewa leseni chini ya GPLv3.

Makala kuu:

  • Kila akaunti imechorwa, ikizuia ufikiaji wa saraka ya nyumbani ya mtumiaji. Inawezekana kuunda saraka pepe zinazorejelea data nje ya saraka ya nyumbani ya mtumiaji.
  • Akaunti huhifadhiwa katika hifadhidata ya mtumiaji pepe ambayo haiingiliani na hifadhidata ya mtumiaji wa mfumo. SQLite, MySQL, PostgreSQL, bbolt na hifadhi ya ndani ya kumbukumbu inaweza kutumika kuhifadhi hifadhidata za watumiaji. Njia zimetolewa kwa ajili ya ramani ya mtandaoni na akaunti za mfumo - ramani ya moja kwa moja au kiholela inawezekana (mtumiaji mmoja wa mfumo anaweza kuchorwa kwa mtumiaji mwingine pepe).
  • Ufunguo wa umma, ufunguo wa SSH, na uthibitishaji wa nenosiri unatumika (ikiwa ni pamoja na uthibitishaji shirikishi na ingizo la nenosiri la kibodi). Inawezekana kumfunga funguo kadhaa kwa kila mtumiaji, na pia kuanzisha uthibitishaji wa vipengele vingi na hatua nyingi (kwa mfano, katika kesi ya uthibitishaji wa ufunguo wa mafanikio, nenosiri linaweza kuombwa zaidi).
  • Inawezekana kusanidi mbinu tofauti za uthibitishaji kwa kila mtumiaji, na pia kufafanua mbinu zao wenyewe zinazotekelezwa kwa kupiga programu za uthibitishaji wa nje (kwa mfano, kwa uthibitishaji kupitia LDAP) au kutuma maombi kupitia API ya HTTP.
  • Inawezekana kuunganisha vidhibiti vya nje au simu za HTTP API ili kubadilisha vigezo vya mtumiaji, vinavyoitwa kabla ya mtumiaji kuingia. Imeungwa mkono yenye nguvu kuunda watumiaji kwenye muunganisho.
  • Msaada kwa upendeleo wa kibinafsi kwa saizi ya data na idadi ya faili.
  • Usaidizi wa uzuiaji wa bandwidth na mipangilio tofauti ya mipaka ya trafiki inayoingia na inayotoka, pamoja na mipaka ya idadi ya viunganisho vya wakati mmoja.
  • Zana za udhibiti wa ufikiaji zinazofanya kazi kuhusiana na mtumiaji au saraka (unaweza kuzuia kutazama orodha ya faili, kukataza kupakia, kupakua, kufuta, kufuta, kubadilisha jina au kubadilisha haki za ufikiaji, kukataza uundaji wa saraka au viungo vya ishara, n.k.).
  • Kwa kila mtumiaji, unaweza kufafanua vikwazo vya mtandao binafsi, kwa mfano, unaweza tu kuruhusu ufikiaji kutoka kwa IPs fulani au subnets.
  • Inasaidia muunganisho wa vichungi kwa maudhui yanayoweza kupakuliwa kuhusiana na watumiaji binafsi na saraka (kwa mfano, unaweza kuzuia upakuaji wa faili kwa kiendelezi fulani).
  • Unaweza kuwafunga washikaji ambao huzinduliwa wakati wa shughuli mbalimbali na faili (kupakia, kufuta, kubadilisha jina, nk). Mbali na vidhibiti vya kupiga simu, kutuma arifa kwa njia ya maombi ya HTTP kunatumika.
  • Kukomesha kiotomatiki kwa miunganisho isiyotumika.
  • Sasisho la usanidi wa atomiki bila kuvunja miunganisho.
  • Kutoa vipimo vya ufuatiliaji katika Prometheus.
  • Itifaki ya HAProxy PROXY inaauniwa ili kupanga kusawazisha upakiaji au miunganisho ya seva mbadala kwa huduma za SFTP/SCP bila kupoteza ufahamu wa anwani ya IP ya chanzo ya mtumiaji.
  • API YA REST kudhibiti watumiaji na saraka, kuunda nakala rudufu na kutoa ripoti kuhusu miunganisho inayotumika.
  • Kiolesura cha wavuti (http://127.0.0.1:8080/web) kwa usanidi na ufuatiliaji (usanidi kupitia faili za usanidi wa kawaida pia unatumika).
  • Uwezo wa kufafanua mipangilio katika muundo wa JSON, TOML, YAML, HCL na envfile.
  • Support miunganisho kupitia SSH na ufikiaji mdogo kwa amri za mfumo. Kwa mfano, inaruhusiwa kutekeleza amri zinazohitajika kwa Git (git-receive-pack, git-upload-pack, git-upload-archive) na rsync, pamoja na amri kadhaa zilizojengwa (scp, md5sum, sha*sum). , cd, pwd, sftpgo-copy na sftpgo-remove).
  • Njia portable kushiriki saraka moja ya kawaida na kizazi kiotomatiki cha vitambulisho vya muunganisho vinavyotangazwa kupitia DNS ya matangazo mengi.
  • Mfumo uliopachikwa maelezo mafupi kwa uchambuzi wa utendaji.
  • Imerahisishwa mchakato uhamishaji wa akaunti za mfumo wa Linux.
  • Uhifadhi kumbukumbu katika umbizo la JSON.

Chanzo: opennet.ru

Kuongeza maoni