淫夢のXMRノードを立てました(364364)

こんにちは。
1日かけてXMRのノードを設立したので報告します。

私が立てたXMRのノードアドレスとポートはこちらになり、XMRのウォレットや支払いサーバなどでTorを通すと利用できます。

364364hndcwnr5y2ueuxzqhn2xvu6ievv755y5i2cj4bedxpvlhxcgid.onion:18089

下記のXMRノードリストからも確認できると思います。

Public Monero Remote Nodes List — xmr.ditatompel.com
Although it's possible to use these existing public Monero nodes, you're MUST RUN AND USE YOUR OWN NODE!

このような事を考えて実行した理由はインド先輩兄貴が運営しているヤジュッターにてXMRでヤジュコイン(ヤジュヤジュ動画で使える通貨)をXMRで買えないかという話に若干なって、取引に必要なXMRのノードを試しに立てて実験してみたかったからです。

ホーム - ヤジュッター

自宅にある余ったミニPCと回線にUbuntuとTorとMonerodをインストールして実行しています。
VPSではなく自宅鯖を使った理由としては必要スペックが高すぎたからです。

  • SSD に少なくとも 256 GB のストレージ (フルノードの場合)
  • 少なくともデュアルコア、理想的にはクアッドコア
  • 少なくとも2GBのRAM、理想的には4GB
  • 最低10Mbpsの接続、最低100GBの月間データ
How to run a Monero (XMR) node
Monero.com guides and support resources

はっきり言って必要なストレージが多すぎます。
ドメインについても最初は33-4のドメインを利用しようと思いましたが、Cloudflareを経由するとP2P通信が制限される事を知ったのでサーバのIPの保護との兼ね合いの末にOnionドメインを使ってノードを公開する事に決めました。

Linuxをインストールしたらまずはファイアウォールの設定を行います。
これはOnionドメイン用なのでクリアネットの場合は「allow (ポート番号)」でポートを開放する必要があります。

# UFWで全ポート閉鎖
# Torは外向き接続のみ(ポート開放不要)
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable

Torをインストールします。

# 更新とTorインストール
sudo apt update && sudo apt upgrade -y
sudo apt install tor git build-essential cmake pkg-config \\
libboost-all-dev libssl-dev libzmq3-dev libunbound-dev \\
libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev \\
libexpat1-dev libpgm-dev qttools5-dev-tools libhidapi-dev \\
libusb-1.0-0-dev libprotobuf-dev protobuf-compiler libudev-dev \\
libminiupnpc-dev

MonerodをインストールしてTorrcを設定します。

