Byl vydán server SFTPGo verze 2.5.0, který umožňuje zajištění vzdáleného přístupu k souborům pomocí protokolů SFTP, SCP/SSH, Rsync, HTTP a WebDav, a také pro poskytování přístupu k Git repozitářům pomocí protokolu SSH. Data mohou být poskytována jak z místního souborového systému, tak z externích úložišť kompatibilních s Amazon S3, Google Cloud Storage a Azure Blob Storage. Je schopné uchovávat data v zašifrované podobě. Pro ukládání uživatelské databáze a metadat se používají databáze s podporou SQL nebo formátu klíč/hodnota, jako jsou PostgreSQL, MySQL, SQLite, CockroachDB nebo bbolt, ale je zde i možnost ukládání metadat v operační paměti, což nevyžaduje připojení k externí databázi. Kód projektu je napsán v jazyce Go a je distribuován pod licencí GPLv3.
V nové verzi:
- V webovém rozhraní byla přidána možnost zablokování chybových hlášení. V webovém rozhraní pro administrátora byla přidána podpora vyhledávání v auditních protokolech a exportování dat z nich, bylo zavedeno řízení seznamů IP adress a sítí, byla umožněna konfigurace SMTP a typických parametrů ACME a SFTP. V klientském webovém rozhraní byla zavedena vlastní přihlašovací forma (na místo basic auth), přidány operace kopírování a odstraněno omezení na velikost nahrávek.

- Byla přidána podpora politik používání hesel, například lze definovat požadavky na složitost hesla a nastavit dobu platnosti hesla.
- V EventManageru byla přidána možnost výstupu oznámení o vypršaných heslech, zavedena operace kopírování, přidána podpora předvolaných akcí (pre-*) a zpracovatelů, které se spouštějí při určitých akcích (například byl přidán zpracovatel, který se spouští při přihlášení uživatele).
- Byla přidána možnost udělování uživatelům pravomocí administrátora.
- Do příkazového rozhraní byly přidány příkazy pro resetování hesla administrátora a kontrolu funkčnosti služby.
- Byla přidána podpora podmínkových operátorů při provádění hromadného přejmenování souborů na straně cloudových poskytovatelů.
- Byla přidána podpora sledování a automatického restartování TLS certifikátů.
- Byla přidána možnost definování vlastních MIME typů pro WebDAV.
- Pro SSH je výchozí nastavení interaktivní autentizace pomocí klávesnice.
- V přenosném režimu byla přidána možnost nahrávat hesla ze souboru.
- Přidána experimentální podpora služby Terraform.
Hlavní funkce SFTPGo:
- Pro každý účet se aplikuje chroot-izolace, která omezuje přístup pouze na domovský adresář uživatele. Je možné vytvářet virtuální adresáře, které odkazují na data mimo domovský adresář uživatele.
- Účty jsou uchovávány ve virtuální databázi uživatelů, která se nepřekrývá se systémovou databází uživatelů. Pro uchování databáze uživatelů mohou být použity SQLite, MySQL, PostgreSQL, bbolt a uchovávání v paměti. Jsou poskytovány prostředky pro mapování virtuálních a systémových účtů — je možné přímé nebo libovolné mapování (jeden systémový uživatel může být mapován na jiného virtuálního uživatele).
- Podporuje se autentizace pomocí veřejných klíčů, SSH klíčů a hesel (včetně interaktivní autentizace se zadáním hesla z klávesnice). Je možné přiřadit několik klíčů pro každého uživatele, stejně jako nastavit vícestupňovou a vícefaktorovou autentizaci (například v případě úspěšné autentizace pomocí klíče může být navíc požadováno heslo).
- Pro každého uživatele je možné nastavit různé metody autentizace, stejně jako definovat vlastní metody, které se implementují prostřednictvím volání externích autentizačních programů (například pro autentizaci přes LDAP) nebo zasíláním požadavků prostřednictvím HTTP API.
- Je možné připojit externí zpracovatele nebo volání HTTP API pro dynamickou změnu uživatelských parametrů před přihlášením uživatele. Podporuje se dynamické vytváření uživatelů při připojení.
- Podpora individuálních kvót pro objem dat a počet souborů.
- Podpora omezení šířky pásma s odděleným nastavením pro příchozí a odchozí provoz, stejně jako omezení na počet současných připojení.
- Prostředky pro řízení přístupu, působící na základě uživatele nebo adresáře (například lze omezit zobrazení seznamu souborů, zakázat nahrávání, stahování, přepisování, mazání, přejmenovávání nebo měnění oprávnění, a zakázat vytváření adresářů nebo symbolických odkazů atd.).
- Pro každého uživatele lze stanovit individuální síťová omezení, například povolit přístup pouze z určitých IP adres nebo podsítí.
- Podporuje se připojení filtrů nahrávaného obsahu vázaných na jednotlivé uživatele a adresáře (například lze blokovat nahrávání souborů s určitými příponami).
- Možnost připojení obslužných programů, které se spouští při různých operacích se soubory (nahrávání, mazání, přejmenovávání atd.). Kromě vyvolání obslužných programů se podporuje odesílání upozornění formou HTTP požadavků.
- Automatické ukončení neaktivních připojení.
- Atomické aktualizace konfigurace bez přerušení připojení.
- Poskytování metrik pro monitoring v Prometheu.
- Podporuje se protokol HAProxy PROXY pro organizaci vyvažování zátěže nebo pro proxy připojení k SFTP/SCP službám bez ztráty informací o původní IP adrese uživatele.
- REST API pro správu uživatelů a adresářů, vytváření záloh a generování zpráv o aktivních připojeních.
- Webové rozhraní (http://127.0.0.1:8080/web) pro nastavení a monitorování (podporováno je také nastavení prostřednictvím obyčejných konfiguračních souborů).

- Možnost stanovení nastavení ve formátech JSON, TOML, YAML, HCL a envfile.
- Podpora připojení přes SSH s omezeným přístupem k systémovým příkazům. Například je povoleno spouštět příkazy potřebné pro činnost Git (git-receive-pack, git-upload-pack, git-upload-archive) a rsync, stejně jako několik vestavěných příkazů (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy a sftpgo-remove).
- Portable režim pro sdílení jednoho společného adresáře s automatickou generací přihlašovacích údajů pro připojení, vyhlašovaných prostřednictvím multicast DNS.
- Vestavěný profilový systém pro analýzu výkonu.
- Zjednodušený proces migrace systémových uživatelských účtů Linux.
- Ukládání protokolů ve formátu JSON.
- Podpora virtuálních adresářů (například obsah určitého adresáře lze poskytovat nikoli z místního FS, ale z externího cloudového úložiště).
- Podpora cryptfs pro transparentní šifrování dat za běhu při ukládání do FS a dešifrování při předávání.
- Podpora přesměrování připojení na jiné SFTP servery.
- Možnost použití SFTPGo jako SFTP subsystému pro OpenSSH.
- Možnost uchovávat uživatelská a důvěrná data v zašifrované podobě pomocí KMS serverů (Key Management Services), jako jsou Vault, GCP KMS, AWS KMS.
- Podpora dvoufázové autentizace pomocí jednorázových hesel s omezenou životností (TOTP, RFC 6238). Jako autentifikátory mohou být používány aplikace jako Authy a Google Authenticator.
- Rozšíření funkcionality prostřednictvím pluginů. Například jsou k dispozici pluginy s podporou dalších služeb pro výměnu klíčů, integraci schématu Publish/Subscribe, uchovávání a vyhledávání informací o událostech v SQL databázi.
Zdroj: opennet.ru


