Подключение вашего локального кошелька к демону через Tor

Ниже нами приводится пример конфигурации, позволяющей запустить демон Monero (например, на домашнем сервере или VPS), к которому вы могли бы подсоединиться с другого компьютера, на котором будет запущен ваш кошелёк. Для получения информации транзакций, необходимой для вашего кошелька, мы используем анонимную сеть Tor. Преимущество данного подхода заключается том, что демон (monerod) может постоянно осуществлять передачу/приём блоков, в то время как кошелёк будет подсоединяться по необходимости и иметь доступ к полному блокчейну. Monerujo также должен работать через Orbot. Поскольку скрытые службы Tor обеспечивают возможность шифрования и аутентификации, вы можете быть уверены в том, что ваши данные RPC не будут передаваться в открытую. Tor также решает проблемы, зачастую характерные для домашних серверов и связанные с пробросом портов, изменением IP-адресов и т. д. Всё это просто работает. Данная настройка также позволит скрыть тот факт, что вы подсоединяетесь к удалённому узлу Monero. Она была протестирована с версией Monero v0.15.0.1 В ходе тестирования кошелёк, установленный на ноутбук Mac, соединялся с удалённым узлом Linux (Ubuntu 18.04.2).

Создание скрытой службы Tor для RPC

Убедитесь в том, что Tor установлен и работает надлежащим образом. После этого можно двигаться дальше.

Необходимо только конфигурировать сервер RPC так, чтобы он использовал скрытую службу на порте 18081.

Файл: /etc/torrc

HiddenServiceDir /var/lib/tor/monero-service/
HiddenServicePort 18081 127.0.0.1:18081

Перезапустите Tor:

sudo systemctl restart tor@default

Убедитесь в том, что Tor запустился правильно:

sudo systemctl status tor@default.service

Если всё хорошо, отметьте название скрытой службы (луковый адрес):

sudo cat /var/lib/tor/monero-service/hostname

Он будет выглядеть примерно так: like 4dcj312uxag2r6ye.onion – Используйте его для HIDDEN_SERVICE ниже.

Конфигурирование демона для использования RPC

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

Файл: ~/.bitmonero/bitmonero.conf (в домашней директории пользователя Monero)

no-igd=1
restricted-rpc=1
rpc-login=USERNAME:PASSWORD

(Чтобы использовать RPC придумайте ИМЯ ПОЛЬЗОВАТЕЛЯ (USERNAME) и ПАРОЛЬ (PASSWORD))

Перезапустите демон: monerod stop_daemon; sleep 10; monerod --detach

Убедитесь в том, что демон запустился правильно:

tail -f ~/.bitmonero/bitmonero.log

Подключение к вашему узлу с локального кошелька

Убедитесь в том, что Tor работает локально, после чего можно подсоединиться к сети Tor. Одним из простых способов, в случае с Mac, является простой запуск браузера Tor и использование демона Tor.

Затем следует протестировать простую команду RPC, например:

curl --socks5-hostname 127.0.0.1:9150 -u USERNAME:PASSWORD --digest -X POST http://HIDDEN_SERVICE.onion:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' -H 'Content-Type: application/json'

Замените USERNAME, PASSWORD, и HIDDEN_SERVICE значениями, указанными выше. Измените порт 9150 если того потребует ваш локальный демон Tor.

Когда выполняется команда, и если всё работает надлежащим образом, вы должны получить некоторую информацию об удалённом демоне. Если это не так, следует добавить ` -v ` в начале и попытаться выяснить, почему соединение отсутствует, проверить средства сетевой защиты (firewall), правильность пароля и т. д.

Как только всё заработает, можно подсоединяться, используя свой CLI-кошелёк:

./monero-wallet-cli --proxy 127.0.0.1:9150 --daemon-host HIDDEN_SERVICE.onion --trusted-daemon --daemon-login USERNAME:PASSWORD --wallet-file ~/PATH/TO/YOUR/WALLET

По необходимости можно заменить значения, указанные выше.

GUI

Если вам хочется поэкспериментировать с соединением GUI через Tor, вы можете попытаться воспользоваться torsocks (следует отметить, что это может привести к утечке информации — не стоит особо полагаться на этот вариант, если от вашей анонимности будет зависеть ваша жизнь). Мы приводим пример для MacOS, который при необходимости можно адаптировать по Linux GUI:

torsocks --port 9150 /Applications/monero-wallet-gui.app/Contents/MacOS/monero-wallet-gui

Это позволит GUI связаться с сетью Tor. Как только будет открыт GUI и кошелёк будет запущен, будет необходимо конфигурировать его для соединения с вашей скрытой службой Tor, добавив соответствующий луковый адрес: "Settings > Node > Remote node > Address".

Мы надеемся, что в следующих версиях GUI будет добавлена прямая поддержка Tor / I2P, и необходимость в использовании командной строки и torsocks отпадёт.

Дополнительные ссылки