Lëshimi i serverit SFTP SFTPGo 1.0

U bë lëshimi i parë i rëndësishëm i serverit SFTPGo 1.0, i cili ju lejon të organizoni qasje në distancë në skedarë duke përdorur protokollet SFTP, SCP/SSH dhe Rsync. Ndër të tjera, SFTPGo mund të përdoret për të siguruar akses në depot e Git duke përdorur protokollin SSH. Të dhënat mund të transferohen si nga sistemi lokal i skedarëve ashtu edhe nga ruajtja e jashtme e pajtueshme me Amazon S3 dhe Google Cloud Storage. Për të ruajtur bazën e të dhënave të përdoruesit dhe të dhënat meta, përdoren DBMS me mbështetje për SQL ose format kyç/vlerë, si PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x ose bbolt 1.3.x. Ekziston gjithashtu një mënyrë për ruajtjen e meta të dhënave në RAM, e cila nuk kërkon lidhjen e një baze të dhënash të jashtme. Kodi i projektit është shkruar në Shko dhe shperndare nga licencuar sipas GPLv3.

Karakteristikat kryesore:

  • Çdo llogari është chrooted, duke kufizuar aksesin në drejtorinë kryesore të përdoruesit. Është e mundur të krijohen drejtori virtuale që referojnë të dhënat jashtë drejtorisë kryesore të përdoruesit.
  • Llogaritë ruhen në një bazë të dhënash virtuale të përdoruesve që nuk mbivendoset me bazën e të dhënave të përdoruesve të sistemit. SQLite, MySQL, PostgreSQL, bbolt dhe ruajtja në memorie mund të përdoren për të ruajtur bazat e të dhënave të përdoruesve. Ofrohen lehtësira për hartëzimin e llogarive virtuale dhe të sistemit - është e mundur hartimi i drejtpërdrejtë ose i rastësishëm (një përdorues i sistemit mund të hartohet me një përdorues tjetër virtual).
  • Autentifikimi duke përdorur çelësat publikë, çelësat SSH dhe fjalëkalimet mbështetet (përfshirë vërtetimin interaktiv me një fjalëkalim të futur nga tastiera). Është e mundur të lidhni çelësa të shumtë për secilin përdorues, si dhe të vendosni vërtetimin me shumë faktorë dhe me shumë hapa (për shembull, në rastin e vërtetimit të suksesshëm të çelësit, një fjalëkalim mund të kërkohet shtesë).
  • Për secilin përdorues, është e mundur të konfiguroni metoda të ndryshme të vërtetimit, si dhe të përcaktoni metodat tuaja, të zbatuara duke thirrur programe të autentifikimit të jashtëm (për shembull, për vërtetim nëpërmjet LDAP) ose duke dërguar kërkesa nëpërmjet API-së HTTP.
  • Është e mundur të lidhni mbajtës të jashtëm ose thirrje HTTP API për të ndryshuar në mënyrë dinamike parametrat e përdoruesit, të thirrur përpara se përdoruesi të identifikohet. Mbështetur dinamike krijimi i përdoruesve pas lidhjes.
  • Mbështet kuota individuale për madhësinë e të dhënave dhe numrin e skedarëve.
  • Mbështetje për kufizimin e gjerësisë së brezit me konfigurim të veçantë të kufizimeve për trafikun në hyrje dhe në dalje, si dhe kufizime në numrin e lidhjeve të njëkohshme.
  • Mjetet e kontrollit të aksesit që funksionojnë në lidhje me një përdorues ose drejtori (mund të kufizoni shikimin e një liste skedarësh, të ndaloni ngarkimin, shkarkimin, mbishkrimin, fshirjen, riemërtimin ose ndryshimin e të drejtave të aksesit, të ndaloni krijimin e drejtorive ose lidhjeve simbolike, etj.).
  • Për çdo përdorues, mund të përcaktoni kufizime individuale të rrjetit, për shembull, mund të lejoni hyrje vetëm nga IP ose nënrrjeta të caktuara.
  • Ai mbështet lidhjen e filtrave për përmbajtjen e shkarkuar në lidhje me përdoruesit dhe drejtoritë individuale (për shembull, mund të bllokoni shkarkimin e skedarëve me një shtesë të caktuar).
  • Është e mundur të lidhni mbajtësit që lëshohen gjatë operacioneve të ndryshme me një skedar (shkarkoni, fshini, riemërtoni, etj.). Përveç përpunuesve të telefonatave, mbështetet dërgimi i njoftimeve në formën e kërkesave HTTP.
  • Ndërprerja automatike e lidhjeve joaktive.
  • Përditësimi i konfigurimit atomik pa ndërprerje lidhjesh.
  • Sigurimi metrikë për monitorim në Prometheus.
  • Protokolli HAProxy PROXY mbështetet për të organizuar balancimin e ngarkesës ose lidhjet proxy me shërbimet SFTP/SCP pa humbur informacionin rreth adresës IP të burimit të përdoruesit.
  • REST API për të menaxhuar përdoruesit dhe drejtoritë, për të krijuar kopje rezervë dhe për të gjeneruar raporte për lidhjet aktive.
  • Ndërfaqja në ueb (http://127.0.0.1:8080/web) për konfigurim dhe monitorim (konfigurimi nëpërmjet skedarëve të rregullt të konfigurimit është gjithashtu i mbështetur).
  • Aftësia për të përcaktuar cilësimet në formatet JSON, TOML, YAML, HCL dhe envfile.
  • Mbështetje lidhjet nëpërmjet SSH me akses të kufizuar në komandat e sistemit. Për shembull, lejohet të ekzekutohen komandat e nevojshme për Git (git-receive-pack, git-upload-pack, git-upload-archive) dhe rsync, si dhe disa komanda të integruara (scp, md5sum, sha*sum , cd, pwd, sftpgo-copy dhe sftpgo-remove).
  • regjim portativ për të ndarë një drejtori të përbashkët me gjenerimin automatik të kredencialeve të lidhjes të reklamuara nëpërmjet multicast DNS.
  • Sistemi i ngulitur profilizimi për analizën e performancës.
  • E thjeshtuar procesi migrimi i llogarive të sistemit Linux.
  • ruajtje regjistrat në format JSON.

Burimi: opennet.ru

Shto një koment