はじめに
前回の記事では統合版 Minecraft サーバを建てました。インターネット上に公開すると色々な人がアクセスしにくる可能性があるので、自分達の身を守るためにしっかりとセキュリティ対策をしよう。
一般にサーバを守る方法は色々ありますが、今回は標準の Minecraft の機能だけで実現できるセキュリティ対策をやっていくよ。ほとんどはJava版でも使えます。
(前回建てた ubuntu サーバのファイル編集を行うので、Linux OS の知識が少しあるとよい。ここでは Linux の使い方は説明しません。)
#1. ホワイトリスト
Minecraft は接続を許可するユーザを管理する「ホワイトリスト」を作ることができます。ホワイトリストを上手に管理することで、信頼できる友達とだけ遊ぶ環境を作ることができます。
サーバ側のコマンド、またはオペレータ権限を持ったゲーム内ユーザのコマンドからホワイトリストを操作できます。
デメリットはやはりホワイトリストの管理が必要な事ですが、参加者が特定できる環境であれば一番有効です。
(以下はサーバ上で実施した例、ゲーム内で実施する場合はコマンドの最初に / を付けましょう。)
ホワイトリストにユーザを追加するには以下のコマンドを使います。
whitelist add ユーザ名
名前を間違えた等で、ユーザを削除するには以下のコマンドを使います。
whitelist remove ユーザ名
ユーザの追加を行ったら、ホワイトリスト機能を有効にします。
whitelist on
ダメでした・・・統合版では有効化コマンドは使えないのかもしれない。(教えて偉い人)
という訳で、ホワイトリストを有効化するためにサーバ上のファイルを直接編集します。
サーバが置かれているディレクトリの中に「server.properties」というファイルがあるのでこれを編集します。
white_list=false と書かれた箇所を見つけて、white_list=true に書き換えましょう。
white-list=true
# If true then all connected players must be listed in the separate whitelist.json file.
# Allowed values: "true" or "false"
これでサーバを起動すればホワイトリストが有効になっています。私のユーザ名 JohnikiJoestar はホワイトリストに書いてない(書いてあるのは末尾に1,2,3がついた3人)ので、ログインできない人になっています。
#2. ブラックリスト(Java版限定)
ホワイトリストの反対で、接続を拒否するユーザを管理できます。ユーザ名とIPアドレスの情報を使って制御できますが、どちらも攻撃者側が変更してしまえば意味がなくなるため、いたちごっこになります。
限定サーバに限っていえばホワイトリストで十分なので、ブラックリストを使う理由は特にありません。緊急時や一時的な防御と思ってもらえればよいです。
ban ユーザ名
ban-ip IPアドレス
#3. ポート番号
統合版 Minecraft サーバが使うポート番号はデフォルトで 19132 ですが、これを変えてしまう手もあります。漏洩してしまえば意味が無いですが、少なくともデフォルトじゃない時点で不正アクセスのハードルは上がります。「server.properties」ファイルの中の下記数字を書き換えればよいです。もし変えるならばですが、説明に書いてある範囲は少し嘘っぱちなので 50000 より上あたりを適当に使っておきましょう。変えた場合は、ファイアウォールルールやクライアント全員の設定も変える必要があります。
server-port=19132
# Which IPv4 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]
以上、セキュリティ対策はじめの一歩でした。