Bol spustený release servera SFTPGo 2.5.0, ktorý umožňuje zorganizovať vzdialený prístup k súborom pomocou protokolov SFTP, SCP/SSH, Rsync, HTTP a WebDav, ako aj pre poskytnutie prístupu k Git repozitárom pomocou protokolu SSH. Dáta môžu byť odovzdávané ako z miestneho súborového systému, tak aj 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ľskej databázy a metadát sa používajú DBMS s podporou SQL alebo formátu kľúč/hodnota, ako sú PostgreSQL, MySQL, SQLite, CockroachDB alebo bbolt, ale existuje aj možnosť uchovávania metadát v operačnej pamäti, ktorá nevyžaduje pripojenie externé DB. Kód projektu je napísaný v jazyku Go a distribuuje sa pod licenciou GPLv3.
V novej verzii:
- V webovom rozhraní je pridaná možnosť uzatvorenia správ o chybách. V webovom rozhraní pre administrátora bola pridaná podpora vyhľadávania v audítorskom logu a exportu údajov z neho, implementované riadenie zoznamov. IP adresy a sietí, pridaná možnosť nastavenia SMTP a typových parametrov ACME a SFTP. V klientskom webovom rozhraní bola implementovaná vlastná prihlasovacia forma (namiesto základnej autentifikácie), pridané operácie kopírovania a odstránené obmedzenie na veľkosť nahrávaní.

- Bola pridaná podpora politík používania hesiel, napríklad je možné definovať požiadavky na spoľahlivosť hesla a nastaviť dobu platnosti hesla.
- V EventManager bola pridaná možnosť výstupu upozornení o uplynutých heslách, implementovaná operácia kopírovania, pridaná podpora predvolaných akcií (pre-*) a spracovateľov, ktorí sa spúšťajú pri určitých činnostiach (napríklad bol pridaný spracovateľ, ktorý sa spúšťa pri prihlásení používateľa).
- Bola pridaná možnosť poskytovania používateľom práv administrátora.
- Do rozhrania príkazového riadku boli pridané príkazy na resetovanie hesla administrátora a kontrolu funkčnosti služby.
- Bola pridaná podpora podmienečných operátorov pri vykonávaní hromadného premenovania súborov na strane cloudových poskytovateľov.
- Bola pridaná podpora sledovania a automatického reštartovania. TLS-certifikátov.
- Bola pridaná možnosť definovania vlastných MIME typov pre WebDAV.
- Pre SSH je predvolená interaktívna autentifikácia s použitím klávesnice.
- V prenosnom režime bola pridaná možnosť nahrávania hesiel zo súboru.
- Pridaná experimentálna podpora služby Terraform.
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.
- Podpora dvojfaktorovej autentifikácie s použitím jednorazových hesiel s obmedzenou platnosťou (TOTP, RFC 6238). Ako autentifikátory môžu byť použité aplikácie ako Authy a Google Authenticator.
- Rozšírenie funkčnosti prostredníctvom pluginov. Napríklad sú dostupné pluginy s podporou ďalších služieb výmeny kľúčov, integrácie schémy Publish/Subscribe, uchovávania a vyhľadávania informácií o udalostiach v DBMS.
Zdroj: opennet.ru


