Έκδοση του διακομιστή SFTP SFTPGo 2.2.0

Опубликован выпуск сервера SFTPGo 2.2, позволяющего организовать удалённый доступ к файлам при помощи протоколов SFTP, SCP/SSH, Rsync, HTTP и WebDav. В том числе SFTPGo может использоваться для предоставления доступа к Git-репозиториям, используя протокол SSH. Данные могут отдаваться как с локальной файловой системы, так и из внешних хранилищ, совместимых с Amazon S3, Google Cloud Storage и Azure Blob Storage. Возможно хранение данных в зашифрованном виде. Для хранения пользовательской базы и метаданных используются СУБД с поддержкой SQL или формата ключ/значение, такие как PostgreSQL, MySQL, SQLite, CockroachDB или bbolt, но имеется и возможность хранения метаданных в оперативной памяти, не требующая подключения внешней БД. Код проекта написан на языке Go и распространяется под лицензией GPLv3.

Στη νέα έκδοση:

  • Добавлена поддержка двухфакторной аутентификации с использованием одноразовых паролей с ограниченным временем жизни (TOTP, RFC 6238). В качестве аутентификаторов могут использоваться такие приложения, как Authy и Google Authenticator.
  • Реализована возможность расширения функциональности через плагины. Среди уже доступных плагинов: поддержка дополнительных сервисов обмена ключами, интеграция схемы Publish/Subscribe, хранение и поиск информации о событиях в СУБД.
  • В REST API добавлена поддержка аутентификации по ключам, помимо токенов JWT, а также обеспечена возможность задания политик хранения данных (ограничение времени жизни данных) в привязке к отдельным каталогам и пользователям. По умолчанию активирован интерфейс Swagger UI для навигации по ресурсам API без применения внешних утилит.
  • В web-интерфейс добавлена поддержка операций записи (загрузка файлов, создание каталогов, переименование и удаление), реализована возможность сброса пароля с подтверждением по email, интегрированы редактор текстовых файлов и просмотрщик PDF-документов. Добавлена возможность создания HTTP-ссылок для предоставления внешним пользователям доступа к отдельным файлам и каталогам, с возможностью задания отдельного пароля доступа, ограничения по IP-адресам, задания времени жизни ссылки и лимитирования числа загрузок.

