Ir publicēta SFTPGo 2.2 servera versija, kas ļauj organizēt attālinātu piekļuvi failiem, izmantojot SFTP, SCP/SSH, Rsync, HTTP un WebDav protokolus. SFTPGo var izmantot arī, lai sniegtu piekļuvi Git repozitāriem, izmantojot SSH protokolu. Dati var tikt pārsūtīti gan no vietējās failu sistēmas, gan no ārējiem glabāšanas risinājumiem, kas saderīgi ar Amazon S3, Google Cloud Storage un Azure Blob Storage. Ir iespējama datu glabāšana šifrētā veidā. Lietotāju bāzes un metadatu uzglabāšanai tiek izmantotas datu bāzes, kas atbalsta SQL vai atslēga/vērtība formātu, piemēram, PostgreSQL, MySQL, SQLite, CockroachDB vai bbolt, taču pastāv iespēja saglabāt metadatus RAM, kas neprasa ārējas datu bāzes pieslēgšanu. Projekta kods ir uzrakstīts Go valodā un tiek izplatīts ar GPLv3 licenci.
Jaunajā versijā:
- Pievienota divfaktoru autentifikācijas atbalsts, izmantojot viena laika paroles ar ierobežotu derīguma termiņu (TOTP, RFC 6238). Kā autentifikatori var tikt izmantotas tādas lietotnes kā Authy un Google Authenticator.
- Ieviesta iespēja paplašināt funkcionalitāti ar spraudņiem. Starp jau pieejamajiem spraudņiem ir atbalsts papildu atslēgu apmaiņas pakalpojumiem, publicēšanas/abonēšanas shēmas integrācija, informācijas par notikumiem uzglabāšana un meklēšana datu bāzē.
- REST API ir pievienots atbalsts autentifikācijai, izmantojot atslēgas, papildus JWT žetoniem, kā arī ir nodrošināta iespēja noteikt datu uzglabāšanas politikas (datu derīguma termiņa ierobežojumi) saistībā ar konkrētiem katalogiem un lietotājiem. Noklusējumā ir aktivizēta Swagger UI saskarne, lai pārlūkotu API resursus bez ārējo rīku izmantošanas.
- Web interfeisā ir pievienots atbalsts rakstīšanas operācijām (failu augšupielāde, katalogu izveide, pārdēvēšana un dzēšana), ieviesta paroles atiestatīšanas iespēja ar e-pasta apstiprinājumu, integrēti teksta failu redaktors un PDF dokumentu skatītājs. Pievienota iespēja izveidot HTTP saites, lai sniegtu ārējiem lietotājiem piekļuvi atsevišķiem failiem un katalogiem, ar iespēju noteikt atsevišķu piekļuves paroli, ierobežot IP adresēmsaite dzīvotspēju un lejupielāžu skaitu.
Galvenās SFTPGo iespējas:
- Katram lietotāja kontam tiek piemērota chroot izolācija, kas ierobežo piekļuvi lietotāja mājas katalogam. Ir iespējams izveidot virtuālos katalogus, kas atsaucas uz datiem ārpus lietotāja mājas katalogā.
- Lietotāju konti tiek glabāti virtuālajā lietotāju datubāzē, kas nesakrīt ar sistēmas lietotāju datubāzi. Lietotāju datubāzēm var izmantot SQLite, MySQL, PostgreSQL, bbolt un uzkrāšanu atmiņā. Nodrošināti rīki virtuālo un sistēmas kontu saskarnes mappēšanai — ir iespējama tieša vai brīva saskarnes mappēšana (viens sistēmas lietotājs var būt saistīts ar citu virtuālo lietotāju).
- Atbalsta autentifikāciju ar atslēgām, SSH atslēgām un parolēm (ieskaitot interaktīvo autentifikāciju, ievadot paroli no tastatūras). Ir iespējams pievienot vairākas atslēgas katram lietotājam, kā arī iestatīt multifaktoru un solis pa solim autentifikāciju (piemēram, pēc veiksmīgas autentifikācijas ar atslēgu, var tikt lūgts ievadīt paroli).
- Katram lietotājam ir iespējams konfigurēt dažādas autentifikācijas metodes, kā arī noteikt savas metodes, kas tiek īstenotas, izmantojot ārēju autentifikācijas programmu izsaukumu (piemēram, autentifikācijai caur LDAP) vai HTTP API pieprasījumu nosūtīšanu.
- Ir iespējams pieslēgt ārējus procesorus vai HTTP API izsaukumus, lai dinamiski mainītu lietotāja parametrus, kas tiek izsaukti pirms lietotāja pieteikšanās. Atbalsta dinamiski izveidot lietotājus pieslēgšanās brīdī.
- Atbalsts individuālām kvotām datu apjomam un failu skaitam.
- Atbalsts joslas platuma ierobežojumiem ar atsevišķu ierobežojumu iestatīšanu ienākošajam un izejošajam datplūdumam, kā arī ierobežojumiem vienlaicīgu savienojumu skaitam.
- Piekļuves kontroles rīki, kas darbojas saistībā ar lietotāju vai katalogu (var ierobežot failu saraksta skatīšanu, aizliegt augšupielādi, lejupielādi, pārrakstīšanu, dzēšanu, pārdēvēšanu vai tiesību maiņu, kā arī aizliegt katalogu vai simbolisko saišu izveidi u.c.).
- Katram lietotājam var noteikt individuālus tīkla ierobežojumus, piemēram, var atļaut piekļuvi tikai no noteiktiem IP adresēm vai apakštīkliem.
- Atbalsta iekļaušanas filtrus augšupielādējamam saturam, saistot tos ar atsevišķiem lietotājiem un katalogiem (piemēram, var bloķēt noteiktu paplašinājumu failu augšupielādi).
- Iespējama apstrādātāju saistīšana, kas tiek izsaukta, veicot dažādas darbības ar failu (augšupielāde, dzēšana, pārdēvēšana utt.). Papildus apstrādātāju izsaukšanai tiek atbalstīta paziņojumu nosūtīšana HTTP pieprasījumu veidā.
- Automātiska neaktīvo savienojumu pārtraukšana.
- Atomāra konfigurācijas atjaunināšana bez savienojumu pārtraukšanas.
- Metriku sniegšana uzraudzībai Prometheus.
- Atbalsta HAProxy PROXY protokolu, lai organizētu slodzes līdzsvarošanu vai savienojumu proksēšanu uz SFTP/SCP pakalpojumiem bez informācijas par oriģinālo lietotāja IP adresi zaudēšanas.
- REST API lietotāju un katalogu pārvaldībai, dublēšanas izveidei un aktīvo savienojumu pārskatu veidošanai.
- Web interfeiss (http://127.0.0.1:8080/web) konfigurācijas iestatīšanai un uzraudzībai (atbalsta arī iestatīšanu caur parastiem konfigurācijas failiem).
- Iespēja noteikt iestatījumus JSON, TOML, YAML, HCL un envfile formātu.
- Atbalsts SSH pieslēgšanai ar ierobežotu piekļuvi sistēmas komandām. Piemēram, ir atļauts izsaukt komandas, kas nepieciešamas Git darbībai (git-receive-pack, git-upload-pack, git-upload-archive) un rsync, kā arī dažas iebūvētas komandas (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy un sftpgo-remove).
- Portable režīms vienas kopīgas katalogs koplietošanai ar automātisku izveidi pieslēgšanās identifikācijas datiem, kas tiek paziņoti caur multicast DNS.
- Iebūvēta profilēšanas sistēma snieguma analīzei.
- Vienkāršots Linux sistēmas lietotāju migrācijas process.
- Žurnālu uzglabāšana JSON formātā.
- Atbalsts virtuālajiem katalogiem (piemēram, noteikta kataloga saturs var tikt nodots ne no lokālā FS, bet no ārējā mākoņa krātuves).
- Atbalsts cryptfs caurspīdīgai datu šifrēšanai reālajā laikā, saglabājot tos FS, un dešifrēšanai to nodošanā.
- Atbalsts savienojumu pārsūtīšanai uz citiem SFTP serveriem.
- Iespēja izmantot SFTPGo kā SFTP apakšsistēmu OpenSSH.
- Iespēja uzglabāt uzskaites un konfidenciālos datus šifrētā veidā, izmantojot KMS serverus (Key Management Services), piemēram, Vault, GCP KMS, AWS KMS.
Avots: opennet.lv
