Chapter 9.9: アクセス制御
概要: DayZサーバーへの接続を許可するユーザーの設定、BANの仕組み、リモート管理の有効化方法、MOD署名検証が無許可のコンテンツを排除する仕組みを解説します。この章ではサーバーオペレーターが利用できるすべてのアクセス制御メカニズムを網羅します。
目次
- serverDZ.cfgでの管理者アクセス
- ban.txt
- whitelist.txt
- BattlEyeアンチチート
- RCON(リモートコンソール)
- 署名検証
- keys/ ディレクトリ
- ゲーム内管理者ツール
- よくある間違い
serverDZ.cfgでの管理者アクセス
serverDZ.cfg の passwordAdmin パラメータがサーバーの管理者パスワードを設定します:
passwordAdmin = "YourSecretPassword";このパスワードは2つの方法で使用します:
- ゲーム内 -- チャットを開いて
#login YourSecretPasswordと入力すると、そのセッションの管理者権限を取得します。 - 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.dll | BattlEyeアンチチートエンジンバイナリ |
| beserver_x64.cfg | 設定ファイル(RCONポート、RCONパスワード) |
| bans.txt | BattlEye固有の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 2305BattlEyeには固定のデフォルト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署名をチェックするかどうかを制御します:
verifySignatures = 2;| 値 | 動作 |
|---|---|
0 | 無効 -- 誰でも任意のMODで参加でき、署名チェックなし |
2 | 完全検証 -- クライアントはロードされたすべてのMODに有効な署名が必要(デフォルト) |
本番サーバーでは常に verifySignatures = 2 を使用してください。0 に設定すると、プレイヤーが改変または未署名のMODで参加できるようになり、深刻なセキュリティリスクとなります。
keys/ ディレクトリ
サーバールートの keys/ ディレクトリには .bikey ファイルが格納されています。各 .bikey はMODに対応し、サーバーに「このMODの署名は信頼されている」と伝えます。
verifySignatures = 2 の場合:
- サーバーは接続するクライアントがロードしているすべてのMODをチェックします。
- 各MODについて、サーバーは
keys/で一致する.bikeyを探します。 - 一致するキーがない場合、プレイヤーはキックされます。
サーバーにインストールするすべての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 を使用する |
