server-memo.net

【Minecraft】ホワイトリストの導入方法

   

「maincraft_server(マイクラのマルチサーバ)」でホワイトリスト(whitelist)を使用する方法についてまとめています。

ホワイトリストの導入について

知っている仲間内だけで遊びたい場合など、知らない人が勝手にサーバに入ってくることを防ぐことが出来ます。

荒らしユーザからの被害を防ぐにも効果があります。

ホワイトリスト設定

ホワイトリスト設定を有効にするための方法として、下記の方法がありますのでそれぞれについて説明していきます。

  • サーバコンソールから設定
  • Minecraftクライアントから設定
  • server.properiesを編集して設定

サーバコンソールから設定

「Minecraft_server」が動作しているサーバのコンソールから、「whitelist on」コマンドを実行することでホワイトリストを有効にする事ができます。

whitelist on

「whitelist on」コマンドを実行

「whitelist on」コマンドを実行すると、「Turned on the whitelist」のメッセージが表示され、ホワイトリストが有効化されたことが分かります。

whitelist on  <--コマンドを実行
[10:57:22] [Server thread/INFO]: Turned on the whitelist

「server.properties」の方も自動的に設定変更されます。

$ grep white-list server.properties
white-list=true

Minecraftクライアントから設定

オペレータ権限を持ったユーザで「/whitelist on」コマンドを実行すると、ホワイトリストを有効化できます。

/whitelist on コマンド実行

マイクラのゲームクライアントから「/whitelist on」コマンドを実行します。

whitelist_00

すると、「ホワイトリストを有効にしました」というメッセージが表示され、ホワイトリストが有効化されます。

whitelist_01

こちらの場合も「server.properties」は自動的に変更されます。

server.properties編集

マイクラの設定ファイルである「server.properties」を直接変更することでも、ホワイトリストを有効化することが出来ますが、設定を反映させるために再起動が必要となるため、ちょっと面倒です。

vi server.properties

編集内容

「white-list」の部分を「false」から「true」に変更します。

変更前
white-list=false
変更後
white-list=true

設定反映

「maincraft_server」を再起動することで設定が反映され、ホワイトリストが有効化されます。

動作確認

minecraftのクライアントからサーバに接続してログインして動作確認を行ってください。

初期状態では、ホワイトリストに誰も登録されていないので「You are not whitelisted on this server!」と表示されてログイン出来ません。

whitelist_02

サーバ側のログにも「You are not whitelisted on this server!」と表示されます。

[10:19:01 INFO]: UUID of player tamohiko is ad6bb107-d45a-43fb-b0fa-64d91ef48ef3
[10:19:01 INFO]: Disconnecting com.mojang.authlib.GameProfile@76a4cb85[id=ad6bb107-d45a-43fb-b0fa-64d91ef48ef3,name=tamohiko,properties={textures=[com.mojang.authlib.properties.Property@2cb9e0a7]},legacy=false] (/xxx.xxx.xxx.xxx:xxxx): You are not whitelisted on this server!

※IP情報は伏せています

ホワイトリストに登録されていないのにログインできてしまう場合

ログインするユーザにオペレータ権限が設定されているとログイン出来てしまいますので、その際は一旦サーバのコンソールから「deop ユーザ名」コマンドでオペレータ権限を外してから再度ログインしてください。

下記は「tamohiko」ユーザからオペレータ権限を外した際のログとなります。

>deop tamohiko
[10:18:56 INFO]: De-opped tamohiko

ホワイトリストへのユーザ追加

ホワイトリストにユーザを追加する方法は下記の3通りがありますので、それぞれの方法について説明していきます。

  • サーバコンソールから追加
  • Minecraftクライアントから追加
  • whitelist.jsonを直接編集

サーバコンソールから追加

「Minecraft_Server」が動作しているコンソールから、ホワイトリストにユーザを追加する際の書式は下記のとおりです。

whitelist add [ユーザ名]

ユーザ追加

ホワイトリストに「tamohiko」というユーザを追加した際のログとなります。

>whitelist add tamohiko
[10:32:26 INFO]: Added tamohiko to the whitelist

「whitelist list」コマンドを実行することで、ホワイトリストに登録されているユーザを確認することが出来るので確認してみましょう。

>whitelist list
[10:32:32 INFO]: There are 1 (out of 2 seen) whitelisted players:
[10:32:32 INFO]: tamohiko

Minecraftクライアントから追加

オペレータ権限を持ったユーザで下記コマンドを実行すると、ホワイトリストにユーザを追加することが出来ます。

/whitelist add [ユーザ名]

ユーザ追加

「tamohiko」ユーザをホワイトリストに追加したところです。

whitelist_03

ホワイトリストに追加した旨のメッセージが表示され、ユーザが追加されたことが確認できます。

whitelist_04

whitelist.jsonを直接編集

「whitelist.json」を直接編集してユーザを追加する方法は面倒なのでおすすめしませんが、一応手順を説明しておきます。

whitelist.json編集

ホワイトリストの設定は「whitelist.json」ファイルに記述されていて、登録するユーザ毎に「uuid」と「name」の2項目で構成されています。

