Megvalósult az első jelentős kiadás a szerverből , amely lehetővé teszi a távoli hozzáférést fájlokhoz SFTP, SCP/SSH és Rsync protokollok segítségével. Az SFTPGo használható Git-repozitóriumok elérésére is SSH protokollon keresztül. Az adatok helyben a fájlrendszerből vagy olyan külső tárolókból adhatók át, amelyek kompatibilisek az Amazon S3 és a Google Cloud Storage szolgáltatásaival. A felhasználói bázis és a metaadatok tárolására SQL támogatással rendelkező DBMS-eket, mint például a PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x vagy . Továbbá, van olyan mód is, amely lehetővé teszi a metaadatok tárolását a memóriában, külső adatbázis csatlakoztatása nélkül. A projekt kódja Go nyelven íródott és GPLv3 licenc alatt áll.
Főbb jellemzők:
- 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.
- Lehetséges külső kezelők vagy HTTP API hívások csatlakoztatása a felhasználói paraméterek dinamikus módosítására, amelyek a felhasználó belépése előtt hívódnak meg. Támogatja a felhasználók 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 a Prometheus monitorozáshoz.
- 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.
- felhasználók és könyvtárak kezelésére, biztonsági másolatok készítésére és aktív kapcsolatokra vonatkozó jelentések készítésére.
- (http://127.0.0.1:8080/web) a beállításokhoz és monitorozáshoz (ez a konfigurációs fájlok egyszerű beállítását is támogatja).
- Lehetőség beállítások megadására JSON, TOML, YAML, HCL és envfile formátumokban.
- korlátozott hozzáférésű SSH kapcsolatokhoz a rendszerparancsokhoz. Például engedélyezett parancsok indítása, amelyek szükségesek a Git működéséhez (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).
- Mód egy közös könyvtár közös használatához, automatikus csatlakozási adatok generálásával, amelyeket multicast DNS-en keresztül hirdetnek.
- Beépített rendszer a teljesítmény elemzésére.
- Egyszerűsített Linux rendszerfiókok migrálása.
- naplók JSON formátumban.
Forrás: opennet.ru
