Rilascio del server SFTP SFTPGo 1.0

Ha avuto luogo il primo rilascio significativo del server SFTPGo 1.0, che consente di organizzare l'accesso remoto ai file utilizzando i protocolli SFTP, SCP/SSH e Rsync. Tra le altre cose, SFTPGo può essere utilizzato per fornire l'accesso ai repository Git utilizzando il protocollo SSH. I dati possono essere trasferiti sia dal file system locale che da storage esterno compatibile con Amazon S3 e Google Cloud Storage. Per archiviare il database utente e i metadati vengono utilizzati DBMS con supporto per SQL o formato chiave/valore, come PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x o bbolt 1.3.x. Esiste anche una modalità per archiviare i metadati nella RAM, che non richiede la connessione a un database esterno. Il codice del progetto è scritto in Go and distribuito da concesso in licenza con GPLv3.

Caratteristiche principali:

  • Ogni account è chroot, limitando l'accesso alla directory home dell'utente. È possibile creare directory virtuali che fanno riferimento a dati esterni alla home directory dell'utente.
  • Gli account vengono archiviati in un database utente virtuale che non si sovrappone al database utenti di sistema. È possibile utilizzare SQLite, MySQL, PostgreSQL, bbolt e archiviazione in memoria per archiviare i database utente. Sono fornite funzionalità per la mappatura degli account virtuali e di sistema: è possibile la mappatura diretta o casuale (un utente di sistema può essere mappato su un altro utente virtuale).
  • È supportata l'autenticazione tramite chiavi pubbliche, chiavi SSH e password (inclusa l'autenticazione interattiva con una password inserita dalla tastiera). È possibile associare più chiavi per ciascun utente, nonché impostare l'autenticazione a più fattori e a più passaggi (ad esempio, in caso di autenticazione della chiave riuscita, può essere richiesta anche una password).
  • Per ciascun utente è possibile configurare diversi metodi di autenticazione, nonché definire metodi propri, implementati chiamando programmi di autenticazione esterni (ad esempio, per l'autenticazione tramite LDAP) o inviando richieste tramite l'API HTTP.
  • È possibile connettere gestori esterni o chiamate API HTTP per modificare dinamicamente i parametri utente, chiamati prima che l'utente effettui l'accesso. Supportato dinamico creazione di utenti al momento della connessione.
  • Supporta quote individuali per la dimensione dei dati e il numero di file.
  • Supporto per la limitazione della larghezza di banda con configurazione separata delle restrizioni per il traffico in entrata e in uscita, nonché restrizioni sul numero di connessioni simultanee.
  • Strumenti di controllo dell'accesso che operano in relazione a un utente o a una directory (è possibile limitare la visualizzazione di un elenco di file, vietare il caricamento, il download, la sovrascrittura, l'eliminazione, la ridenominazione o la modifica dei diritti di accesso, vietare la creazione di directory o collegamenti simbolici, ecc.).
  • Per ciascun utente è possibile definire restrizioni di rete individuali, ad esempio è possibile consentire l'accesso solo da determinati IP o sottoreti.
  • Supporta il collegamento di filtri per i contenuti scaricati in relazione a singoli utenti e directory (ad esempio, puoi bloccare il download di file con una determinata estensione).
  • È possibile associare a un file i gestori avviati durante varie operazioni (download, eliminazione, rinomina, ecc.). Oltre ai gestori delle chiamate, è supportato l'invio di notifiche sotto forma di richieste HTTP.
  • Terminazione automatica delle connessioni inattive.
  • Aggiornamento atomico della configurazione senza interrompere le connessioni.
  • fornendo metriche per il monitoraggio in Prometheus.
  • Il protocollo HAProxy PROXY è supportato per organizzare il bilanciamento del carico o le connessioni proxy ai servizi SFTP/SCP senza perdere informazioni sull'indirizzo IP di origine dell'utente.
  • API REST per gestire utenti e directory, creare backup e generare report sulle connessioni attive.
  • interfaccia web (http://127.0.0.1:8080/web) per la configurazione e il monitoraggio (è supportata anche la configurazione tramite normali file di configurazione).
  • Possibilità di definire le impostazioni nei formati JSON, TOML, YAML, HCL e envfile.
  • Sostegno connessioni tramite SSH con accesso limitato ai comandi di sistema. Ad esempio, è consentito eseguire i comandi necessari per Git (git-receive-pack, git-upload-pack, git-upload-archive) e rsync, nonché diversi comandi integrati (scp, md5sum, sha*sum , cd, pwd, sftpgo-copy e sftpgo-remove).
  • regime portatile per condividere una directory comune con generazione automatica di credenziali di connessione pubblicizzate tramite DNS multicast.
  • Sistema incorporato profilazione per l'analisi delle prestazioni.
  • Semplificato processo migrazione degli account del sistema Linux.
  • Conservazione log in formato JSON.

Fonte: opennet.ru

Aggiungi un commento