項目 説明
uuid minecraftユーザに設定されているユニークなIDとなり、このID番号はMojangが公開しているAPIで確認することが出来る
https://api.mojang.com/users/profiles/minecraft/ユーザ名
name minecraftのユーザ名
whitelist.json設定例
[
  {
    "uuid": "ad6bb107-d45a-43fb-b0fa-64d91ef48ef3",
    "name": "tamohiko"
  }
]

設定反映

「whitelist.json」を編集したあとに、「Minecraft_server」が動作しているコンソール上で「whitelist reload」コマンドを実行することで、設定が反映されて、ユーザが追加されます。

whitelist reload
実行例

「whitelist.json」を編集した後に「whitelist list」コマンドでホワイトリストの設定内容を確認すると、誰もユーザが登録されていなことがわかります。

[11:10:15] [Server thread/INFO]:
whitelist list
[11:11:21] [Server thread/INFO]: There are 0 (out of 3 seen) whitelisted players:

「whitelist reload」コマンドを実行し、「whitelist.json」の内容を読み込みます。

[11:11:21] [Server thread/INFO]:
whitelist reload
[11:11:26] [Server thread/INFO]: Reloaded the whitelist

「whitelist list」コマンドで確認すると、ホワイトリストにユーザが登録されたことが分かります。

whitelist list
[11:11:35] [Server thread/INFO]: There are 1 (out of 3 seen) whitelisted players:
[11:11:35] [Server thread/INFO]: tamohiko

複数ユーザを追加する場合

複数ユーザを追加する場合は「,」で区切って追加します。

[
  {
    "uuid": "xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "ユーザ名"
  }, <--「,」で区切ります
  {
    "uuid": "ad6bb107-d45a-43fb-b0fa-64d91ef48ef3",
    "name": "tamohiko"
  }
]

ユーザの削除

サーバコンソールから削除

サーバコンソールからホワイトリストのユーザを削除する際の書式は下記のとおりです。

whitelist remove [ユーザ名]

下記は「tamohiko」ユーザを削除した際のログとなります。

whitelist remove tamohiko
[14:00:57] [Server thread/INFO]: Removed tamohiko from the whitelist

「Removed tamohiko from the whitelist」と表示され、ホワイトリストからユーザが削除されたことが分かります。

Minecraftクライアントから削除

オペレータ権限をもったユーザで下記コマンドを実行することで、ホワイトリストからユーザを削除することが出来ます。

/whitelist remove [ユーザ名]

ユーザの削除

「tamohiko」ユーザをホワイトリストから削除します。

whitelist_06

ユーザを削除した旨のメッセージが表示され、ユーザがホワイトリストから削除されたことがわかります。

whitelist_07

サーバのログ上にも、誰がどのユーザをホワイトリストからユーザを削除したのかが分かるログが残ります。

[14:14:44] [Server thread/INFO]: [tamohiko: Removed tamohiko from the whitelist]

ホワイトリストの停止

ホワイトリストを停止するための方法として、下記の方法がありますのでそれぞれについて説明していきます。

  • サーバコンソールから停止
  • Minecraftクライアントから停止
  • server.properiesを編集して停止

ホワイトリストの機能を停止すると、誰でもサーバにログインできるようになります。

サーバコンソールから停止

「Minecraft_server」が動作しているコンソールから、下記コマンドを実行することでホワイトリストの機能を停止させることが出来ます。

whitelist off

ホワイトリスト機能停止

「whitelist off」コマンドを実行すると、「Turned off the whitelist」と表示され、ホワイトリスト機能が停止したことがわかります。

whitelist off
[10:58:12] [Server thread/INFO]: Turned off the whitelist

「server.properties」も「white-list=false」に自動的に変更されます。

$ grep white-list server.properties
white-list=false

Minecraftクライアントから停止

オペレータ権限を持ったユーザで下記コマンドを実行することで、ホワイトリストが無効化されます。

/whitelist off

ホワイトリストの停止

「Minecraft」のクライアントからホワイトリストを停止させます。

whitelist_08

ホワイトリストを無効にした旨のメッセージが表示され、ホワイトリストが停止したことがわかります。

whitelist_09

server.propertiesを編集して停止

最後に「server.properties」を編集してホワイトリストを停止する方法です。

server.properties編集

「server.properties」の「white-list」項目を「false」に変更し、「Minecraft_Server」を再起動することで設定を反映させることが出来ます。

$ vi server.properties
変更前
white-list=true
変更後
white-list=false

設定反映

「maincraft_server」を再起動することで、設定が反映されます。

whitelistコマンド一覧

whitelistコマンドの一覧です。

コマンド 内容
whitelist on ホワイトリストの有効化
whitelist off ホワイトリストの無効化(機能停止)
whitelist list ホワイトリストに登録されているユーザの確認(リストを表示)
whitelist add ユーザ名 ホワイトリストにユーザを追加
whitelist remove ユーザ名 ホワイトリストからユーザを削除
whitelist reload ホワイトリストの再読み込み

 - 運用