Κύρια χαρακτηριστικά του SFTPGo:

  • Κάθε λογαριασμός είναι chroot, περιορίζοντας την πρόσβαση στον αρχικό κατάλογο του χρήστη. Είναι δυνατή η δημιουργία εικονικών καταλόγων που αναφέρονται σε δεδομένα εκτός του αρχικού καταλόγου του χρήστη.
  • Οι λογαριασμοί αποθηκεύονται σε μια εικονική βάση δεδομένων χρηστών που δεν τέμνεται με τη βάση δεδομένων χρηστών του συστήματος. Τα SQLite, MySQL, PostgreSQL, bbolt και αποθήκευση στη μνήμη μπορούν να χρησιμοποιηθούν για την αποθήκευση βάσεων δεδομένων χρηστών. Παρέχονται μέσα για την αντιστοίχιση εικονικών λογαριασμών και λογαριασμών συστήματος - είναι δυνατή η άμεση ή αυθαίρετη αντιστοίχιση (ένας χρήστης συστήματος μπορεί να αντιστοιχιστεί σε έναν άλλο εικονικό χρήστη).
  • Υποστηρίζεται έλεγχος ταυτότητας δημόσιου κλειδιού, κλειδιού SSH και κωδικού πρόσβασης (συμπεριλαμβανομένου του διαδραστικού ελέγχου ταυτότητας με εισαγωγή κωδικού πρόσβασης στο πληκτρολόγιο). Είναι δυνατό να δεσμεύσετε πολλά κλειδιά για κάθε χρήστη, καθώς και να ρυθμίσετε τον έλεγχο ταυτότητας πολλαπλών παραγόντων και πολλαπλών σταδίων (για παράδειγμα, σε περίπτωση επιτυχούς ελέγχου ταυτότητας κλειδιού, ενδέχεται να ζητηθεί επιπλέον κωδικός πρόσβασης).
  • Είναι δυνατή η διαμόρφωση διαφορετικών μεθόδων ελέγχου ταυτότητας για κάθε χρήστη, καθώς και ο καθορισμός των δικών του μεθόδων που υλοποιούνται με την κλήση εξωτερικών προγραμμάτων ελέγχου ταυτότητας (για παράδειγμα, για έλεγχο ταυτότητας μέσω LDAP) ή την αποστολή αιτημάτων μέσω του HTTP API.
  • Είναι δυνατό να συνδέσετε εξωτερικούς χειριστές ή κλήσεις API HTTP για να αλλάξετε δυναμικά τις ρυθμίσεις χρήστη που καλούνται πριν συνδεθεί ο χρήστης. Υποστηρίζεται η δυναμική δημιουργία χρηστών στη σύνδεση.
  • Υποστήριξη για μεμονωμένες ποσοστώσεις για το μέγεθος δεδομένων και τον αριθμό των αρχείων.
  • Υποστήριξη περιορισμού εύρους ζώνης με ξεχωριστές ρυθμίσεις για όρια εισερχόμενης και εξερχόμενης κίνησης, καθώς και όρια για τον αριθμό των ταυτόχρονων συνδέσεων.
  • Εργαλεία ελέγχου πρόσβασης που ενεργούν σε σχέση με έναν χρήστη ή κατάλογο (μπορείτε να περιορίσετε την προβολή της λίστας αρχείων, να απαγορεύσετε τη μεταφόρτωση, τη λήψη, την αντικατάσταση, τη διαγραφή, τη μετονομασία ή την αλλαγή δικαιωμάτων πρόσβασης, την απαγόρευση της δημιουργίας καταλόγων ή συμβολικών συνδέσμων κ.λπ.).
  • Για κάθε χρήστη, μπορείτε να ορίσετε μεμονωμένους περιορισμούς δικτύου, για παράδειγμα, μπορείτε να επιτρέψετε την πρόσβαση μόνο από συγκεκριμένες IP ή υποδίκτυα.
  • Υποστηρίζει τη σύνδεση φίλτρων για περιεχόμενο με δυνατότητα λήψης σε σχέση με μεμονωμένους χρήστες και καταλόγους (για παράδειγμα, μπορείτε να αποκλείσετε τη λήψη αρχείων με μια συγκεκριμένη επέκταση).
  • Μπορείτε να συνδέσετε προγράμματα χειρισμού που εκκινούνται κατά τη διάρκεια διαφόρων λειτουργιών με το αρχείο (φόρτωση, διαγραφή, μετονομασία κ.λπ.). Εκτός από τους χειριστές κλήσεων, υποστηρίζεται η αποστολή ειδοποιήσεων με τη μορφή αιτημάτων HTTP.
  • Αυτόματος τερματισμός ανενεργών συνδέσεων.
  • Ενημέρωση ατομικής διαμόρφωσης χωρίς διακοπή συνδέσεων.
  • Παροχή μετρήσεων για παρακολούθηση στον Προμηθέα.
  • Το πρωτόκολλο HAProxy PROXY υποστηρίζεται για την οργάνωση της εξισορρόπησης φορτίου ή των συνδέσεων μεσολάβησης σε υπηρεσίες SFTP/SCP χωρίς να χάνεται η γνώση της διεύθυνσης IP προέλευσης του χρήστη.
  • REST API για διαχείριση χρηστών και καταλόγων, δημιουργία αντιγράφων ασφαλείας και αναφορά ενεργών συνδέσεων.
  • Διασύνδεση Ιστού (http://127.0.0.1:8080/web) για διαμόρφωση και παρακολούθηση (υποστηρίζεται επίσης η διαμόρφωση μέσω κανονικών αρχείων διαμόρφωσης).
  • Δυνατότητα ορισμού ρυθμίσεων σε μορφές JSON, TOML, YAML, HCL και envfile.
  • Υποστήριξη για σύνδεση μέσω SSH με περιορισμένη πρόσβαση σε εντολές συστήματος. Για παράδειγμα, οι εντολές που απαιτούνται για το Git (git-receive-pack, git-upload-pack, git-upload-archive) και το rsync επιτρέπεται να εκτελούνται, καθώς και αρκετές ενσωματωμένες εντολές (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy και sftpgo-remove).
  • Φορητή λειτουργία για κοινή χρήση ενός κοινόχρηστου καταλόγου με αυτόματη δημιουργία διαπιστευτηρίων σύνδεσης που διαφημίζονται μέσω multicast DNS.
  • Ενσωματωμένο σύστημα προφίλ για ανάλυση απόδοσης.
  • Απλοποιημένη διαδικασία μετεγκατάστασης λογαριασμού συστήματος Linux.
  • Αποθήκευση αρχείων καταγραφής σε μορφή JSON.
  • Υποστήριξη εικονικών καταλόγων (για παράδειγμα, τα περιεχόμενα ενός συγκεκριμένου καταλόγου μπορούν να δοθούν όχι από το τοπικό σύστημα αρχείων, αλλά από εξωτερικό χώρο αποθήκευσης cloud).
  • Υποστήριξη για cryptfs για διαφανή κρυπτογράφηση δεδομένων εν κινήσει κατά την αποθήκευση στο σύστημα αρχείων και αποκρυπτογράφηση κατά τη μεταφόρτωση.
  • Υποστήριξη για προώθηση συνδέσεων σε άλλους διακομιστές SFTP.
  • Δυνατότητα χρήσης του SFTPGo ως υποσύστημα SFTP για το OpenSSH.
  • Η δυνατότητα αποθήκευσης διαπιστευτηρίων και εμπιστευτικών δεδομένων σε κρυπτογραφημένη μορφή χρησιμοποιώντας διακομιστές KMS (Key Management Services), όπως Vault, GCP KMS, AWS KMS.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο