Ilmus SFTPGo serveri 2.2 versioon, mis vĂ”imaldab korraldada kaugjuurdepÀÀsu failidele protokollide SFTP, SCP/SSH, Rsync, HTTP ja WebDav abil. SFTPGo-d saab kasutada ka Git-repositorite juurdepÀÀsu pakkumiseks SSH protokolli abil. Andmeid saab edastada nii kohalikust failisĂŒsteemist kui ka vĂ€listest salvestustest, mis on ĂŒhilduvad Amazon S3, Google Cloud Storage ja Azure Blob Storage'iga. Andmete salvestamine krĂŒpteeritud kujul on vĂ”imalik. Kasutajaandmete ja metaandmete salvestamiseks kasutatakse SQL- vĂ”i vĂ”tme/vÀÀrtuse formaadiga andmebaase, nagu PostgreSQL, MySQL, SQLite, CockroachDB vĂ”i bbolt, kuid on vĂ”imalik salvestada ka metaandmeid mĂ€lu sees, mis ei nĂ”ua vĂ€lise andmebaasi ĂŒhendamist. Projekti kood on kirjutatud Go keeles ja jagatakse GPLv3 litsentsi alusel.
Uues versioonis:
- Lisatud toe pakkumine kahefaktorilise autentimise jaoks, kasutades ĂŒhekordseid paroole, millel on piiratud kehtivusaeg (TOTP, RFC 6238). Autentifikaatoritena vĂ”ivad kasutada selliseid rakendusi nagu Authy ja Google Authenticator.
- Rakendatud on funktsionaalsuse laiendamise vĂ”imalus pistikprogrammide kaudu. Juba saadaval olevate pistikprogrammide hulgas on: tĂ€iendavate vĂ”tmevahetusteenuste tugi, Publish/Subscribe skeemi integreerimine, sĂŒndmuste teabe salvestamine ja otsing andmebaasis.
- REST API-s on lisatud autentimise tugi vÔtmete kaudu, lisaks JWT tokenitele, samuti on tagatud andmesalvestuspoliitikate mÀÀramine (andmete kehtivuse piiramine) seoses konkreetsete kataloogide ja kasutajatega. Vaikimisi on aktiivne Swagger UI liides API ressursside navigeerimiseks ilma vÀliste utiliitide kasutamiseta.
- Veebiliideses on lisatud kirjutamisoperatsioonide toetus (failide ĂŒleslaadimine, kataloogide loomine, ĂŒmbernimetamine ja kustutamine), vĂ”imaldatud on parooli lĂ€htestamine e-posti kinnitamisega, integreeritud on tekstifailide redaktor ja PDF-dokumentide vaatamise rakendus. Lisatud on vĂ”imalus luua HTTP-linke, et anda vĂ€listelt kasutajatelt ligipÀÀs eraldi failidele ja kataloogidele, koos vĂ”imalusega mÀÀrata eraldi juurdepÀÀsuparool, piirata IP-aadresside, mÀÀrata lingi kehtivusaeg ja laadimise arvu piiramine.
SFTPGo peamised funktsioonid:
- Iga konto jaoks rakendatakse chroot-isolatsiooni, mis piirab ligipÀÀsu kasutaja kodukataloogile. Virtuaalsete kataloogide loomine, mis viitavad andmetele vÀljaspool kasutaja kodukatalooge, on vÔimalik.
- Kontod salvestatakse virtuaalsesse kasutajate andmebaasi, mis ei sega sĂŒsteemi kasutajate andmebaasiga. Virtuaalsete kasutajate andmebaasi salvestamiseks vĂ”ivad kasutada SQLite, MySQL, PostgreSQL, bbolt ja mĂ€lus hoidmine. Pakutakse vahendeid virtuaalsete ja sĂŒsteemi kontode sidumiseks â on vĂ”imalik otse vĂ”i juhuslik sidumine (ĂŒks sĂŒsteemi kasutaja vĂ”ib olla seotud mitme virtuaalse kasutajaga).
- Toetatakse autentimist avalike vĂ”tmete, SSH vĂ”tmete ja paroolide kaudu (sealhulgas interaktiivne autentimine, kus parool sisestatakse klaviatuurilt). Iga kasutaja jaoks on vĂ”imalik siduda mitu vĂ”tit, samuti seadistada mitme teguri ja mitmeastmelist autentimist (nĂ€iteks vĂ”ib vĂ”tmega eduka autentimise korral tĂ€iendavalt kĂŒsida parooli).
- Iga kasutaja jaoks on vÔimalik seadistada erinevaid autentimismeetodeid ning mÀÀrata oma meetodid, mida rakendatakse vÀliste autentimisskripti kutse kaudu (nÀiteks LDAP kaudu autentimise jaoks) vÔi HTTP API kaudu pÀringute saatmise kaudu.
- VĂ”imalik on vĂ€liste töötlejate vĂ”i HTTP API kĂ”nede ĂŒhendamine kasutaja parameetrite dĂŒnaamiliseks muutmiseks, mis kutsutakse esile enne kasutaja sisselogimist. Toetatakse kasutajate dĂŒnaamilist loomist sisselogimise ajal.
- Toetatakse individuaalseid kvoote andmete suuruse ja failide arvu jaoks.
- Toetatakse ribalaiuse piiranguid eraldi seadistamisega sisse- ja vĂ€ljundliiklust kasutades ning piirangutega samaaegsete ĂŒhenduste arvule.
- LigipÀÀsu piiramise vahendid, mis kehtivad kasutaja vĂ”i katalooge sidudes (saab piirata failide loendi vaatamist, keelata ĂŒleslaadimise, allalaadimise, kirjutamise, kustutamise, ĂŒmbernimetamise vĂ”i juurdepÀÀsu muutmise, keelata kataloogide vĂ”i sĂŒmboolsete linkide loomise jne.).
- Iga kasutaja jaoks on vÔimalik mÀÀrata individuaalsed vÔrgu piirangud, nÀiteks vÔib lubada sisselogimise ainult teatud IP-delt vÔi alamvÔrkudest.
- Toetatakse laadimisfilterite ĂŒhendamist, mis on seotud ĂŒhe kasutaja ja kataloogidega (nĂ€iteks saab blokeerida teatud laiendiga failide ĂŒleslaadimise).
- VĂ”imalik on siduda kĂ€itlejad, mis aktiveeruvad erinevate failitoimingute (ĂŒleslaadimine, kustutamine, ĂŒmbernimetamine jne.) kĂ€igus. Lisaks kĂ€itlejate kutsumisele toetatakse teavituste saatmist HTTP-pĂ€ringute kujul.
- Automaatne aktiivsete ĂŒhenduste lĂ”petamine.
- Aatomaarne konfiguratsiooni uuendamine ilma ĂŒhenduste katkestamiseta.
- MÔÔdikute pakkumine jÀlgimiseks Prometheuses.
- Toetatakse HAProxy PROXY protokolli, et korraldada koormuse tasakaalustamist vĂ”i ĂŒhenduste proksimist SFTP/SCP teenustele ilma kasutaja algse IP-aadressi andmete kadumiseta.
- REST API kasutajate ja kataloogide haldamiseks, varukoopiate loomiseks ja aktiivsete ĂŒhenduste aruannete genereerimiseks.
- Veebiliides (http://127.0.0.1:8080/web) seadistamiseks ja jÀlgimiseks (toetatakse ka seadistamist lÀbi tavaliste konfiguratsioonifailide).
- VÔimalus mÀÀrata seadeid JSON, TOML, YAML, HCL ja envfile formaatides.
- SSH kaudu sisenemise toetamine sĂŒsteemi kĂ€skude piiratud juurdepÀÀsuga. NĂ€iteks on lubatud kĂ€skude kĂ€ivitamine, mis on vajalik Git'i (git-receive-pack, git-upload-pack, git-upload-archive) ja rsynci jaoks, samuti mĂ”ned sisseehitatud kĂ€sud (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy ja sftpgo-remove).
- Portable reĆŸiim, et jagada ĂŒhte ĂŒhist katalooge automaatse ĂŒhenduste genereerimisega, mis kuulutatakse vĂ€lja multicast DNS kaudu.
- Sisseehitatud profiilimissĂŒsteem tulemuslikkuse analĂŒĂŒsimiseks.
- Lihtsustatud protsess Linuxi sĂŒsteemi kontode migreerimiseks.
- Logide salvestamine JSON formaadis.
- Virtuaalkataloogide toimetamine (nĂ€iteks teatud katalooge saab edastada mitte kohalikust failisĂŒsteemist, vaid vĂ€lisest pilvesalvestusest).
- Cryptfs toetamine lĂ€bipaistvaks andmete krĂŒpteerimiseks reaalajas, kui need salvestatakse failisĂŒsteemi, ja dekrĂŒpteerimiseks edastamisel.
- Toetatakse ĂŒhenduste edastamist teistele SFTP serveritele.
- VĂ”imalus kasutada SFTPGo-d OpenSSH jaoks SFTP-alamsĂŒsteemina.
- VĂ”imalus salvestada raamatupidamis- ja konfidentsiaalseid andmeid krĂŒpteeritud kujul, kasutades KMS-servereid (Key Management Services), nagu Vault, GCP KMS, AWS KMS.
Allikas: opennet.ru
