Është publikuar lëshimi i serverit SFTPGo 2.2, i cili mundëson akses të largët në skedarë përmes protokolleve SFTP, SCP/SSH, Rsync, HTTP dhe WebDav. Ndër të tjera, SFTPGo mund të përdoret për të ofruar akses në repozitorët Git, duke përdorur protokollin SSH. Të dhënat mund të ofrohen si nga sistemi lokal i skedarëve ashtu edhe nga ruajtjet e jashtme, të përshtatshme për Amazon S3, Google Cloud Storage dhe Azure Blob Storage. Është e mundur ruajtja e të dhënave në formë të enkriptuar. Për ruajtjen e bazës së përdoruesve dhe metadatat përdoren DB me mbështetje SQL ose formati çelës/vlerë, si PostgreSQL, MySQL, SQLite, CockroachDB ose bbolt, por ka edhe mundësi për ruajtjen e metadatat në kujtesë, që nuk kërkon lidhje me një DB të jashtme. Kodi i projektit është shkruar në gjuhën Go dhe shpërndahet nën licencën GPLv3.
Në versionin e ri:
- Është shtuar mbështetje për autentifikimin me dy faktorë duke përdorur kode të njëhershme me afat të caktuar (TOTP, RFC 6238). Si autentifikues mund të përdoren aplikacione si Authy dhe Google Authenticator.
- Është realizuar mundësia e zgjerimit të funksionalitetit përmes plugineve. Mes plugineve që janë tashmë të disponueshëm: mbështetje për shërbime të tjera të shkëmbimit të çelësave, integrimi i skemës Publish/Subscribe, ruajtja dhe kërkimi i informacionit mbi ngjarjet në DB.
- Në REST API është shtuar mbështetje për autentifikimin me çelësa, përveç tokenëve JWT, dhe është siguruar mundësia e caktimit të politikave të ruajtjes së të dhënave (kufizimi i kohës së jetës së të dhënave) në lidhje me katalogët dhe përdoruesit e veçantë. Me default është aktivizuar ndërfaqja Swagger UI për navigimin në burimet e API pa përdorur mjete të jashtme.
- Në ndërfaqen web është shtuar mbështetje për operacionet e shkruajtur (ngarkimi i skedarëve, krijimi i katalogëve, ribërja dhe fshirja), është realizuar mundësia e rikrijimit të fjalëkalimit me konfirmim përmes email-it, janë integruar editori i skedarëve tekstualë dhe shikuesi i dokumenteve PDF. Është shtuar mundësia e krijimit të lidhjeve HTTP për të ofruar përdoruesve të jashtëm akses në skedarë dhe katalogë të veçantë, me mundësi për të caktuar një fjalëkalim të veçantë të aksesit, kufizime lidhur me IP adresat, caktimin e kohës së jetës së lidhjes dhe limitimin e numrit të ngarkimeve.
Funksionalitetet kryesore të SFTPGo:
- Për çdo llogari aplikohet izolimi chroot, i cili kufizon aksesin në katalogun e përdoruesit. Është e mundur të krijohen katalogë virtualë që referohen në të dhënat jashtë katalogut të përdoruesit.
- Llogaritë ruhen në një bazë virtuale të përdoruesve, e cila nuk ndërthuret me bazën e të dhënave sistemore. Për ruajtjen e bazës së të dhënave të përdoruesve mund të përdoren SQLite, MySQL, PostgreSQL, bbolt dhe ruajtje në memorje. Sigurohen mjete për përputhjen e llogarive virtuale dhe atyre sistemore – është e mundur përputhja direkte ose arbitrare (një përdorues i sistemit mund të jetë i përputhur me një përdorues tjetër virtual).
- Përkrahja e autentikimit me çelësa publikë, çelësa SSH dhe fjalëkalime (përfshirë autentikimin interaktiv me hyrje të fjalëkalimit nga tastiera). Mund të lidhen disa çelësa për çdo përdorues, si dhe të konfigurohet autentikimi me shumë faktorë dhe shumë hapa (për shembull, në rastin e një autentikimi të suksesshëm me çelës, mund të kërkohet një fjalëkalim shtesë).
- Për çdo përdorues është e mundur të konfigurohen metoda të ndryshme autentikimi, si dhe të përcaktohen metoda të veta që realizohen përmes thirrjes së programeve të jashtme autentikues (për shembull, për autentikimin përmes LDAP) ose dërgimit të kërkesave përmes HTTP API.
- Është e mundur të lidhen përpunues të jashtëm ose thirrje HTTP API për të ndryshuar dinamikisht parametrat e përdoruesve, të thirrura para hyrjes së përdoruesit. Përkrahja e krijimit dinamik të përdoruesve gjatë lidhjes.
- Përkrahja e kuotave individuale për madhësinë e të dhënave dhe numrin e skedarëve.
- Përkrahja e kufizimit të kapacitetit me konfigurim të veçantë për kufizimet e trafikut hyrës dhe dalës, si dhe kufizimeve për numrin e lidhjeve të njëkohshme.
- Mjete për ndarjen e aksesit, që veprojnë në lidhje me përdoruesin ose katalogun (mund të kufizohet shikimi i listës së skedarëve, të ndalohet ngarkimi, shkarkimi, rishkrimi, fshirja, rinovimi ose ndryshimi i të drejtave të aksesit, të ndalohet krijimi i katalogëve ose lidhjeve simbolike, etj.).
- Për çdo përdorues mund të përcaktohen kufizime individuale rrjeti, për shembull, mund të lejohet akses vetëm nga disa IP ose nënrrjeta të caktuara.
- Mbështetet lidhja e filtrave të përmbajtjes së ngarkuar në lidhje me përdorues të veçantë dhe katalogë (p.sh., mund të bllokoni ngarkimin e skedarëve me një prapashtesë të caktuar).
- Mundësia e lidhjes së menaxherëve që aktivizohen gjatë operacioneve të ndryshme me skedarin (ngarkim, fshirje, rinovim, etj.). Përveç thirrjes së menaxherëve, mbështetet dërgimi i njoftimeve në formën e kërkesave HTTP.
- Automatizimi i përfundimit të lidhjeve të paaktivizuara.
- Përditësimi atomar i konfigurimit pa ndërprerë lidhjet.
- Sigurimi i metrikave për monitorim në Prometheus.
- Mbështetet protokolli HAProxy PROXY për organizimin e balansimit të ngarkesës ose për proksimin e lidhjeve në shërbimet SFTP/SCP pa humbur informacionin mbi IP-në origjinale të përdoruesit.
- REST API për menaxhimin e përdoruesve dhe katalogëve, krijimin e kopjeve rezervë dhe formimin e raporteve mbi lidhjet aktive.
- Web-interfata (http://127.0.0.1:8080/web) për konfigurimin dhe monitorimin (mbështetet gjithashtu konfigurimi përmes skedave të zakonshme të konfigurimit).
- Mundësia e përcaktimit të konfigurimeve në formate JSON, TOML, YAML, HCL dhe envfile.
- Mbështetje për lidhjen përmes SSH me qasje të kufizuar në komandat sistemike. Për shembull, është e lejuar ekzekutimi i komandave të nevojshme për funksionimin e Git (git-receive-pack, git-upload-pack, git-upload-archive) dhe rsync, si dhe disa komanda të ndërtuara brenda (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy dhe sftpgo-remove).
- Modaliteti portable për ndarjen e një katalogu të përbashkët me gjenerimin automatik të kredencialeve për lidhje, të shpallura nëpërmjet multicast DNS.
- Sistemi i integruar i profilizimit për analizën e performancës.
- Proces i thjeshtëzuar i migrimit të llogarive sistemike Linux.
- Ruajtja e logëve në formatin JSON.
- Mbështetje për katalogët virtualë (p.sh., përmbajtja e një katalogu të caktuar mund të merret jo nga FS lokale, por nga një ruajtje e jashtme në re).
- Mbështetje për cryptfs për enkriptimin transparent të të dhënave në letër gjatë ruajtjes në FS dhe dekriptimin kur dorëzohet.
- Mbështetje për kalimin e lidhjeve në servera të tjerë SFTP.
- Mundësia e përdorimit të SFTPGo si një nënsi SFTP për OpenSSH.
- Mundësia e ruajtjes së të dhënave të llogarive dhe informacionit të ndjeshëm në formë të enkriptuar duke përdorur serverë KMS (Shërbimet e Menaxhimit të Çelësave), siç janë Vault, GCP KMS, AWS KMS.
Burimi: opennet.ru
