Megjelent az SFTPGo 2.2 verziója, amely lehetővé teszi a fájlok távoli elérését az SFTP, SCP/SSH, Rsync, HTTP és WebDav protokollok segítségével. Az SFTPGo Git-tárakhoz is hozzáférést biztosít az SSH protokoll használatával. Az adatok helyi fájlrendszerből, valamint Amazon S3, Google Cloud Storage és Azure Blob Storage-hoz kompatibilis külső tárolókból is származhatnak. Lehetőség van az adatok titkosított formában történő tárolására. A felhasználói adatbázis és a metaadatok SQL támogatású adatbázisokban vagy kulcs/érték formátumban, például PostgreSQL, MySQL, SQLite, CockroachDB vagy bbolt formátumban tárolhatók, de lehetőség van a metaadatok RAM-ban való tárolására is, amely nem igényel külső adatbázis csatlakozást. A projekt kódja Go nyelven íródott és GPLv3 licenc alatt terjesztik.
Az új verzióban:
- Hozzáadtuk a kétfaktoros hitelesítés támogatását, amely egyszer használatos jelszavakat használ (TOTP, RFC 6238). Hitelesítőként olyan alkalmazások használhatók, mint az Authy és a Google Authenticator.
- Lehetőség van a funkcionalitás kiegészítésére pluginok által. Az elérhető pluginok között szerepelnek: további kulcsmegosztó szolgáltatások támogatása, Publish/Subscribe séma integráció, események adatbázisban való tárolása és keresése.
- A REST API-hoz hozzáadtuk a kulcsalapú hitelesítést a JWT tokenek mellett, valamint lehetővé tettük az adatok tárolásának politikáit (az adatok élettartamának korlátozása) külön mappákhoz és felhasználókhoz kötötten. Alapértelmezés szerint aktiváltuk a Swagger UI felületet az API erőforrásainak navigációjához külső segédprogramok használata nélkül.
- A webes felülethez hozzáadtuk a fájlok feltöltésére, könyvtárak létrehozására, átnevezésére és törlésére szolgáló írási műveletek támogatását, valamint megvalósítottuk a jelszó visszaállításának lehetőségét email megerősítéssel, integráltuk a szövegszerkesztőt és a PDF-dokumentumok megjelenítőjét. Lehetőség nyílt HTTP-linkek létrehozására, amelyek külső felhasználóknak külön fájlokhoz és könyvtárakhoz biztosítanak hozzáférést, lehetőséggel a hozzáférés külön jelszavának beállítására, a link élettartamának korlátozására és a letöltési számok limitálására. IP-címek, a link élettartamának beállítására és a letöltések számának korlátozására.
Az SFTPGo főbb funkciói:
- Minden felhasználói fiók esetében chroot elszigetelési mód alkalmazható, amely korlátozza a felhasználó otthoni könyvtárához való hozzáférést. Lehetséges virtuális könyvtárakat létrehozni, amelyek kívül eső adatokra mutatnak a felhasználó otthoni könyvtárán.
- A fiókok egy virtuális felhasználói adatbázisban tárolódnak, amely nem ütközik a rendszer felhasználói adatbázisával. A felhasználói adatbázis tárolásához SQLite, MySQL, PostgreSQL, bbolt és memória alapú tárolás alkalmazható. Eszközök állnak rendelkezésre a virtuális és rendszer felhasználói fiókok összepárosítására — közvetlen vagy önkényes párosítás lehetséges (egy rendszer felhasználó egy másik virtuális felhasználóhoz rendelhető).
- Támogatott a kulcsalapú hitelesítés, SSH kulcsok és jelszavak (beleértve az interaktív hitelesítést a billentyűzeten beírt jelszóval). Lehetséges több kulcs bindelése minden felhasználóhoz, valamint többlépcsős és multi-faktoros hitelesítés beállítása (például, ha a kulcssal végzett hitelesítés sikeres, akkor további jelszó megadása is kérhető).
- Minden felhasználó esetében különböző hitelesítési módszerek konfigurálhatók, valamint saját módszerek definiálhatók, amelyek külső hitelesítő programok meghívásán (például LDAP hitelesítéshez) vagy HTTP API-n keresztül küldött kéréseken keresztül valósulnak meg.
- Lehetőség van külső kezelők vagy HTTP API hívások csatlakoztatására a felhasználói paraméterek dinamikus módosításához, amelyek a felhasználó belépése előtt aktiválódnak. Támogatja a felhasználók dinamikus létrehozását a csatlakozáskor.
- Támogatás egyedi kvótákra az adatok méretére és a fájlok számára.
- Támogatás sávszélesség-korlátozásra, külön beállításokkal a bejövő és kimenő forgalom számára, valamint a párhuzamos kapcsolatok számának korlátozására.
- Hozzáférés-ellenőrzési eszközök, amelyek felhasználóhoz vagy könyvtárhoz kötődnek (lehetséges a fájlok listájának megtekintésének korlátozása, feltöltés, letöltés, átnevezés, törlés, jogok módosítása, könyvtárak vagy szimbolikus linkek létrehozásának tilalma stb.).
- Minden felhasználó számára egyedi hálózati korlátozások határozhatók meg, például engedélyezhető a csatlakozás csak meghatározott IP-kről vagy alhálózatokról.
- Támogatott a bekapcsolt tartalomszűrők csatlakoztatása egyes felhasználókhoz és könyvtárakhoz (például lehetséges bizonyos kiterjesztésű fájlok feltöltésének blokkolása).
- Lehetséges kezelők hozzárendelése, amelyeket különböző fájlműveletek (feltöltés, törlés, átnevezés stb.) esetén indítanak. A kezelők meghívása mellett HTTP-kérések formájában értesítések küldése is támogatott.
- Automatikus megszakítás a tétlen kapcsolatokról.
- Atomikus konfigurációfrissítés kapcsolatmegszakítás nélkül.
- Metrikák biztosítása a Prometheus monitorozásához.
- Támogatta a HAProxy PROXY protokollt a terheléselosztás vagy a SFTP/SCP szolgáltatásokhoz való kapcsolódás megszervezésére anélkül, hogy elvesznének a felhasználó eredeti IP-címének adatai.
- REST API a felhasználók és könyvtárak kezelésére, biztonsági mentések készítésére és az aktív kapcsolatokról készült jelentések generálására.
- Webes felület (http://127.0.0.1:8080/web) a beállításhoz és monitorozáshoz (a hagyományos konfigurációs fájlokon keresztüli beállítás is támogatott).
- Lehetőség beállítások megadására JSON, TOML, YAML, HCL és envfile formátumokban.
- SSH kapcsolatok korlátozott hozzáféréssel a rendszer parancsaihoz. Például engedélyezett a Git működéséhez szükséges parancsok (git-receive-pack, git-upload-pack, git-upload-archive) és rsync, valamint néhány beépített parancs (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy és sftpgo-remove) futtatása.
- Portable mód egy közös könyvtár megosztására automatikus csatlakozási hitelesítő adatok generálásával, amelyeket multicast DNS-en keresztül hirdet.
- Beépített profilosító rendszer a teljesítmény elemzésére.
- Egyszerűsített folyamat a Linux rendszerfelhasználók migrálásához.
- A naplók tárolása JSON formátumban.
- Virtuális könyvtárak támogatása (például egy adott könyvtár tartalmát nem a helyi fájlrendszerből, hanem egy külső felhő tárolóból lehet szolgáltatni).
- A cryptfs támogatása az adatok átlátható titkosítására menet közben, a fájlrendszerbe mentéskor és a kiadáskor történő visszafejtéskor.
- Kapcsolatok továbbításának támogatása más SFTP szerverekhez.
- Lehetőség az SFTPGo használatára az OpenSSH SFTP-alrendszereként.
- A felhasználói és bizalmas adatok titkosítva tárolhatók KMS szerverek (Key Management Services) használatával, mint például Vault, GCP KMS, AWS KMS.
Forrás: opennet.ru
