SFTPGo 1.0 SFTP servera laidiens

Notika pirmā nozīmīgā servera izlaišana SFTPGo 1.0, kas ļauj organizēt attālo piekļuvi failiem, izmantojot SFTP, SCP/SSH un Rsync protokolus. Cita starpā SFTPGo var izmantot, lai nodrošinātu piekļuvi Git krātuvēm, izmantojot SSH protokolu. Datus var pārsūtīt gan no lokālās failu sistēmas, gan no ārējās krātuves, kas ir saderīga ar Amazon S3 un Google Cloud Storage. Lai saglabātu lietotāju datu bāzi un metadatus, tiek izmantotas DBVS ar atbalstu SQL vai atslēgas/vērtības formātam, piemēram, PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x vai bbolt 1.3.x. Ir arī režīms metadatu glabāšanai RAM, kam nav nepieciešams pieslēgt ārēju datu bāzi. Projekta kods ir rakstīts Go un izplata licencēts saskaņā ar GPLv3.

Galvenās iezīmes:

  • Katrs konts ir hroots, ierobežojot piekļuvi lietotāja mājas direktorijam. Ir iespējams izveidot virtuālos direktorijus, kas atsaucas uz datiem ārpus lietotāja mājas direktorija.
  • Konti tiek glabāti virtuālā lietotāju datu bāzē, kas nepārklājas ar sistēmas lietotāju datu bāzi. Lietotāju datu bāzu glabāšanai var izmantot SQLite, MySQL, PostgreSQL, bbolt un atmiņas krātuvi. Ir nodrošinātas iespējas virtuālo un sistēmas kontu kartēšanai - iespējama tiešā vai nejaušā kartēšana (vienu sistēmas lietotāju var kartēt ar citu virtuālo lietotāju).
  • Tiek atbalstīta autentifikācija, izmantojot publiskās atslēgas, SSH atslēgas un paroles (ieskaitot interaktīvo autentifikāciju ar paroli, kas ievadīta no tastatūras). Katram lietotājam iespējams piesaistīt vairākas atslēgas, kā arī iestatīt daudzfaktoru un daudzpakāpju autentifikāciju (piemēram, veiksmīgas atslēgas autentifikācijas gadījumā var papildus pieprasīt paroli).
  • Katram lietotājam ir iespējams konfigurēt dažādas autentifikācijas metodes, kā arī definēt savas metodes, kuras tiek ieviestas, izsaucot ārējās autentifikācijas programmas (piemēram, autentifikācijai caur LDAP) vai nosūtot pieprasījumus caur HTTP API.
  • Ir iespējams savienot ārējos apdarinātājus vai HTTP API zvanus, lai dinamiski mainītu lietotāja parametrus, kas tiek izsaukti pirms lietotāja pieteikšanās. Atbalstīts dinamisks izveidojot lietotājus savienojuma laikā.
  • Atbalsta atsevišķas kvotas datu izmēram un failu skaitam.
  • Atbalsts joslas platuma ierobežošanai ar atsevišķu ienākošās un izejošās trafika ierobežojumu konfigurāciju, kā arī vienlaicīgu savienojumu skaita ierobežojumiem.
  • Piekļuves kontroles rīki, kas darbojas saistībā ar lietotāju vai direktoriju (varat ierobežot failu saraksta skatīšanu, aizliegt augšupielādi, lejupielādi, pārrakstīt, dzēst, pārdēvēt vai mainīt piekļuves tiesības, aizliegt izveidot direktorijus vai simboliskas saites utt.).
  • Katram lietotājam varat definēt atsevišķus tīkla ierobežojumus, piemēram, varat atļaut pieteikšanos tikai no noteiktiem IP vai apakštīkliem.
  • Tā atbalsta filtru savienošanu lejupielādētajam saturam attiecībā uz atsevišķiem lietotājiem un direktorijiem (piemēram, varat bloķēt failu lejupielādi ar noteiktu paplašinājumu).
  • Ar failu iespējams saistīt apdarinātājus, kas tiek palaisti dažādu darbību laikā (lejupielādēt, dzēst, pārdēvēt utt.). Papildus zvanīšanas apstrādātājiem tiek atbalstīta paziņojumu sūtīšana HTTP pieprasījumu veidā.
  • Automātiska neaktīvo savienojumu pārtraukšana.
  • Atomu konfigurācijas atjaunināšana, nepārtraucot savienojumus.
  • Nodrošināšana metrika monitoringam programmā Prometheus.
  • HAProxy PROXY protokols tiek atbalstīts, lai organizētu slodzes līdzsvarošanu vai starpniekservera savienojumus ar SFTP/SCP pakalpojumiem, nezaudējot informāciju par lietotāja avota IP adresi.
  • REST API lai pārvaldītu lietotājus un direktorijus, izveidotu dublējumus un ģenerētu atskaites par aktīviem savienojumiem.
  • Web interfeiss (http://127.0.0.1:8080/web) konfigurācijai un uzraudzībai (tiek atbalstīta arī konfigurācija, izmantojot parastos konfigurācijas failus).
  • Iespēja definēt iestatījumus JSON, TOML, YAML, HCL un envfile formātos.
  • atbalsts savienojumi, izmantojot SSH, ar ierobežotu piekļuvi sistēmas komandām. Piemēram, ir atļauts palaist komandas, kas nepieciešamas Git (git-receive-pack, git-upload-pack, git-upload-archive) un rsync, kā arī vairākas iebūvētās komandas (scp, md5sum, sha*sum , cd, pwd, sftpgo-copy un sftpgo-remove).
  • Režīms portatīvs koplietot vienu kopīgu direktoriju ar automātisku savienojuma akreditācijas datu ģenerēšanu, ko reklamē, izmantojot multiraides DNS.
  • Iegultā sistēma profilēšana veiktspējas analīzei.
  • Vienkāršots process Linux sistēmas kontu migrācija.
  • Glabāšana žurnāli JSON formātā.

Avots: opennet.ru

Pievieno komentāru