Vrijgave van SFTP-server SFTPGo 2.2.0

De release van de SFTPGo 2.2-server is gepubliceerd, waarmee u externe toegang tot bestanden kunt organiseren met behulp van de SFTP-, SCP/SSH-, Rsync-, HTTP- en WebDav-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 vanuit externe opslag die compatibel is met Amazon S3, Google Cloud Storage en Azure Blob Storage worden overgedragen. Het is mogelijk om gegevens gecodeerd op te slaan. Om de gebruikersdatabase en metadata op te slaan, worden DBMS'en met ondersteuning voor SQL of sleutel/waarde-indeling gebruikt, zoals PostgreSQL, MySQL, SQLite, CockroachDB of bbolt, maar het is ook mogelijk om metadata in RAM op te slaan, waarvoor geen verbinding met een externe databank. De projectcode is geschreven in Go en gedistribueerd onder de GPLv3-licentie.

In de nieuwe versie:

  • Ondersteuning toegevoegd voor tweefactorauthenticatie met behulp van in de tijd beperkte eenmalige wachtwoorden (TOTP, RFC 6238). Applicaties zoals Authy en Google Authenticator kunnen als authenticatoren worden gebruikt.
  • De mogelijkheid om de functionaliteit uit te breiden via plug-ins is geïmplementeerd. Onder de reeds beschikbare plug-ins: ondersteuning voor aanvullende sleuteluitwisselingsdiensten, integratie van het Publish/Subscribe-schema, opslag en zoeken van informatie over gebeurtenissen in het DBMS.
  • De REST API heeft naast JWT-tokens ondersteuning toegevoegd voor authenticatie met behulp van sleutels, en biedt ook de mogelijkheid om beleid voor gegevensopslag in te stellen (dat de levensduur van gegevens beperkt) met betrekking tot individuele mappen en gebruikers. Standaard is de Swagger UI ingeschakeld om door API-bronnen te navigeren zonder gebruik te maken van externe hulpprogramma's.
  • Er is ondersteuning voor schrijfbewerkingen toegevoegd aan de webinterface (bestanden uploaden, mappen aanmaken, hernoemen en verwijderen), de mogelijkheid om een ​​wachtwoord opnieuw in te stellen met bevestiging per e-mail is geïmplementeerd, een tekstbestandseditor en een PDF-documentviewer zijn geïntegreerd. De mogelijkheid toegevoegd om HTTP-links te maken om externe gebruikers toegang te geven tot individuele bestanden en mappen, met de mogelijkheid om een ​​afzonderlijk toegangswachtwoord in te stellen, IP-adressen te beperken, de levensduur van de link in te stellen en het aantal downloads te beperken.

Belangrijkste kenmerken van SFTPGo:

  • 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-aanroepen aan te sluiten om dynamisch de gebruikersinstellingen te wijzigen die worden aangeroepen voordat de gebruiker inlogt. Dynamische creatie van gebruikers bij verbinding wordt ondersteund.
  • 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.
  • Metrische gegevens leveren 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 voor het beheren van gebruikers en mappen, het maken van back-ups en het rapporteren over actieve verbindingen.
  • Webinterface (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.
  • Ondersteuning voor verbinding via SSH met beperkte toegang tot systeemopdrachten. Commando's die vereist zijn voor Git (git-receive-pack, git-upload-pack, git-upload-archive) en rsync mogen bijvoorbeeld worden uitgevoerd, evenals verschillende ingebouwde commando's (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy en sftpgo-remove).
  • Draagbare modus voor het delen van één gedeelde map met automatisch genereren van verbindingsreferenties geadverteerd via multicast DNS.
  • Ingebouwd profileringssysteem voor prestatieanalyse.
  • Vereenvoudigd migratieproces voor Linux-systeemaccounts.
  • Logboeken opslaan in JSON-formaat.
  • Ondersteuning voor virtuele mappen (de inhoud van een bepaalde map kan bijvoorbeeld niet uit het lokale bestandssysteem worden gegeven, maar uit externe cloudopslag).
  • Ondersteuning voor cryptfs om gegevens direct transparant te versleutelen bij het opslaan in het bestandssysteem en ontsleutelen bij het uploaden.
  • Ondersteuning voor het doorsturen van verbindingen naar andere SFTP-servers.
  • Mogelijkheid om SFTPGo te gebruiken als een SFTP-subsysteem voor OpenSSH.
  • De mogelijkheid om inloggegevens en vertrouwelijke gegevens in versleutelde vorm op te slaan met behulp van KMS-servers (Key Management Services), zoals Vault, GCP KMS, AWS KMS.

Bron: opennet.ru

Voeg een reactie