The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

06.05.2023 10:08

Опубликован выпуск сервера 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, хранения и поиска информации о событиях в СУБД.


  1. Главная ссылка к новости (https://github.com/drakkan/sft...)
  2. OpenNews: Релиз ftp-сервера ProFTPD 1.3.8
  3. OpenNews: Релиз OpenSSH 9.0 с переводом scp на протокол SFTP
  4. OpenNews: Выпуск SFTP-сервера SFTPGo 2.2.0
  5. OpenNews: Выпуск vsftpd 3.0.4
  6. OpenNews: Уязвимость в ftpd из FreeBSD, позволявшая получить root-доступ при использовании ftpchroot
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59087-sftpgo
Ключевые слова: sftpgo, ftp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, pashev.ru (?), 10:25, 06/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Добавлена поддержка политик использования паролей, например, можно определить требования к надёжности пароля

    Хипстерам покоя нету...

    Количество символов, их тип не играют роли по отдельности. Важна энтропия, или другими словами, число вариантов. Пароль, в котором лишь один символ (например 1111111...), при достаточной длине ничем не хуже aeF6mei6. Пароль — это всего лишь число, которое недалёкие админы и программисты требуют записывать в определённой системе исчисления.

     
     
  • 2.3, Аноним (3), 10:27, 06/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    дядь, меня учили что энтропия есть мера хаоса, а не число вариантов

    уже отмечаете поди ?

     
     
  • 3.7, pashev.ru (?), 10:39, 06/05/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Хотя понятия термодинамической и информационной энтропии вводятся в рамках различных формализмов, они имеют общий физический смысл — логарифм числа доступных состояний системы.

    (Даже Вика знает)

     
  • 2.4, Аноним (4), 10:28, 06/05/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    И давно брут по словарю перестали использовать?
     
     
  • 3.6, pashev.ru (?), 10:37, 06/05/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Думай.
     
  • 2.8, Аноним (8), 11:09, 06/05/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Так и запишем - не осилил KeePassXC
     
  • 2.15, OpenEcho (?), 12:57, 07/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Важна >>>энтропия<<<, или другими словами, число вариантов.

    Правильно

    > Пароль, в котором лишь один символ (например 1111111...), при достаточной длине ничем не хуже aeF6mei6.

    Entropy:
    <code>
        dictionary=1
        length=4096

        echo "l(${dict}^${len})/l(2)" | bc -l
    </code>

    результат = 0 энтропи.

    Итого, - Слышал звон, но не знает где он...


     
     
  • 3.16, pashev.ru (?), 17:05, 07/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ловите хипстера.

    Мой пароль состоит из нулей, его длина от миллиарда до миллиона миллиардов. Угадывай.

     
     
  • 4.22, OpenEcho (?), 22:53, 07/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Мой пароль состоит из нулей, его длина от миллиарда до миллиона миллиардов. Угадывай.

    Дружок, если ты когда то видел продакшен сервера, то там импут органичен как правило максимум на 4к символов в паролях, для того чтоб сервер не уложили.


    И математику прогуливать тоже не полезно, Я тебе формулу привел, хоть 1000 милиардов добавь, сам же пукHул, что главное - энтропия

     
  • 4.29, Аноним (29), 23:44, 07/05/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Мой пароль состоит из нулей, его длина от миллиарда до миллиона миллиардов. Угадывай.

    Т.е. ты хочешь развешать лапшу^W^W сказать, что без проблем вводишь от гигабайта до петабайта данных в качестве пароля ...

     
  • 3.35, ip1982 (ok), 14:14, 10/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > $ echo "l(${dict}^${len})/l(2)" | bc -l
    > (standard_in) 1: syntax error

    Да тут клейма ставить негде! :)

    П. С. Включая метод расчёта.

     
     
  • 4.37, OpenEcho (?), 21:39, 10/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> $ echo "l(${dict}^${len})/l(2)" | bc -l
    >> (standard_in) 1: syntax error
    > Да тут клейма ставить негде! :)

    Вам сюда: https://tldp.org/LDP/Bash-Beginners-Guide/html/
    Но если не одолеете то копи/паста как выход

    <code>

    cat <<'EOSH'>entropy.sh
    #!/bin/sh          
    dict=1   # Это то, что чувак выше предложил, - просто один символ, но много
    len=4096 # <= "много". Желающие могут догнать до миллионов,

    echo "l(${dict}^${len})/l(2)" | bc -l

    EOSH

    chmod 755 entropy.sh
    ./entropy.sh

    </code>

    > П. С. Включая метод расчёта.

    Вы каk с шелом разберетесь, то с удовольствием посмотрю на ваш метод расчета ;)

     
  • 2.20, Аноним (-), 21:23, 07/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Важна энтропия, или другими словами, число вариантов.

    Энтропия не играет роли по отдельности, так же как количество символов и их тип. Пароли подбираются по словарям и модификациям их. И вопрос в том, под каким номером пойдёт пароль при таком порядке перебора. Его энтропия может быть 100500 бит, но если он стоит первым, то это не пароль. А в некоторых ситуациях не важно, под каким номером, важно чтобы этот пароль вообще не попадался в последовательности: все возможные комбинации символов никто не проверяет, проверяют только определённые, но проверяют все эти определённые от начала и до конца.

    > Хипстерам покоя нету...

    Это не хипстеры. Хипстеры давно ведут борьбу против паролей как таковых, старпёры защищают пароли, пытаясь подпереть эту фундаментально ущербную идею каким-нибудь костыликом, типа "ограничить количество попыток" или "политики сложности пароля" или "политики смены пароля" и тп. Если ограничение количества попыток ещё куда ни шло, то всё остальное только мешает иметь качественный пароль. Попробуй погенерить пароли для разных сайтов, на одних из которых спецсимволы запрещены в паролях, другие требуют наличия спецсимволов и тп. А регулярная смена паролей, как показывает практика, приводит к тому, что люди начинают использовать более простые пароли.

    Но старпёры не сдаются, им хоть кол на голове теши. Они родились с паролями, они с паролями и умрут.

     
     
  • 3.24, OpenEcho (?), 23:00, 07/05/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Энтропия не играет роли по отдельности, так же как количество символов и их тип.

    Обоснуй? Математически !

     
  • 3.25, OpenEcho (?), 23:14, 07/05/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Но старпёры не сдаются, им хоть кол на голове теши. Они родились с паролями, они с паролями и умрут.

    А ты кто такой, чтоб людей с накопленными десятилетиями знаниями судить?
    Пернуть в лужу, - каждый мастак, а вот как до научного обоснования доходит, так все анонимами заделываются


     
  • 3.34, ip1982 (ok), 14:11, 10/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > И вопрос в том, под каким номером пойдёт пароль при таком порядке перебора. Его энтропия может быть 100500 бит, но если он стоит первым, то это не пароль.

    Вот это каша в голове! Правда, что людям сложно думать статистически.

     
  • 2.36, ip1982 (ok), 14:17, 10/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Эх, доброта моя...

    Думаю, требуется пояснение для программистов.

    Начнём с простого. Пусть политика паролей допускает только пароли длинной в один символ и состоящие только из 0 или 1. Очевидно, что существует всего два пароля, удовлетворяющих такой политике: 0 и 1.

    Возможна и другая политика паролей, допускающая всего два пароля, и следовательно такую же сложность подбора. А именно политика, разрешающая пароли длиной 1–2 символа и состоящие только из 0 (или любого другого символа).

    Теперь пусть разрешены пароли длиной 1–2 символа, состоящие из чисел 0–9. Таких паролей всего 110 штук. Политика, допускающая только один символ (например, 0), должна разрешать пароли длиной до 110 символов. Важно, что она не будет «настаивать» на использовании других цифр. Цифры — это не плохо, но в реальности недалёкие «политики» трахают мозг спецсимволами, заглавным буквами и т. п.

    В реальности же пароли, как правило, не ограничены длиной сверху, поэтому отсутствие злоебучих символов легко компенсировать удлинением пароля, вплоть до того, чтобы оставить один единственный символ, а всю энтропию загнать в длину пароля.

    То есть, имея охеренный, легко запоминающийся, сложно подбираемый пароль, вы можете получить от тупой политики по лицу за «слабый» пароль только потому, что в вашем пароле нету запятой.

    Вероятно, единственным рабочим критерием надёжности пароля является энтропия, поэтому нормальная политика должна проверять только её, а не длину пароля и присутствие  обязательных типов символов.

     

  • 1.9, Аноним (8), 11:11, 06/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > SFTP, SCP/SSH, Rsync, HTTP и WebDav

    Интересно было бы глянуть на бенч перфоманса в сравнении с традиционными тулами и граф потребления ресурсов. Может вот оно счастье вместо зоопарка, наряду с Go Simple Tunnel

     
     
  • 2.12, Аноним (12), 17:38, 06/05/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сколько у тебя параллельных потоков и какая ширина канала?
     

  • 1.14, Аноним (14), 08:57, 07/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Анонимный доступ там как работает?
     
  • 1.21, ivan_erohin (?), 22:00, 07/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    кто-то tyt хотел альтернативную (SMB и винде) файлопомойку.
    вот вам кандидат.
    смущает только язык реализации.
     
     
  • 2.23, OpenEcho (?), 22:59, 07/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > смущает только язык реализации.

    Чем?

     
     
  • 3.26, Аноним (29), 23:23, 07/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> смущает только язык реализации.
    > Чем?

    Это опеннет.
    Поэтому очевидно же - тем что гошка фу-фу! Не труЪ!
    Только Великая Сишка или на худой конец (в основном, если хочется уныло^W "оригинально" набросить), Великий Раст.
    Правда, их самые ярые и горячие опеннетные адепты ничего сложнее хелловротов в данной тематике (или вообще) не писали, но ...


     
  • 3.30, ivan_erohin (?), 00:39, 08/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> смущает только язык реализации.
    > Чем?

    чем-то. не могу точно вербализовать. то ли гуглагом, то ли рантаймом.


     
     
  • 4.31, ivan_erohin (?), 06:31, 08/05/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру