【超・上級編最終回】不正侵入を許すな!Velocityサーバーを鉄壁にする「ファイアウォール」設計とUUIDスプーフィング対策

Linux

あなたのサーバー、実は「鍵が開いて」いませんか?

こんにちは!「リナックス先生」です。
全3回のマイクラサーバー超・上級編もついに最終回。これまで、プロキシでサーバーを連結し、ポータルで快適に移動できるようにしました。

▼これまでの連載(まだの人はここから!)

コウ君

先生、前回までで完璧に動いてますよ!
友達も「Hypixelみたいですげー!」って喜んでくれました。
これ以上、何をすることがあるんですか?

リナックス先生

今のままだと、「ハッカーがコウ君になりすまして侵入し、サーバーを破壊する」ことが可能なの。
Velocity構成の致命的な弱点である「オフラインモード問題」を解決して、鉄壁の要塞を完成させましょう!

0. なぜ「乗っ取り」ができるのか?(恐怖の仕組み)

第1回で、中身のサーバー(LobbyやSurvival)の server.propertiesonline-mode=false に設定しましたよね?
これは、「Mojangの認証(パスワード確認)をしない」という意味です。

通常はVelocityが入り口で認証してくれるので安全ですが、もし悪意ある人が「Velocityを通さずに、直接Lobbyサーバー(ポート25565)に接続」してきたらどうなるでしょうか?

認証がないため、「ID: Kou_Kun(管理者)」と名乗るだけで、パスワード無しで管理者として入れてしまうのです。
これを「UUIDスプーフィング」と呼びます。

Step 1:Forwarding Secretの再確認

まず、Velocityと各サーバーが「秘密の合言葉」を共有しているか確認します。
これが第一の壁です。

Velocity側の確認

cat network/velocity/forwarding.secret

ここに書かれている文字列(キー)をコピーします。

PaperMC側の確認

LobbyとSurvival、両方の config/paper-global.yml を開き、以下の設定になっているか再確認してください。

proxies:
  velocity:
    enabled: true
    online-mode: true
    secret: "【ここにさっきのキーが入っているか確認!】"

これが設定されていれば、Velocityを経由しない接続は「キーが違うぞ!」と弾かれます。
しかし、これだけではまだ不安です。物理的に遮断しましょう。

Step 2:最強の盾「ローカルホスト限定接続」

ファイアウォールを設定する前に、もっと確実な方法があります。
PaperMCの設定で、「自分自身(Velocity)からの通信以外は一切受け付けない」ようにします。

server.propertiesの編集

LobbyサーバーとSurvivalサーバー、それぞれの server.properties を開きます。

vi network/lobby/server.properties
vi network/survival/server.properties

以下の項目を探し(無ければ追記し)、書き換えてください。

server-ip=127.0.0.1

解説:
デフォルト(空白)だと、世界中からの通信を待ち受けます。
127.0.0.1(ローカルホスト)に指定することで、同じVPS内にいるVelocityからの通信しか聞こえなくなります。
これなら、外部のハッカーがポート番号を指定しても接続自体が成立しません。

Step 3:ファイアウォールの最終確認

Linux側のファイアウォール設定も見直しましょう。
「開けるのはVelocityのポート(25577)だけ」というのが鉄則です。

設定の確認コマンド

firewall-cmd --list-all

【良い例】
ports: 25577/tcp
(これだけが開いていればOK)

【悪い例】
ports: 25577/tcp 25565/tcp 25566/tcp
(中身のサーバーのポートまで公開されています!すぐに閉じましょう)

不要なポートを閉じるコマンド

もし25565などが開いていたら、以下のコマンドで塞ぎます。

# ポート削除
firewall-cmd --permanent --remove-port=25565/tcp
firewall-cmd --permanent --remove-port=25566/tcp

# 設定反映
firewall-cmd --reload

Step 4:侵入テスト(ハッカーごっこ)

設定が終わったら、本当に守られているか自分で攻撃してみましょう。

テスト1:正規ルート

マイクラのサーバーアドレスに VPSのIP:25577 を入力。
入れればOK!(Velocity経由)

テスト2:裏口ルート

マイクラのサーバーアドレスに VPSのIP:25565 (Lobbyのポート)を直接入力。
「接続できません(Connection Refused)」となれば成功!

もしここで入れてしまったら、Step 2の server-ip=127.0.0.1 の設定が間違っているか、再起動していません。すぐに見直してください。


連載まとめ:あなたは「ネットワークエンジニア」だ

全3回、本当にお疲れ様でした!
この連載であなたが構築したシステムは、単なるゲームサーバーではありません。

  1. プロキシサーバー(負荷分散)
  2. バックエンドサーバー(機能分離)
  3. ファイアウォール(セキュリティ)

これらは、GoogleやAmazonのような大規模Webサービスでも使われている「マイクロサービスアーキテクチャ」の基礎そのものです。
マイクラを通じて、あなたは立派なインフラエンジニアのスキルを身に着けました。

コウ君

ありがとうございます!
最初は難しくて泣きそうでしたけど、仕組みがわかるとパズルみたいで面白いですね。
これで安心して大規模サーバーを運営できます!

リナックス先生

その通りよ。この知識は一生モノの財産になるわ。
もしサーバーが大きくなりすぎてVPS 1台じゃ足りなくなったら、複数のVPSを繋ぐことだってできるのよ。
夢は大きく、最高のサーバーを作ってね!

▼大規模ネットワーク構築に最適なVPS

Velocity、Lobby、Survival… 複数のサーバーを安定して動かすには、やはりメモリ容量がすべてです。将来的にミニゲームサーバーなどを追加する予定があるなら、迷わず8GB以上のプランをおすすめします。

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント