Prezentoval sa prvý významný vydanie servera , ktorý umožňuje organizovať vzdialený prístup k súborom pomocou protokolov SFTP, SCP/SSH a Rsync. SFTPGo sa môže používať aj na poskytovanie prístupu k Git-repozitárom pomocou protokolu SSH. Dáta môžu byť poskytované z lokálneho súborového systému alebo z externých úložísk kompatibilných s Amazon S3 a Google Cloud Storage. Na ukladanie používateľskej databázy a metadát sa používajú SDB s podporou SQL alebo formátu kľúč/hodnota, ako sú PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x alebo . Existuje tiež režim ukladania metadát v operačnej pamäti, ktorý nevyžaduje pripojenie externého DB. Kód projektu je napísaný v jazyku Go a je pod licenciou GPLv3.
Hlavné vlastnosti:
- Pre každé používateľské konto sa aplikuje chroot izolácia, ktorá obmedzuje prístup k domovskému adresáru používateľa. Je možné vytvárať virtuálne adresáre, ktoré odkazujú na dáta mimo používateľského domovského adresára.
- Účty sú uložené vo virtuálnej databáze používateľov, ktorá sa neprekrýva so systémovou DB používateľov. Na ukladanie databázy používateľov môžu byť použité SQLite, MySQL, PostgreSQL, bbolt a ukladanie do pamäte. Poskytujú sa prostriedky na zmapovanie virtuálnych a systémových účtov - je možné priame alebo ľubovoľné mapovanie (jeden systémový používateľ môže byť mapovaný na iného virtuálneho používateľa).
- Podporuje sa autentifikácia pomocou verejných kľúčov, SSH kľúčov a hesiel (vrátane interaktívnej autentifikácie s vložením hesla z klávesnice). Je možné priradiť viacero kľúčov pre každého používateľa, ako aj nastaviť multifaktorovú a viaczložkovú autentifikáciu (napríklad v prípade úspešnej autentifikácie pomocou kľúča môže byť dodatočne požadované heslo).
- Pre každého používateľa je možné nastaviť rôzne metódy autentifikácie a definovať vlastné metódy, realizované prostredníctvom volania externých autentifikačných programov (napríklad na autentifikáciu cez LDAP) alebo zasielaním požiadaviek cez HTTP API.
- Možné je pripojenie externých spracovateľov alebo volanie HTTP API na dynamickú zmenu používateľských parametrov, ktoré sa vyžadujú pred prihlásením používateľa. Podporuje sa vytváranie používateľov pri pripojení.
- Podpora individuálnych kvót na veľkosť dát a počet súborov.
- Podpora obmedzenia priepustnosti s oddeleným nastavením obmedzení pre prichádzajúcu a odchádzajúcu prevádzku, ako aj obmedzení na počet súčasných pripojení.
- Prostriedky na obmedzenie prístupu, ktoré fungujú v súvislosti s používateľom alebo adresárom (možno obmedziť zobrazenie zoznamu súborov, zakázať nahrávanie, sťahovanie, prepísanie, odstraňovanie, premenovanie alebo zmenu prístupových práv, zakázať vytváranie adresárov alebo symbolických odkazov atď.).
- Pre každého používateľa je možné nastaviť individuálne sieťové obmedzenia, napríklad povoliť prístup len z určitých IP adries alebo podsietí.
- Podporuje sa pripojenie filtrov sťahovaného obsahu viazaných na jednotlivých používateľov a adresáre (napríklad je možné blokovať sťahovanie súborov s určitou príponou).
- Je možné pripojiť spracovateľov, ktoré sa spúšťajú pri rôznych operáciách so súborom (nahrávanie, mazanie, premenovanie atď.). Okrem volania spracovateľov sa podporuje aj odosielanie oznámení vo forme HTTP požiadaviek.
- Automatické ukončenie neaktívnych pripojení.
- Atonomné aktualizácie konfigurácie bez prerušenia pripojení.
- metriky na monitorovanie v Prometheus.
- Podporuje sa protokol HAProxy PROXY na organizovanie vyrovnávania záťaže alebo proxy pripojení k službám SFTP/SCP bez straty údajov o pôvodnej IP adrese používateľa.
- na správu používateľov a adresárov, vytváranie záloh a generovanie správ o aktívnych pripojeniach.
- (http://127.0.0.1:8080/web) na nastavenie a monitorovanie (podporovaná je aj konfigurácia pomocou bežných konfiguračných súborov).
- Možnosť definovať nastavenia v formátoch JSON, TOML, YAML, HCL a envfile.
- pripojenia cez SSH s obmedzeným prístupom k systémovým príkazom. Napríklad, spúšťanie príkazov potrebných na prácu s Git (git-receive-pack, git-upload-pack, git-upload-archive) a rsync, ako aj niekoľkých vstavaných príkazov (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy a sftpgo-remove) je povolené.
- Režim na spoločné zdieľanie jedného spoločného adresára s automatickým generovaním prihlasovacích údajov na pripojenie, ktoré sú ohlásené cez multicast DNS.
- Integrovaný systém na analýzu výkonnosti.
- Jednoduchý migrácie systémových účet Linux.
- logov vo formáte JSON.
Zdroj: opennet.ru
