Luantiの遠隔サーバー化

ラズパイ5なら軽量なLuantiサーバーなら動かせるのですが、リモートでどうやるかだったのですが、VPNを使えば良いと

ラズパイ5(Luanti service)- VPN ~~~~~~~ VPN – client

<VPS : tailscale>

VPNは今は第二世代とでもいうべき時代で、WireGuardと言われる最新のVPNプロトコルを使った無償で使えるVPN製品(カーネル空間動作で高速、軽量、最新の暗号化技術でセキュア)が注目で中でもtailscaleは広く使われているようです

特徴は中央集権型のサービスで、アカウントログオンしてクラウド側にデバイスを登録すると、登録したデバイス間でセキュアな通信が確保され、さらにMagicDNSという仕組みでそれぞれの登録デバイスにDNS情報が転送されるので、その情報を使って登録デバイス間の接続にはIPアドレスの意識さえ不要という優れもの

# tailscale起動、以下のコマンドでログイン画面のURLが出てくるからブラウザログイン
$ sudo tailscale up

# 以降の起動時には自動起動するように、以下を実行する
$ sudo systemctl enable minetest-server

# IPアドレスラズパイ側の確認(Magic DNS使うからIPアドレスを触る必要はない)
$ tailscale ip -4
100.83.206.1

% tailscale status

100.88.161.30  macbookpro  login_account@  macOS  -
100.83.206.1   rasp5       login_account@  linux  -

クライアントにはtailscaleのサイトからプラットフォーム対応のpkgを引っ張ってきてインストールして、起動時に同時にラズパイログオンアカウントと同じアカウントでログインすればマシンが追加されます、その後に例えばsshならば、

$ ssh usr@rasp5

でログオンできます、rasp5はMagic DNSの登録名です

Luantiならば、

こんな感じでアクセス

公開にあたってのセキュリティ運用対応、VPNそのものは信頼度高いのでtailscaleのログイン情報の保護に尽きる

1. 管理者アカウントを1個に固定

→ 「新しい端末を追加できるのは管理者だけ」

2. デバイス承認をON(超重要)

管理画面 → Settings → Device approval

これONにすると:

新しい端末がログインしても
管理者が承認しないと通信不可

3. キーは使わない(人力ログインのみ)

Tailscale自体は:

パスワードを持たない設計

全部:
Google / GitHub / Microsoft
の認証に丸投げ。

4. 不要端末の自動削除

Settings → Key Expiry

180日(default)に設定。

5. Subnet / Exit Node は使わない

デフォルトはOFFになってる

6. デフォルトユーザーpiのパスワードは安全性の高いものに安全性の高いものに変える

 

<Debain版のLunatic serverのインストール>

snap版では不都合あったので、ヘッドレス版(Debian公式の minetest-server デーモン)を入れる

% sudo apt install minetest-server

# サービスの自動起動enableと一時的な起動
% sudo systemctl enable minetest-server
% sudo systemctl start minetest-server

 

<ユーザーの追加と別ワールドの作成>

・指針:ユーザーは当然限定アクセスだけでroot権限は与えない

・ワールド:プレイ用の30000(dafult)ポート以外に編集や個人用のワールドは例えば30001ポートで起動するようにして環境は分離する

・手順:ユーザーluanti1を作ってサーバー起動

$ sudo adduser luanti1
$ su - luanti1

$ mkdir -p ~/.minetest/worlds/test		// 編集用のdirectory(test)を作る
$ /usr/lib/minetest/minetestserver   --world ~/.minetest/worlds/luanti1   --port 30001   --quiet   --logfile ""

複数のlunatiサーバー立ち上げても、元が軽量だからラズパイ5では今のところ余裕です