Vydanie servera SFTPGo 2.2 bolo vydané a umožňuje vzdialený prístup k súborom pomocou protokolov SFTP, SCP/SSH, Rsync, HTTP a WebDav. SFTPGo môže byť tiež využívaný na prístup k Git-repozitárom pomocou protokolu SSH. Dátum môžu pochádzať z lokálneho súborového systému alebo z externých úložísk kompatibilných s Amazon S3, Google Cloud Storage a Azure Blob Storage. Je možné uchovávať dáta v zašifrovanej forme. Na ukladanie používateľských databáz a metadát sú používané databázy podporujúce SQL alebo formát kľúč/hodnota, ako sú PostgreSQL, MySQL, SQLite, CockroachDB alebo bbolt, ale je tu aj možnosť uchovávania metadát v operačnej pamäti, ktorá nevyžaduje pripojenie k externým databázam. Kód projektu je napísaný v jazyku Go a je distribuovaný pod licenciou GPLv3.
V novej verzii:
- Pridaná podpora dvojfaktorovej autentifikácie pomocou jednorazových hesiel s obmedzenou dobou platnosti (TOTP, RFC 6238). Ako autentifikátory môžu byť použité aplikácie ako Authy a Google Authenticator.
- Implementovaná možnosť rozšírenia funkčnosti prostredníctvom pluginov. Medzi už dostupné pluginy patrí podpora ďalších služieb výmeny kľúčov, integrácia schémy Publish/Subscribe a uchovávanie a vyhľadávanie informácií o udalostiach v databáze.
- V REST API bola pridaná podpora autentifikácie pomocou kľúčov, okrem tokenov JWT, ako aj bola poskytnutá možnosť nastavenia politík uchovávania údajov (obmedzenie doby života údajov) viazaných na jednotlivé adresáre a používateľov. Predvolený je aktivovaný rozhranie Swagger UI pre navigáciu po zdrojoch API bez použitia externých nástrojov.
- Do webového rozhrania bola pridaná podpora zápisových operácií (nahrávanie súborov, vytváranie adresárov, premenovanie a odstraňovanie), implementovaná bola možnosť resetovania hesla s potvrdením prostredníctvom emailu, integrovaný bol editor textových súborov a prehliadač PDF dokumentov. Pridaná bola možnosť vytvárať HTTP odkazy na poskytovanie prístupu externým používateľom k jednotlivým súborom a adresárom, s možnosťou nastavenia samostatného hesla prístupu, obmedzenia podľa IP adresy, nastavenia doby životnosti odkazu a limitovania počtu sťahovaní.
Hlavné funkcie SFTPGo:
- 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 volaní HTTP API na dynamickú zmenu používateľských parametrov, volaných pred prihlásením používateľa. Podporované je dynamické 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í.
- Poskytovanie metrik pre 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.
- REST API na správu používateľov a adresárov, vytvorenie záloh a generovanie správ o aktívnych pripojeniach.
- Webové rozhranie (http://127.0.0.1:8080/web) na nastavenie a monitoring (podporuje sa aj nastavenie prostredníctvom bežných konfiguračných súborov).
- Možnosť definovať nastavenia v formátoch JSON, TOML, YAML, HCL a envfile.
- Podpora pripojenia cez SSH s obmedzeným prístupom k systémovým príkazom. Napríklad je povolené 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 zabudovaných príkazov (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy a sftpgo-remove).
- Prenosný režim na zdieľanie jedného spoločného adresára s automatickým vygenerovaním prihlasovacích údajov pre pripojenie, oznámených cez multicast DNS.
- Vstavaný systém profilovania na analýzu výkonu.
- Zjednodušený proces migrácie systémových účtov Linux.
- Ukladanie logov vo formáte JSON.
- Podpora virtuálnych adresárov (napríklad obsah určitého adresára môže byť dodávaný nie z lokálneho FS, ale z externého cloudového úložiska).
- Podpora cryptfs na transparentné šifrovanie údajov za behu pri ukladaní do FS a dešifrovanie pri dodávaní.
- Podpora presmerovania pripojení na iné SFTP servery.
- Možnosť používať SFTPGo ako SFTP subsystém pre OpenSSH.
- Možnosť uchovávať účtovné a dôverné údaje vo šifrovanej forme s využitím KMS serverov (Key Management Services), ako sú Vault, GCP KMS, AWS KMS.
Zdroj: opennet.ru
