Выпуск 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, хранения и поиска информации о событиях в СУБД.
Источник: http://www.opennet.ru/opennews/art.shtml? num=59087
© OpenNet