Skip to content

Chapter 9.9: アクセス制御 ​


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


目次 ​


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

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

cpp
passwordAdmin = "YourSecretPassword";

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

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

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


ban.txt ​

ban.txt ファイルはサーバールートディレクトリにあります。1行に1つのプレイヤーUIDが含まれます:

kBmDmSc4S3uVuKAJsBZTrh-jLWNJ3eX0_VsT2eXyV1Y=
DCV63zXcS_oWzPfED-PWAJVnJ3wOQ4_jE4WnZdfBkW8=
  • 各行は44文字のDayZプレイヤーUIDです -- 17桁のSteamID64ではありません。プレイヤーのUIDは *.ADM および *.RPT ログで確認できます。
  • 同じ行に // プレフィックスを付けてIDの後ろにコメントを追加するか、独立したコメント行として記述できます。
  • このファイルにUIDが記載されているプレイヤーは、接続時に拒否されます。
  • ban.txt の使用は serverDZ.cfg の disableBanlist で切り替えられます(デフォルト false)。
  • サーバーの実行中にファイルを編集できます。変更は次の接続試行時に有効になります。

whitelist.txt ​

whitelist.txt ファイルは同じサーバールートディレクトリにあります。ホワイトリストを有効にすると(serverDZ.cfg で enableWhitelist = 1)、UIDがこのファイルにリストされたプレイヤーのみ接続できます:

kBmDmSc4S3uVuKAJsBZTrh-jLWNJ3eX0_VsT2eXyV1Y=
DCV63zXcS_oWzPfED-PWAJVnJ3wOQ4_jE4WnZdfBkW8=

形式は ban.txt と同一です -- 1行に1つの44文字のプレイヤーUIDで、オプションで // コメントを付けられます。

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


BattlEyeアンチチート ​

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

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

BattlEyeはデフォルトで有効です。DayZServer_x64.exe でサーバーを起動すると、BattlEyeが自動的にロードされます。明示的に無効にするには(本番環境では非推奨)、serverDZ.cfg で BattlEye = 0; を設定します。

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


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

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

RConPassword yourpassword
RConPort 2305

BattlEyeには固定のデフォルトRCONポートがありません -- RConPort を省略すると、ランダムなポートでリッスンします。明示的に設定してください。推奨値はゲームポート + 3で、ポート 2302 で動作しているサーバーの場合は 2305 です。ゲームポートやSteamクエリポートと競合してはいけません。

利用可能な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.cfg の verifySignatures パラメータは、サーバーが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 でプレイヤーUIDの代わりにSteamID64を使用するBANが機能しない44文字のプレイヤーUIDを使用し、1行に1つ(// の後のコメントは許可される)
RCONポートの競合RCONクライアントが接続できないRCONポートが他のサービスに使用されていないことを確認し、ファイアウォールルールをチェック
本番環境で verifySignatures = 0改竄されたMODで誰でも参加可能公開サーバーでは 2 に設定する
ファイアウォールでRCONポートを開くのを忘れるRCONクライアントがタイムアウトするファイアウォールでRCON UDPポート(RConPort で設定したもの、例: 2305)を開く
BattlEye/ の bans.txt にプレイヤーUIDで編集するBANが機能しないBattlEyeの bans.txt はGUIDを使用し、UIDではない。UIDベースのBANにはサーバールートの ban.txt を使用する

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