Skip to content

Chapter 9.9: アクセス制御

ホーム | << 前へ: パフォーマンスチューニング | 次へ: MOD管理 >>


概要: DayZサーバーへの接続を許可するユーザーの設定、BANの仕組み、リモート管理の有効化方法、MOD署名検証が無許可のコンテンツを排除する仕組みを解説します。この章ではサーバーオペレーターが利用できるすべてのアクセス制御メカニズムを網羅します。


目次


serverDZ.cfgでの管理者アクセス

serverDZ.cfgpasswordAdmin パラメータがサーバーの管理者パスワードを設定します:

cpp
passwordAdmin = "YourSecretPassword";

このパスワードは2つの方法で使用します:

  1. ゲーム内 -- チャットを開いて #login YourSecretPassword と入力すると、そのセッションの管理者権限を取得します。
  2. RCON -- このパスワードを使用してBattlEye RCONクライアントで接続します(下記のRCONセクションを参照)。

管理者パスワードは長くユニークなものにしてください。それを知っている人は、実行中のサーバーを完全に制御できます。


ban.txt

ban.txt ファイルはサーバープロファイルディレクトリ(-profiles= で設定したパス)にあります。1行に1つのSteamID64が含まれます:

76561198012345678
76561198087654321
  • 各行は17桁のSteamID64のみです -- 名前、コメント、パスワードは含みません。
  • このファイルにSteamIDが記載されているプレイヤーは、接続時に拒否されます。
  • サーバーの実行中にファイルを編集できます。変更は次の接続試行時に有効になります。

whitelist.txt

whitelist.txt ファイルは同じプロファイルディレクトリにあります。ホワイトリストを有効にすると、このファイルにリストされたSteamIDのみ接続できます:

76561198012345678
76561198087654321

形式は ban.txt と同一です -- 1行に1つのSteamID64のみ、それ以外は含みません。

ホワイトリストは、プライベートコミュニティ、テストサーバー、または管理されたプレイヤーリストが必要なイベントに便利です。


BattlEyeアンチチート

BattlEyeはDayZに統合されたアンチチートシステムです。そのファイルはサーバーディレクトリ内の BattlEye/ フォルダにあります:

ファイル目的
BEServer_x64.dllBattlEyeアンチチートエンジンバイナリ
beserver_x64.cfg設定ファイル(RCONポート、RCONパスワード)
bans.txtBattlEye固有のBAN(GUIDベース、SteamIDではない)

BattlEyeはデフォルトで有効です。DayZServer_x64.exe でサーバーを起動すると、BattlEyeが自動的にロードされます。明示的に無効にするには(本番環境では非推奨)、-noBE 起動パラメータを使用します。

BattlEye/ フォルダ内の bans.txt ファイルはBattlEye GUIDを使用しており、SteamID64とは異なります。RCONまたはBattlEyeコマンドを通じて発行されたBANは、このファイルに自動的に書き込まれます。


RCON(リモートコンソール)

BattlEye RCONを使用すると、ゲーム内にいなくてもサーバーをリモートで管理できます。BattlEye/beserver_x64.cfg で設定します:

RConPassword yourpassword
RConPort 2306

デフォルトのRCONポートはゲームポート + 4です。サーバーがポート 2302 で動作している場合、RCONのデフォルトは 2306 です。

利用可能なRCONコマンド

コマンド効果
kick <player> [reason]プレイヤーをサーバーからキックする
ban <player> [minutes] [reason]プレイヤーをBAN(BattlEye bans.txtに書き込み)
say -1 <message>すべてのプレイヤーにメッセージをブロードキャスト
#shutdownグレースフルサーバーシャットダウン
#lockサーバーをロック(新しい接続を拒否)
#unlockサーバーのロックを解除
players接続中のプレイヤーをリスト

RCONへの接続にはBattlEye RCONクライアント(無料のツールがいくつか存在します)を使用します。接続にはIP、RCONポート、beserver_x64.cfg のパスワードが必要です。


署名検証

serverDZ.cfgverifySignatures パラメータは、サーバーがMOD署名をチェックするかどうかを制御します:

cpp
verifySignatures = 2;
動作
0無効 -- 誰でも任意のMODで参加でき、署名チェックなし
2完全検証 -- クライアントはロードされたすべてのMODに有効な署名が必要(デフォルト)

本番サーバーでは常に verifySignatures = 2 を使用してください。0 に設定すると、プレイヤーが改変または未署名のMODで参加できるようになり、深刻なセキュリティリスクとなります。


keys/ ディレクトリ

サーバールートの keys/ ディレクトリには .bikey ファイルが格納されています。各 .bikey はMODに対応し、サーバーに「このMODの署名は信頼されている」と伝えます。

verifySignatures = 2 の場合:

  1. サーバーは接続するクライアントがロードしているすべてのMODをチェックします。
  2. 各MODについて、サーバーは keys/ で一致する .bikey を探します。
  3. 一致するキーがない場合、プレイヤーはキックされます。

サーバーにインストールするすべてのMODには .bikey ファイルが付属しています(通常、MODの Keys/ または Key/ サブフォルダ内)。そのファイルをサーバーの keys/ ディレクトリにコピーします。

DayZServer/
├── keys/
│   ├── dayz.bikey              ← バニラ(常に存在)
│   ├── MyMod.bikey             ← @MyMod/Keys/ からコピー
│   └── AnotherMod.bikey        ← @AnotherMod/Keys/ からコピー

新しいMODを追加して .bikey のコピーを忘れると、そのMODを実行しているすべてのプレイヤーが接続時にキックされます。


ゲーム内管理者ツール

チャットで #login <password> を使用してログインすると、管理者ツールにアクセスできます:

  • プレイヤーリスト -- SteamIDとともにすべての接続中のプレイヤーを表示します。
  • キック/BAN -- プレイヤーリストからプレイヤーを直接削除またはBANします。
  • テレポート -- 管理者マップを使用して任意の位置にテレポートします。
  • 管理者ログ -- プレイヤーのアクション(キル、接続、切断)のサーバーサイドログがプロファイルディレクトリの *.ADM ファイルに書き込まれます。
  • フリーカメラ -- キャラクターからデタッチしてマップ上を自由に飛び回ります。

これらのツールはバニラゲームに組み込まれています。サードパーティのMOD(Community Online Toolsなど)は管理者の機能を大幅に拡張します。


よくある間違い

以下はサーバーオペレーターが最も頻繁に遭遇する問題です:

間違い症状対処法
keys/.bikey がないプレイヤーが署名エラーで参加時にキックされるMODの .bikey ファイルをサーバーの keys/ ディレクトリにコピーする
ban.txt に名前やパスワードを入れるBANが機能しない、ランダムなエラーSteamID64値のみを使用し、1行に1つ
RCONポートの競合RCONクライアントが接続できないRCONポートが他のサービスに使用されていないことを確認し、ファイアウォールルールをチェック
本番環境で verifySignatures = 0改竄されたMODで誰でも参加可能公開サーバーでは 2 に設定する
ファイアウォールでRCONポートを開くのを忘れるRCONクライアントがタイムアウトするファイアウォールでRCON UDPポート(デフォルト2306)を開く
BattlEye/bans.txt にSteamIDで編集するBANが機能しないBattlEyeの bans.txt はGUIDを使用し、SteamIDではない。SteamIDでのBANにはプロファイルディレクトリの ban.txt を使用する

ホーム | << 前へ: パフォーマンスチューニング | 次へ: MOD管理 >>

Released under CC BY-SA 4.0 | Code examples under MIT License