Chapter 9.9: アクセス制御
ホーム | << 前へ: パフォーマンスチューニング | 次へ: MOD管理 >>
概要: 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 ファイルはサーバープロファイルディレクトリ(-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.dll | BattlEyeアンチチートエンジンバイナリ |
| beserver_x64.cfg | 設定ファイル(RCONポート、RCONパスワード) |
| bans.txt | BattlEye固有の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.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 に名前やパスワードを入れる | 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 を使用する |
