22.04.2024

Выпуск SFTP-сервера SFTPGo 2.5.0

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

В новой версии:

  • В web-интерфейсе предоставлена возможность закрытия сообщений об ошибках. В web-интерфейсе для администратора добавлена поддержка поиска в логе аудита и экспорта данных из него, реализовано управление списками IP-адресов и сетей, предоставлена возможность настройки SMTP и типовых параметров ACME и SFTP. В клиентском web-интерфейсе реализована собственная форма входа (вместо basic auth), добавлена операций копирования и убрано ограничение на размер загрузок.
  • Добавлена поддержка политик использования паролей, например, можно определить требования к надёжности пароля и задать время жизни пароля.
  • В EventManager добавлена возможность вывода уведомлений о просроченных паролях, реализована операция копирования, добавлена поддержка предварительно вызываемых действий (pre-*) и обработчиков, срабатывающих при определённых действиях (например, добавлен обработчик, вызываемый при входе пользователя).
  • Добавлена возможность предоставления пользователям прав администратора.
  • В интерфейс командной строки добавлены команды для сброса пароля администратора и проверки работоспособности сервиса.
  • Добавлена поддержка условных операторов при выполнении массового переименования файлов на стороне облачных провайдеров.
  • Добавлена поддержка отслеживания и автоматической перезагрузки TLS-сертификатов.
  • Добавлена возможность определеения собственных MIME-типов для WebDAV.
  • Для SSH включена по умолчанию интерактивная аутентификация с использованием клавиатуры.
  • В переносимом режиме появилась возможность загрузки паролей из файла.
  • Добавлена экспериментальная поддержка сервиса Terraform.

Основные возможности SFTPGo:

  • Для каждой учётной записи применяется chroot-изоляция, ограничивающая доступ домашним каталогом пользователя. Возможно создания виртуальных каталогов, ссылающихся на данные вне пользовательского домашнего каталога.
  • Учётные записи хранятся в виртуальной базе пользователей, не пересекающейся с системной БД пользователей. Для хранения БД пользователей могут применяться SQLite, MySQL, PostgreSQL, bbolt и хранение в памяти. Предоставляются средства для сопоставления виртуальных и системных учётных записей — возможно прямое или произвольное сопоставление (один системный пользователь может быть сопоставлен с другим виртуальным пользователем).
  • Поддерживается аутентификация по открытым ключам, ключам SSH и паролям (в том числе интерактивная аутентификация с вводом пароля с клавиатуры). Возможна привязка нескольких ключей для каждого пользователя, а также настройка мультифакторной и многоэтапной аутентификации (например, в случае успешной аутентификации по ключу может дополнительно быть запрошен пароль).
  • Для каждого пользователя возможна настройка разных методов аутентификации, а также определение собственных методов, реализуемых через вызов внешних программ-аутентификаторов (например, для аутентификации через LDAP) или отправку запросов через HTTP API.
  • Возможно подключение внешних обработчиков или вызовов HTTP API для динамического изменения параметров пользователя, вызываемых перед входом пользователя. Поддерживается динамическое создание пользователей при подключении.
  • Поддержка индивидуальных квот на размер данных и число файлов.
  • Поддержка ограничения пропускной способности с раздельной настройкой ограничений для входящего и исходящего трафика, а также ограничений на число одновременных подключений.
  • Средства разграничения доступа, действующие в привязке к пользователю или каталогу (можно ограничить просмотр списка файлов, запретить загрузку, скачивание, перезапись, удаление, переименование или изменение прав доступа, запретить создание каталогов или символических ссылок и т.п.).
  • Для каждого пользователя можно определить индивидуальные сетевые ограничения, например, можно разрешить вход только с определённых IP или подсетей.
  • Поддерживается подключение фильтров загружаемого контента в привязке к отдельным пользователям и каталогам (например, можно блокировать загрузку файлов с определённым расширением).
  • Возможна привязка обработчиков, запускаемых при различных операциях с файлом (загрузка, удаление, переименование и т.п.). Кроме вызова обработчиков поддерживается отправка уведомлений в форме HTTP-запросов.
  • Автоматическое завершение неактивных соединений.
  • Атомарное обновление конфигурации без разрыва соединений.
  • Предоставление метрик для мониторинга в Prometheus.
  • Поддерживается протокол HAProxy PROXY для организации балансировки нагрузки или проксирования соединений к сервисам SFTP/SCP без потери сведений об исходном IP-адресе пользователя.
  • REST API для управления пользователями и каталогами, создания резервных копий и формирования отчётов об активных соединениях.
  • Web-интерфейс (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).
  • Режим portable для совместного использования одного общего каталога с автоматической генерацией учётных данных для подключения, анонсируемых через multicast DNS.
  • Встроенная система профилирования для анализа производительности.
  • Упрощённый процесс миграции системных учётных записей Linux.
  • Хранение логов в формате JSON.
  • Поддержка виртуальных каталогов (например, содержимое определённого каталога можно отдавать не из локальной ФС, а из внешнего облачного хранилища).
  • Поддержка cryptfs для прозрачного шифрования данных на лету при сохранении в ФС и расшифровки при отдаче.
  • Поддержка проброса соединений к другим серверам SFTP.
  • Возможность использования SFTPGo в качестве SFTP-подсистемы для OpenSSH.
  • Возможность хранения учётных и конфиденциальных данных в зашифрованном виде с использованием KMS-серверов (Key Management Services), таких как Vault, GCP KMS, AWS KMS.
  • Поддержка двухфакторной аутентификации с использованием одноразовых паролей с ограниченным временем жизни (TOTP, RFC 6238). В качестве аутентификаторов могут использоваться такие приложения, как Authy и Google Authenticator.
  • Расширение функциональности через плагины. Например доступны плагины с поддержкой дополнительных сервисов обмена ключами, интеграции схемы Publish/Subscribe, хранения и поиска информации о событиях в СУБД.

Источник: https://www.opennet.ru/opennews/art.shtml?num=59087 Источник.