Пользователям BTCPay в Docker необходимо включить Tor при следующем обновлении, чтобы сохранить onion-доступ
Ключевые выводы
- •BTCPay Server версии 2.4.5 превращает Tor из автоматически включаемого компонента Docker в необязательный фрагмент, который операторы должны добавить явно.
- •Для существующих установок Tor может выпасть из развёртывания при следующей настройке или обновлении Docker, потенциально нарушая доступ через .onion во время планового обслуживания.
- •Операторы могут повторно включить onion-подключение командой sudo btcpay-fragments add opt-add-tor, при этом BTCPay сообщает, что существующие данные остаются в текущих томах Tor.
- •Тот же релиз по умолчанию блокирует исходящие HTTP-запросы к адресам частных сетей для соединений Lightning, запросов LNURL, URL уведомлений о счет и вебхуков в качестве защиты от server-side request forgery.
- •Операторы, намеренно использующие частные сервисы, должны разрешить необходимые адреса через ssrfexceptions, а затем перезапустить приложение и протестировать затронутую интеграцию.

Операторы, использующие BTCPay Server — самохостируемое платёжное ПО для Bitcoin — через стандартное Docker-развёртывание, должны явно выбрать Tor при следующей настройке или обновлении, если хотят сохранить onion-доступ. Это изменение, появившееся в версии 2.4.5, удаляет Tor из автоматически включаемых компонентов, превращая ранее входивший в комплект сервис в элемент конфигурации, который выбирает администратор.
BTCPay описал изменение развёртывания в объявлении от 5 октября, сопровождающем версию 2.4.5, тогда как официальная страница релиза на GitHub фиксирует выпуск ПО 6 октября. Для существующих установок ключевым моментом является следующая настройка или обновление Docker — то есть компонент может выпасть из работающего развёртывания в рамках планового обслуживания, если оператор явно не включит его обратно.
Это изменение существенно для операторов Docker, зависящих от Tor, включая доступ через onion-адрес сервера — конечную точку .onion, предоставляемую скрытыми сервисами Tor, — которые ранее получали сервис через основной фрагмент BTCPay Server. Фрагменты — это конфигурационные компоненты, используемые для сборки Docker-стека.
Повторное включение Tor после обновления
BTCPay рекомендует администраторам изучить изменения развёртывания перед обновлением. После перехода на версию 2.4.5 команда для включения Tor выглядит так:
sudo btcpay-fragments add opt-add-tor
Tor по-прежнему поддерживается, и BTCPay сообщает, что существующие данные остаются в текущих томах Tor. Это сохраняет накопленные данные, хотя дальнейший onion-доступ по-прежнему зависит от включения и запуска Tor в развёртывании.
Согласно документации BTCPay Server, необязательный фрагмент Tor opt-add-tor добавляет скрытые сервисы и отдельные onion-подключения. Операторы могут проверить свою конфигурацию с помощью btcpay-fragments show — команда ничего не меняет и отображает сохранённые дополнительные и исключённые фрагменты вместе с действующими фрагментами из последнего сгенерированного манифеста. Проверка этого вывода до обновления и снова после добавления фрагмента даёт администраторам картину «до и после» того, что фактически работает в их стеке. Команды, изменяющие фрагменты, требуют прав root и немедленно применяют настройку.
Частным сервисам нужны отдельные исключения
В примечаниях к релизу 2.4.5 также указано критическое изменение для исходящих HTTP-запросов: адреса в частных сетях по умолчанию блокируются для соединений Lightning, запросов LNURL, URL уведомлений о счетах и вебхуков. Ограничение призвано предотвратить server-side request forgery (SSRF) — класс уязвимостей, при которых приложение обманом заставляют отправлять запросы к внутренним или иным ограниченным сетевым ресурсам.
Поскольку оба изменения входят в один релиз, одно обновление может затронуть две разные части настройки оператора: доступность onion и исходящие вызовы к частным адресам. При включённой защите операторы, намеренно использующие частные сервисы, должны разрешить необходимые адреса через ssrfexceptions. Руководство оператора BTCPay рекомендует после изменения настройки перезапустить приложение и проверить работу затронутой интеграции.