Изоляция в QubesOS. Локальный узел XMR & Кошелёк Feather.
Создаём куб для monerod.
В [Dom0]Qube manager
нажимаем кнопку New qube
выставляем параметры
https://gekkk.co/i/e6161f7939ed4965fcf0fe7b277fed4c

Name and label: anon-monerod-who17
Color: red
Type: AppVM (persistent home, volatile root)
Template: whonix-workstation-17
Networking: sys-whonix
🗹 Launch settings after creation
Нажимаем кнопку OK
.
В [Dom0] Settings: anon-monerod-who17
выставляем
https://gekkk.co/i/d116b9c749856e2e3fe306941884ca65

Private storage max size: 250.0 GB
Нажимаем кнопку OK
.
Запускаем Xfce Terminal во вновь созданном кубе anon-monerod-who17.
Создаём каталог для конфигурационного файла monerod
[workstation user ~]% mkdir -p /home/user/.config/monerod
Создаём конфигурационный файл monerod
[workstation user ~]% nano /home/user/.config/monerod/monerod.conf
помещаем в него текст
max-log-file-size=0
log-file=/dev/null
no-igd=1
disable-dns-checkpoints=1
p2p-bind-ip=0.0.0.0
p2p-bind-port=18080
out-peers=32
in-peers=32
tx-proxy=tor,IP_SYS_WHONIX:9153,16,disable_noise
pad-transactions=1
proxy=IP_SYS_WHONIX:9153
public-node=1
confirm-external-bind=1
rpc-bind-ip=127.0.0.1
rpc-bind-port=18081
rpc-restricted-bind-ip=0.0.0.0
rpc-restricted-bind-port=18089
rpc-ssl=disabled
disable-rpc-ban=1
db-sync-mode=fastest:async:250000000bytes
max-concurrency=2
fast-block-sync=0
block-sync-size=0
Вместо IP_SYS_WHONIX укажите IP вашего куба sys-whonix. См. [Dom0]Qube manager
.
Сохраняем файл monerod.conf. Ctrl+X
Y
.
Загружаем Monero CLI Wallet последней версии. На данный момент v0.18.3.4
[workstation user ~]% wget https://downloads.getmonero.org/cli/monero-linux-x64-v0.18.3.4.tar.bz2
Загружаем подписанный файл с хэшами архивов и PGP ключ подписи. Импортируем ключ, проверяем подпись хэшей, считаем хэш monero-linux-x64-v0.18.3.4.tar.bz2 сверяем с указанным в файле.
В случае успешной проверки распаковываем архив.
[workstation user ~]% tar -xvf monero-linux-x64-v0.18.3.4.tar.bz2
Создаём unit systend.
[workstation user ~]% systemctl --user edit --full --force monerod.service
С таким текстом:
[Unit]
Description=Monero Full Node (Mainnet)
After=network.target
[Service]
Type=simple
ExecStart=/home/user/monero-x86_64-linux-gnu-v0.18.3.4/monerod --non-interactive --config-file=/home/user/.config/monerod/monerod.conf
Restart=on-failure
RestartSec=30
# Hardening measures
PrivateTmp=true
ProtectSystem=full
NoNewPrivileges=true
Сохраняем файл закрываем редактор.
Перечитываем список Unit'ов systemd
[workstation user ~]% systemctl --user daemon-reload
Включаем автоматический запуск сервиса monerod.service при старте куба
[workstation user ~]% systemctl --user enable --now monerod.service
Проверяем запуск сервиса
[workstation user ~]% systemctl --user status monerod.service
Читаем логи systemd
[workstation user ~]% journalctl --user -fu monerod
Наличие сообщений вида
host monerod[891]: I Synced 119020/3176974 (3%, 3057954 left)
host monerod[891]: I Synced 119120/3176974 (3%, 3057854 left)
host monerod[891]: I Synced 119220/3176974 (3%, 3057754 left)
host monerod[891]: I Synced 119320/3176974 (3%, 3057654 left)
host monerod[891]: I Synced 119420/3176974 (3%, 3057554 left)
host monerod[891]: I Synced 119520/3176974 (3%, 3057454 left)
host monerod[891]: I Synced 119620/3176974 (3%, 3057354 left)
host monerod[891]: I Synced 119720/3176974 (3%, 3057254 left)
host monerod[891]: I Synced 119820/3176974 (3%, 3057154 left)
Говорит о начале синхронизации и загрузке блокчейна. Дожидаемся окончания синхронизации.
Остановить сервис monerod.service
[workstation user ~]% systemctl --user stop monerod.service
Запустить сервис monerod.service
[workstation user ~]% systemctl --user start monerod.service
Отключить автоматический запуск сервиса monerod.service при старте куба
[workstation user ~]% systemctl --user disable monerod.service
После повторного запуска monerod.service прерванная синхронизация начнётся с того же момента.
Создаём куб для feather.
В [Dom0]Qube manager
нажимаем кнопку New qube
выставляем параметры
https://gekkk.co/i/815e0da6576e0d370cbfb2987ae61f09

Name and label: anon-feather-who17
Color: red
Type: AppVM (persistent home, volatile root)
Template: whonix-workstation-17
Networking: none
🗹 Launch settings after creation
Нажимаем кнопку OK
.
В [Dom0] Settings: anon-feather-who17
оставляем всё без изменений.
https://gekkk.co/i/6cbb15752672f831a059e403f8a84816

Нажимаем кнопку OK
.
Из куба anon-whonix загружаем файл кошелька, подпись, ключ. Проверяем подпись файла feather-2.7.0.AppImage. В случае успешной проверки подписи копируем через контекстное меню файл feather-2.7.0.AppImage в куб anon-feather-who17.
Запускаем Xfce Terminal в Dom0.
Создаём файл политики
sudo nano /etc/qubes/policy.d/30-user.policy
Помещаем в него текст.
qubes.ConnectTCP +18081 anon-feather-who17 anon-monerod-who17 allow
Сохраняем файл 30-user.policy. Ctrl+X
Y
.
Запускаем Xfce Terminal в кубе anon-feather-who17. Устанавливаем соединение с кубом anon-monerod-who17 по протоколу TCP на порт 18081.
[workstation user ~]% qvm-connect-tcp 18081:anon-monerod-who17:18081
Добавляем файлу feather-2.7.0.AppImage права на выполнение, запускаем кошелёк. В настройках кошелька отключаем соединение через прокси,
https://gekkk.co/i/3223f8836c872baac3fda041ffd88bff

добавляем ноду 127.0.0.1:18081
https://gekkk.co/i/d4396cc037efcb92e977c394f3ca1c35

подключаемся к monerod в кубе anon-monerod-who17. Пользуемся кошельком.