# 公式バイナリダウンロード(推奨)
cd ~/Downloads
wget [<https://downloads.getmonero.org/cli/monero-linux-x64-v0.18.4.3.tar.bz2>](<https://downloads.getmonero.org/cli/monero-linux-x64-v0.18.3.4.tar.bz2>)
tar -xvf monero-linux-x64-v0.18.4.3.tar.bz2
sudo cp monero-x86_64-linux-gnu-v0.18.4.3/monerod /usr/local/bin/
sudo cp monero-x86_64-linux-gnu-v0.18.4.3/monero-wallet-cli /usr/local/bin/

# バージョン検証
monerod --version

Tor Hidden Service設定に入ります。

sudo vim /etc/tor/torrc

# torrc設定
HiddenServiceDir /var/lib/tor/monero-node/
HiddenServicePort 18084 127.0.0.1:18084
HiddenServicePort 18089 127.0.0.1:18089

そしてTorを再起動してドメインを確認します(後ほど変更しますが)

sudo systemctl restart tor
sudo cat /var/lib/tor/monero-node/hostname  # .onionアドレス取得

Monerod設定ファイルを編集します。

sudo vim ~/.bitmonero/bitmonero.conf

# データディレクトリ
data-dir=/home/xmr/.bitmonero

# ログ設定
log-level=0
log-file=/home/xmr/.bitmonero/monerod.log

# Tor設定
anonymous-inbound=(onionアドレス).onion:18084,127.0.0.1:18084
tx-proxy=tor,127.0.0.1:9050,16
hide-my-port=1
no-igd=1

# P2P設定
p2p-ignore-ipv4=1

# RPC設定
rpc-bind-ip=127.0.0.1
rpc-bind-port=18089
confirm-external-bind=1
restricted-rpc=1

# ZMQ無効化
no-zmq=1

daemonのsystemd.service化をします。

sudo vim /etc/systemd/system/monerod.service

[Unit]
Description=Monero Full Node
After=network.target tor.service
Wants=tor.service

[Service]
Type=forking
PIDFile=/run/monerod/monerod.pid

# 実行前にディレクトリ作成
ExecStartPre=/bin/mkdir -p /run/monerod
ExecStartPre=/bin/chown あなたのユーザー名:あなたのユーザー名 /run/monerod

# Monerod起動
ExecStart=/usr/local/bin/monerod \\
    --config-file=/home/あなたのユーザー名/.bitmonero/bitmonero.conf \\
    --detach \\
    --pidfile=/run/monerod/monerod.pid

# 停止コマンド
ExecStop=/usr/local/bin/monerod exit

# 再起動設定
Restart=on-failure
RestartSec=30s

# ユーザー設定
User=あなたのユーザー名
Group=あなたのユーザー名

# セキュリティ強化(オプション)
PrivateTmp=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

そして再起動と有効化。

sudo systemctl daemon-reload
sudo systemctl enable monerod
sudo systemctl start monerod

上手くいかない場合はTorとMonerodの設定が競合していないか確認してみてください。

次は下記のページを参考にしてonionアドレスを指定のものに変えます。

任意prefixのドメイン(Vanity Address)でOnionサーバを構築する - Qiita
この記事はpaizaとはマジで関係ありません!!!!!!!!!!!! ネタなかったので記事ストックから引っ張り出してきました。ごめんな謝意。 はじめに & TsukuCTFの話 こんにちは、paiza アドベントカレンダー 2022 2日目...
GitHub - cathugger/mkp224o: vanity address generator for tor onion v3 (ed25519) hidden services
vanity address generator for tor onion v3 (ed25519) hidden services - cathugger/mkp224o

これをダウンロードしてReadmeに従いmake、実行します。

# 依存パッケージインストール
sudo apt install gcc libsodium-dev make autoconf -y

# リポジトリクローン
cd ~/Downloads
git clone <https://github.com/cathugger/mkp224o.git>
cd mkp224o

# ビルド
./autogen.sh
./configure
make

# バイナリ確認
./mkp224o

淫夢に因んで「364364(見ろよ見ろよ)」から始まるonionアドレスを生成します。
10分かそこらで生成され、onionsディレクトリ内にonionアドレスのディレクトリとその中に必要なファイル一式が同梱されています。

./mkp224o -d onions 364364 -n 1

ちなみにonionアドレスはbase32という三十二進法を使っているので、0・1・8・9は使えません。
なので「810」や「1919」といったドメインを生成する事は不可能です。
私はこれに気づかず「114514」から始まるドメインを生成しようとしてドツボに嵌っていました。

生成されたファイルをコピペする為に一旦TorとMonerodを停止させます。

# Monerodを停止
sudo systemctl stop monerod

# Torを停止
sudo systemctl stop tor

cpコマンドで「/var/lib/tor/monero-node」に生成ファイルを放り込みます。

# 生成されたディレクトリ名を確認
ls ./onions/

# 例:364364...onion というディレクトリができている
ONION_DIR=$(ls ./onions/)
echo $ONION_DIR

# ファイルをTorのディレクトリにコピー
sudo cp ./keys/$ONION_DIR/hostname /var/lib/tor/monero-node/
sudo cp ./keys/$ONION_DIR/hs_ed25519_public_key /var/lib/tor/monero-node/
sudo cp ./keys/$ONION_DIR/hs_ed25519_secret_key /var/lib/tor/monero-node/

# 所有者をtorユーザーに変更
sudo chown -R debian-tor:debian-tor /var/lib/tor/monero-node

# パーミッション設定(権限が緩いと警告が出て動かない時がある)
sudo chmod 700 /var/lib/tor/monero-node
sudo chmod 600 /var/lib/tor/monero-node/hostname
sudo chmod 600 /var/lib/tor/monero-node/hs_ed25519_public_key
sudo chmod 600 /var/lib/tor/monero-node/hs_ed25519_secret_key

新しいOnionアドレスを確認し、Monerodの設定を変更します。

# 新しいアドレスを確認
sudo cat /var/lib/tor/monero-node/hostname

# 設定ファイル編集
nano ~/.bitmonero/bitmonero.conf

# 変更前
anonymous-inbound=old-random-address.onion:18080,127.0.0.1:18084

# 変更後(新しいアドレスに)
anonymous-inbound=364364...新しいアドレス.onion:18080,127.0.0.1:18084

サービスを再起動して動作を確認します。

# Tor起動
sudo systemctl start tor

# Tor起動確認
sudo systemctl status tor

# エラーがないか確認
sudo journalctl -u tor -n 50

# Monerod起動
sudo systemctl start monerod

# Monerod起動確認
sudo systemctl status monerod

# Onionアドレス確認
sudo cat /var/lib/tor/monero-node/hostname

# Torログでエラーがないか確認
sudo journalctl -u tor -f

# Monerodが正常に動作しているか
monerod status

running状態になっていたら成功です。
お疲れ様でした。

  • 参考ソース
Tor and I2P - Monero Docs
Monero Documentation

コメント

タイトルとURLをコピーしました