Skip to content

Глава 9.9: Контроль доступа

Главная | << Назад: Настройка производительности | Далее: Управление модами >>


Краткое содержание: Настройка того, кто может подключаться к вашему DayZ-серверу, как работают баны, как включить удалённое администрирование и как проверка подписей модов не допускает неавторизованный контент. Эта глава охватывает все механизмы контроля доступа, доступные оператору сервера.


Содержание


Доступ администратора через serverDZ.cfg

Параметр passwordAdmin в serverDZ.cfg задаёт пароль администратора для вашего сервера:

cpp
passwordAdmin = "YourSecretPassword";

Вы используете этот пароль двумя способами:

  1. В игре -- откройте чат и введите #login YourSecretPassword, чтобы получить привилегии администратора на текущую сессию.
  2. RCON -- подключитесь с помощью клиента BattlEye RCON, используя этот пароль (см. раздел RCON ниже).

Держите пароль администратора длинным и уникальным. Любой, кто его знает, имеет полный контроль над работающим сервером.


ban.txt

Файл ban.txt находится в каталоге профиля вашего сервера (путь, заданный параметром -profiles=). Он содержит по одному SteamID64 на строку:

76561198012345678
76561198087654321
  • Каждая строка -- это простой 17-значный SteamID64 -- без имён, без комментариев, без паролей.
  • Игрокам, чей SteamID указан в этом файле, отказывается подключение при попытке входа.
  • Вы можете редактировать файл при работающем сервере; изменения вступают в силу при следующей попытке подключения.

whitelist.txt

Файл whitelist.txt находится в том же каталоге профиля. При включении белого списка подключаться могут только SteamID, указанные в этом файле:

76561198012345678
76561198087654321

Формат идентичен ban.txt -- один SteamID64 на строку, ничего больше.

Белый список полезен для приватных сообществ, тестовых серверов или мероприятий, где нужен контролируемый список игроков.


Античит BattlEye

BattlEye -- это система античита, интегрированная в DayZ. Её файлы находятся в папке BattlEye/ внутри каталога вашего сервера:

ФайлНазначение
BEServer_x64.dllДвоичный файл движка античита BattlEye
beserver_x64.cfgКонфигурационный файл (порт RCON, пароль RCON)
bans.txtБаны BattlEye (на основе GUID, не SteamID)

BattlEye включён по умолчанию. Вы запускаете сервер с помощью DayZServer_x64.exe, и BattlEye загружается автоматически. Для явного отключения (не рекомендуется для продакшена) используйте параметр запуска -noBE.

Файл bans.txt в папке BattlEye/ использует GUID BattlEye, которые отличаются от SteamID64. Баны, выданные через RCON или команды BattlEye, записываются в этот файл автоматически.


RCON (Удалённая консоль)

BattlEye RCON позволяет администрировать сервер удалённо без входа в игру. Настройте его в BattlEye/beserver_x64.cfg:

RConPassword yourpassword
RConPort 2306

Порт RCON по умолчанию -- ваш игровой порт плюс 4. Если ваш сервер работает на порту 2302, RCON по умолчанию использует 2306.

Доступные команды RCON

КомандаДействие
kick <player> [reason]Кикнуть игрока с сервера
ban <player> [minutes] [reason]Забанить игрока (записывается в BattlEye bans.txt)
say -1 <message>Отправить сообщение всем игрокам
#shutdownШтатное завершение работы сервера
#lockЗаблокировать сервер (нет новых подключений)
#unlockРазблокировать сервер
playersСписок подключённых игроков

Вы подключаетесь к RCON с помощью клиента BattlEye RCON (существует несколько бесплатных инструментов). Для подключения требуется IP, порт RCON и пароль из beserver_x64.cfg.


Проверка подписей

Параметр verifySignatures в serverDZ.cfg контролирует, проверяет ли сервер подписи модов:

cpp
verifySignatures = 2;
ЗначениеПоведение
0Отключено -- любой может подключиться с любыми модами, без проверки подписей
2Полная проверка -- клиенты должны иметь валидные подписи для всех загруженных модов (по умолчанию)

Всегда используйте verifySignatures = 2 на продакшен-серверах. Установка в 0 позволяет игрокам подключаться с модифицированными или неподписанными модами, что является серьёзным риском безопасности.


Каталог keys/

Каталог keys/ в корне вашего сервера содержит файлы .bikey. Каждый .bikey соответствует моду и сообщает серверу "подписи этого мода доверены."

Когда verifySignatures = 2:

  1. Сервер проверяет каждый мод, загруженный подключающимся клиентом.
  2. Для каждого мода сервер ищет соответствующий .bikey в keys/.
  3. Если подходящий ключ отсутствует, игрок кикается.

Каждый мод, который вы устанавливаете на сервере, поставляется с файлом .bikey (обычно в подпапке Keys/ или Key/ мода). Вы копируете этот файл в каталог keys/ вашего сервера.

DayZServer/
├── keys/
│   ├── dayz.bikey              <- ванильный (всегда присутствует)
│   ├── MyMod.bikey             <- скопирован из @MyMod/Keys/
│   └── AnotherMod.bikey        <- скопирован из @AnotherMod/Keys/

Если вы добавляете новый мод и забываете скопировать его .bikey, каждый игрок с этим модом будет кикнут при подключении.


Внутриигровые инструменты администратора

После входа с помощью #login <password> в чате вы получаете доступ к инструментам администратора:

  • Список игроков -- просмотр всех подключённых игроков с их SteamID.
  • Кик/бан -- удаление или бан игроков напрямую из списка.
  • Телепортация -- использование карты администратора для телепортации в любую позицию.
  • Лог администратора -- серверный лог действий игроков (убийства, подключения, отключения), записываемый в файлы *.ADM в каталоге профиля.
  • Свободная камера -- отсоединение от вашего персонажа и полёт по карте.

Эти инструменты встроены в ванильную игру. Сторонние моды (такие как Community Online Tools) значительно расширяют возможности администрирования.


Распространённые ошибки

Это проблемы, с которыми операторы серверов сталкиваются чаще всего:

ОшибкаСимптомРешение
Отсутствие .bikey в keys/Игроки кикаются при подключении с ошибкой подписиСкопируйте файл .bikey мода в каталог keys/ вашего сервера
Добавление имён или паролей в ban.txtБаны не работают; случайные ошибкиИспользуйте только чистые значения SteamID64, по одному на строку
Конфликт порта RCONRCON-клиент не может подключитьсяУбедитесь, что порт RCON не используется другим сервисом; проверьте правила файрвола
verifySignatures = 0 в продакшенеЛюбой может подключиться с изменёнными модамиУстановите в 2 на любом публичном сервере
Забыли открыть порт RCON в файрволеRCON-клиент получает таймаутОткройте UDP-порт RCON (по умолчанию 2306) в вашем файрволе
Редактирование bans.txt в BattlEye/ с SteamIDБаны не работаютBattlEye bans.txt использует GUID, а не SteamID; используйте ban.txt в каталоге профиля для банов по SteamID

Главная | << Назад: Настройка производительности | Далее: Управление модами >>

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