Vrijgave van SFTP-server SFTPGo 1.0

De eerste belangrijke release van de server vond plaats SFTPGo 1.0, waarmee u externe toegang tot bestanden kunt organiseren met behulp van de SFTP-, SCP/SSH- en Rsync-protocollen. SFTPGo kan onder andere worden gebruikt om toegang te bieden tot Git-repository's met behulp van het SSH-protocol. Gegevens kunnen zowel vanuit het lokale bestandssysteem als vanaf externe opslag die compatibel is met Amazon S3 en Google Cloud Storage worden overgedragen. Om de gebruikersdatabase en metadata op te slaan, worden DBMS'en met ondersteuning voor SQL of sleutel/waarde-indeling gebruikt, zoals PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x of bbolt 1.3.x. Er is ook een modus voor het opslaan van metagegevens in RAM, waarvoor geen verbinding met een externe database vereist is. De projectcode is geschreven in Go en gedistribueerd door gelicentieerd onder GPLv3.

Основные особенности:

  • Elk account wordt gechroot, waardoor de toegang tot de thuismap van de gebruiker wordt beperkt. Het is mogelijk om virtuele mappen aan te maken die verwijzen naar gegevens buiten de thuismap van de gebruiker.
  • Accounts worden opgeslagen in een virtuele gebruikersdatabase die niet samenvalt met de systeemgebruikersdatabase. SQLite, MySQL, PostgreSQL, bbolt en in-memory storage kunnen worden gebruikt om gebruikersdatabases op te slaan. Er worden middelen geboden voor het in kaart brengen van virtuele en systeemaccounts - directe of willekeurige toewijzing is mogelijk (een systeemgebruiker kan worden toegewezen aan een andere virtuele gebruiker).
  • Publieke sleutel-, SSH-sleutel- en wachtwoordauthenticatie wordt ondersteund (inclusief interactieve authenticatie met toetsenbordwachtwoordinvoer). Het is mogelijk om meerdere sleutels voor elke gebruiker te binden, evenals multifactor- en meertrapsauthenticatie in te stellen (in het geval van succesvolle sleutelauthenticatie kan bijvoorbeeld extra om een ​​wachtwoord worden gevraagd).
  • Het is mogelijk om verschillende authenticatiemethoden voor elke gebruiker te configureren, evenals hun eigen methoden te definiëren die worden geïmplementeerd door externe authenticatieprogramma's aan te roepen (bijvoorbeeld voor authenticatie via LDAP) of verzoeken te verzenden via de HTTP API.
  • Het is mogelijk om externe handlers of HTTP API-oproepen aan te sluiten om gebruikersparameters dynamisch te wijzigen, aangeroepen voordat de gebruiker inlogt. Ondersteund dynamisch gebruikers aanmaken bij verbinding.
  • Ondersteuning voor individuele quota voor gegevensgrootte en aantal bestanden.
  • Ondersteuning voor bandbreedtebeperking met aparte instellingen voor limieten voor inkomend en uitgaand verkeer, evenals limieten voor het aantal gelijktijdige verbindingen.
  • Toegangscontroletools die werken in relatie tot een gebruiker of map (u kunt de weergave van de lijst met bestanden beperken, uploaden, downloaden, overschrijven, verwijderen, hernoemen of wijzigen van toegangsrechten verbieden, het maken van mappen of symbolische links verbieden, enz.).
  • Voor elke gebruiker kunt u individuele netwerkbeperkingen definiëren, u kunt bijvoorbeeld alleen toegang toestaan ​​vanaf bepaalde IP's of subnetten.
  • Het ondersteunt de koppeling van filters voor downloadbare inhoud met betrekking tot individuele gebruikers en mappen (u kunt bijvoorbeeld het downloaden van bestanden met een bepaalde extensie blokkeren).
  • Handlers die tijdens verschillende bewerkingen worden gestart, kunt u aan het bestand binden (laden, verwijderen, hernoemen, enz.). Naast oproephandlers wordt het verzenden van meldingen in de vorm van HTTP-verzoeken ondersteund.
  • Automatische beëindiging van inactieve verbindingen.
  • Atomaire configuratie-update zonder verbindingen te verbreken.
  • Het verstrekken van statistieken voor monitoring in Prometheus.
  • Het HAProxy PROXY-protocol wordt ondersteund om loadbalancing of proxyverbindingen met SFTP/SCP-services te organiseren zonder de kennis van het bron-IP-adres van de gebruiker te verliezen.
  • REST API om gebruikers en mappen te beheren, back-ups te maken en rapporten over actieve verbindingen te genereren.
  • Web-interface (http://127.0.0.1:8080/web) voor configuratie en monitoring (configuratie via reguliere configuratiebestanden wordt ook ondersteund).
  • Mogelijkheid om instellingen te definiëren in JSON-, TOML-, YAML-, HCL- en envfile-indelingen.
  • Ondersteunen verbindingen via SSH met beperkte toegang tot systeemopdrachten. Het is bijvoorbeeld toegestaan ​​om commando's uit te voeren die nodig zijn voor Git (git-receive-pack, git-upload-pack, git-upload-archive) en rsync, evenals verschillende ingebouwde commando's (scp, md5sum, sha*sum , cd, pwd, sftpgo-copy en sftpgo-remove).
  • regime draagbare om één gemeenschappelijke map te delen met het automatisch genereren van verbindingsreferenties die worden geadverteerd via multicast DNS.
  • Ingebouwd systeem profilering voor prestatieanalyse.
  • Vereenvoudigd procede migratie van Linux-systeemaccounts.
  • opslagruimte logt in JSON-formaat.

Bron: opennet.ru

Voeg een reactie