Byla zveřejněna verze serveru SFTPGo 2.5.0, která umožňuje organizovat vzdálený přístup k souborům pomocí protokolů SFTP, SCP / SSH, Rsync, HTTP a WebDav a také poskytovat přístup k úložištím Git pomocí protokolu SSH. Data lze obsluhovat jak z místního systému souborů, tak z externího úložiště kompatibilního s Amazon S3, Google Cloud Storage a Azure Blob Storage. Data je možné ukládat v zašifrované podobě. Pro uložení uživatelské databáze a metadat se používají DBMS s podporou SQL nebo formátu klíč/hodnota, jako je PostgreSQL, MySQL, SQLite, CockroachDB nebo bbolt, ale nechybí ani možnost ukládání metadat do RAM, která nevyžaduje připojení k externí databázi. Kód projektu je napsán v Go a distribuován pod licencí GPLv3.
V nové verzi:
- Webové rozhraní poskytuje možnost zavřít chybové zprávy. Ve webovém rozhraní pro administrátora přibyla podpora vyhledávání v audit logu a exportu dat z něj, implementována správa seznamů IP adres a sítí a poskytnuta možnost konfigurace SMTP a typických ACME a SFTP parametrů. Klientské webové rozhraní implementovalo svůj vlastní přihlašovací formulář (místo základního ověřování), přidalo operace kopírování a odstranilo omezení velikosti stahování.
- Byla přidána podpora pro zásady hesel, například můžete definovat požadavky na sílu hesla a nastavit životnost hesla.
- Přidána možnost zobrazovat oznámení o vypršených heslech v EventManageru, implementována operace kopírování, přidána podpora pro předem volané akce (pre-*) a handlery, které jsou spouštěny určitými akcemi (například přidán handler volaný při přihlášení uživatele).
- Přidána možnost udělovat uživatelům administrátorská práva.
- Do rozhraní příkazového řádku byly přidány příkazy pro resetování hesla správce a kontrolu stavu služby.
- Přidána podpora podmíněných příkazů při hromadném přejmenovávání souborů na straně poskytovatelů cloudu.
- Přidána podpora pro sledování a automatické opětovné načítání certifikátů TLS.
- Přidána možnost definovat vlastní typy MIME pro WebDAV.
- SSH je standardně povoleno pro interaktivní ověřování klávesnice.
- V přenosném režimu bylo možné načíst hesla ze souboru.
- Přidána experimentální podpora pro službu Terraform.
Hlavní vlastnosti SFTPGo:
- Každý účet je chrootovaný, což omezuje přístup k domovskému adresáři uživatele. Je možné vytvořit virtuální adresáře, které odkazují na data mimo domovský adresář uživatele.
- Účty jsou uloženy ve virtuální databázi uživatelů, která se neprotíná s databází uživatelů systému. K ukládání uživatelských databází lze použít SQLite, MySQL, PostgreSQL, bbolt a in-memory storage. Jsou k dispozici 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).
- Je podporováno ověřování pomocí veřejného klíče, klíče SSH a hesla (včetně interaktivního ověřování se zadáním hesla z klávesnice). Pro každého uživatele je možné svázat několik klíčů a také nastavit vícefaktorovou a vícestupňovou autentizaci (např. v případě úspěšné autentizace klíče může být dodatečně požadováno heslo).
- Pro každého uživatele je možné nakonfigurovat různé metody autentizace a také definovat vlastní metody implementované voláním externích autentizačních programů (například pro autentizaci přes LDAP) nebo odesíláním požadavků přes HTTP API.
- Je možné připojit externí obslužné nástroje nebo volání HTTP API pro dynamickou změnu uživatelských nastavení, která jsou volána před přihlášením uživatele. Je podporováno dynamické vytváření uživatelů na připojení.
- Podpora individuálních kvót pro velikost dat a počet souborů.
- Podpora omezení šířky pásma se samostatným nastavením limitů pro příchozí a odchozí provoz a také limitů pro počet současných připojení.
- Nástroje pro řízení přístupu, které působí ve vztahu k uživateli nebo adresáři (můžete omezit prohlížení seznamu souborů, zakázat nahrávání, stahování, přepisování, mazání, přejmenování nebo změnu přístupových práv, zákaz vytváření adresářů nebo symbolických odkazů atd.).
- Pro každého uživatele můžete definovat individuální omezení sítě, například můžete povolit přístup pouze z určitých IP adres nebo podsítí.
- Podporuje připojení filtrů ke stažení obsahu ve vztahu k jednotlivým uživatelům a adresářům (můžete například zablokovat stahování souborů s určitou příponou).
- Můžete svázat handlery, které se spouštějí při různých operacích se souborem (načítání, mazání, přejmenování atd.). Kromě obslužných rutin volání je podporováno zasílání upozornění ve formě HTTP požadavků.
- Automatické ukončení neaktivních spojení.
- Aktualizace konfigurace atomu bez přerušení spojení.
- Poskytování metrik pro monitorování v Prometheus.
- Protokol HAProxy PROXY je podporován pro organizaci vyrovnávání zátěže nebo připojení proxy ke službám SFTP/SCP bez ztráty znalosti zdrojové IP adresy uživatele.
- REST API pro správu uživatelů a adresářů, vytváření záloh a hlášení o aktivních připojeních.
- Webové rozhraní (http://127.0.0.1:8080/web) pro konfiguraci a sledování (podporována je i konfigurace pomocí běžných konfiguračních souborů).
- Možnost definovat 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 požadované pro 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).
- Přenosný režim pro sdílení jednoho sdíleného adresáře s automatickým generováním přihlašovacích údajů pro připojení inzerovaných prostřednictvím multicast DNS.
- Vestavěný profilovací systém pro analýzu výkonu.
- Zjednodušený proces migrace systémového účtu Linux.
- Ukládání protokolů ve formátu JSON.
- Podpora virtuálních adresářů (například obsah určitého adresáře může být poskytnut nikoli z místního souborového systému, ale z externího cloudového úložiště).
- Podpora cryptfs pro transparentní průběžné šifrování dat při ukládání do FS a dešifrování při nahrávání.
- Podpora přesměrování připojení na jiné servery SFTP.
- Schopnost používat SFTPGo jako SFTP subsystém pro OpenSSH.
- Možnost ukládat přihlašovací údaje a důvěrná data v zašifrované podobě pomocí serverů KMS (služby správy klíčů), jako je Vault, GCP KMS, AWS KMS.
- Podpora dvoufaktorové autentizace pomocí jednorázových hesel s omezenou životností (TOTP, RFC 6238). Jako autentizátory lze použít aplikace jako Authy a Google Authenticator.
- Rozšíření funkčnosti pomocí pluginů. K dispozici jsou například zásuvné moduly s podporou dalších služeb výměny klíčů, integrace schématu Publish/Subscribe, ukládání a získávání informací o událostech v DBMS.
Zdroj: opennet.ru