Самый безопасный способ сделать кого-то администратором игрового сервера - по ID платформы: SteamID64, UUID Minecraft в online-режиме, идентификатор лицензии FiveM, - записанному в файл, который можете редактировать только вы, по строке на человека. Самый небезопасный - единый пароль администратора, который все вводят в игре: его нельзя отследить, нельзя отобрать у одного человека, и он расходится дальше, чем вы думаете. Большинство игр предлагают один из этих вариантов или оба; ваша задача - выбирать вариант с ID везде, где он есть, держать пароль длинным, редко используемым и регулярно меняемым там, где его нет, и следить, чтобы аккаунты за этими ID сами было трудно украсть.
Эта статья - о власти администратора внутри игры: кто может кикать, банить, спавнить предметы и выполнять консольные команды прямо из игры. Аккаунт панели, которому принадлежит сервер, - отдельная и более крупная цель, о ней есть своя статья про двухфакторную аутентификацию в аккаунте панели, а как дать команде доступ к панели без вашего пароля, описано в статье субпользователи и минимальные привилегии.
Три способа, которыми игры определяют администратора#
Каждая игра использует одну из трёх моделей, иногда две сразу.
| Модель | Пример | Можно отследить | Можно отозвать у одного человека |
|---|---|---|---|
| Список ID в файле | ops.json, adminlist.txt, admins_simple.ini | Да | Да |
| Общий пароль администратора | ARK ServerAdminPassword, Palworld AdminPassword | Нет | Нет |
| Игровой аккаунт для каждого игрока | Аккаунты Project Zomboid | Да | Да |
Списки ID - хороший случай. Статус администратора привязан к аккаунту платформы, платформа этот аккаунт уже аутентифицировала, а чтобы убрать одного человека, достаточно удалить одну строку. Слабые места - сам аккаунт за ID, а также игры и режимы, где ID на самом деле не проверяется.
Общие пароли - плохой случай. Администратор - любой, кто знает пароль, в логе редко видно, кто именно им воспользовался, а чтобы убрать одного человека, пароль приходится менять для всех. К тому же утекают они предсказуемо: скриншоты, стримы, сообщение, вставленное не в тот канал Discord, бывший член команды, который всё ещё его помнит.
Аккаунты для каждого игрока - где-то посередине. У игры своя система логинов и паролей, поэтому права администратора принадлежат именованному аккаунту, но эти пароли настолько надёжны, насколько их делают надёжными ваши игроки.
Где живут права администратора в разных играх#
| Игра | Где задаются администраторы | Модель |
|---|---|---|
| Minecraft (Java) | ops.json, уровень из op-permission-level | Список UUID |
| Valheim | adminlist.txt | Список ID платформы |
| Rust | ownerid / moderatorid, сохраняются в users.cfg | Список SteamID |
| Игры на Source | SourceMod admins_simple.ini или admins.cfg | Список SteamID |
| CS 1.6 | AMX Mod X users.ini | ID, IP или ник |
| FiveM | add_principal и ACE в server.cfg | Список идентификаторов |
| 7 Days to Die | serveradmin.xml | Список ID платформы |
| ARK | ServerAdminPassword, AllowedCheaterSteamIDs.txt | Пароль или список ID |
| Palworld | AdminPassword в PalWorldSettings.ini | Общий пароль |
| Project Zomboid | Уровень доступа у серверного аккаунта | Аккаунт для каждого игрока |
| Unturned | Owner в Commands.dat, плюс admin | Список SteamID |
К некоторым из них нужны пояснения.
В Rust ownerid 76561198012345678 "Name" "reason" и moderatorid выдают два уровня администратора, а server.writecfg записывает их в users.cfg в папке cfg идентичности сервера. Если забыть server.writecfg, выданные права пропадут при следующем перезапуске - на удивление частая причина жалоб «у меня всё время пропадает админка».
В ARK команда enablecheats <password> во внутриигровой консоли делает вас администратором на текущую сессию. SteamID из AllowedCheaterSteamIDs.txt (в ShooterGame/Saved) получают права администратора без пароля. Используйте файл для команды, а пароль держите длинным секретом, который никто не вводит по привычке.
В Palworld права администратора - это /AdminPassword <password> в чате, и в ванильном сервере нет альтернативы с правами для отдельных игроков. Пароль - единственный ваш инструмент контроля, поэтому делайте его длинным, никогда не используйте на стриме и меняйте каждый раз, когда кто-то уходит из команды. Остальное - в статье админ-команды и RCON в Palworld.
В 7 Days to Die файл serveradmin.xml лежит в папке с данными сохранений и содержит пользователей с уровнем прав, где 0 - самый высокий. Примерно с версии 1.0 формат XML изменился и вместе с ID теперь указывается платформа, поэтому копируйте формат из файла, сгенерированного вашим сервером, а не из старого руководства.
В FiveM права администратора - это выдача ACE, привязанная к идентификатору:
add_ace group.admin command allowadd_ace group.admin command.quit denyadd_principal identifier.fivem:1234567 group.adminadd_principal identifier.discord:123456789012345678 group.moderatorПредпочитайте идентификаторы license:, fivem: или steam:. Идентификатор discord: безопасен ровно настолько, насколько безопасен аккаунт Discord этого человека, и это подводит нас к настоящему слабому месту.
Настоящая цель - аккаунт за ID#
Список администраторов по ID не устраняет проблему, а переносит её. Вашему противнику не нужен пароль администратора, если он может войти под одним из ваших администраторов.
Аккаунты Steam - главная цель в случае администраторов Source, Rust, Valheim, ARK и 7 Days to Die, и их фишат постоянно. Типичные способы: поддельные сайты обмена или турниров с копией страницы входа Steam, ссылки «проголосуй за мою команду» и фальшивые сообщения «на ваш аккаунт пожаловались», ведущие к форме входа. Член команды, который вошёл на таком сайте, отдал вместе со своим инвентарём и права администратора вашего сервера.
Что требовать от каждого, кого вы делаете администратором:
- Steam Guard с мобильным аутентификатором на том аккаунте, чей ID вы вносите в список. Коды по email лучше, чем ничего; аутентификатор ещё лучше.
- Двухфакторную аутентификацию в Discord, если роли в Discord дают какие-то права администратора или если команда координируется там. Взломанный аккаунт Discord с ролью команды может отправить остальной команде убедительное сообщение «вот новый пароль администратора».
- Уникальный пароль для каждого задействованного аккаунта, из менеджера паролей.
- Никаких общих аккаунтов. «Админский аккаунт Steam», в который заходят три человека, - это общий пароль с лишними шагами, и обычно на нём нет двухфакторной аутентификации, потому что делиться кодом неудобно.
Ничего из этого не требует жёсткости. Сделайте это частью вступления в команду, один раз объясните зачем и тихо проверяйте, когда кого-то повышаете.
Администраторы по нику и непроверенные ID#
Некоторые системы администрирования умеют сопоставлять по нику игрока, а ник - это то, что игрок сам вписал в настройки. Это превращает список администраторов в игру в угадайку.
AMX Mod X в CS 1.6 - классический пример. users.ini принимает ник, IP или SteamID, а флаги определяют, как проверяется запись:
; "name/ip/steamid" "password" "access flags" "account flags""STEAM_0:1:1234567" "" "abcdefghijkmnopqrstu" "ce""Moderator Tom" "a-long-password" "bcdefij" "a"Флаг аккаунта c означает, что идентификатор - это SteamID, а e - что пароль не проверяется; для игрока, проверенного через Steam, это правильная комбинация. Запись по нику с флагом a кикает любого с этим ником, кто не предоставил пароль. Пароль передаётся командой setinfo _pw "password" в консоли клиента (имя поля задаётся amx_password_field в amxx.cfg).
У пароля в setinfo есть неприятное свойство: значения setinfo отправляются на каждый сервер, на который заходит игрок, и любой владелец сервера может их прочитать. Администратор, который держит setinfo _pw в своём конфиге и играет на других серверах, раздаёт пароль всем. Предпочитайте записи по SteamID.
Есть и вторая ловушка. SteamID заслуживает доверия, только если сервер проверил его через Steam. Серверы, принимающие non-Steam клиентов, не могут проверить ID, который заявляет клиент, и на таких серверах записи администраторов по SteamID можно подделать. Если ваш сервер CS 1.6 пускает non-Steam игроков, используйте для администраторов записи по нику с паролем и флагом a и держите эти пароли в тайне.
У Minecraft в offline-режиме та же проблема. При online-mode=false и без прокси, который проводит аутентификацию, UUID игрока вычисляется из введённого ника, поэтому любой, кто зайдёт под вашим ником, становится оператором. Offline-режим уместен за прокси Velocity или BungeeCord, который аутентифицирует игроков и пересылает их идентичность, - но только если до бэкенд-серверов нельзя достучаться напрямую. Безопасная схема описана в статье белый список и права в Minecraft, а замена грубого статуса оператора нормальными группами прав - в статье LuckPerms для Minecraft.
Давайте команде меньше, чем всё#
Большинство игр делают права администратора одним переключателем, но почти каждый фреймворк администрирования предлагает уровни, и их использование ограничивает то, что может сделать один взломанный аккаунт из команды.
- Minecraft:
op-permission-levelвserver.propertiesзадаёт, что могут операторы, от1(обход защиты спавна) до4(всё, включая/stop). А ещё лучше - не давать оператора никому, кроме владельца, а модераторам выдать группу LuckPerms ровно с теми командами, которые им нужны. - Rust:
moderatoridвместоowneridдля модераторов. Владельцы могут управлять другими администраторами, модераторы - нет. - SourceMod: флаги для каждого человека, так что модератор получает кик, бан и чат (
bcdj) без RCon (m) и читов (n). Группы и иммунитет подробно разобраны в статье флаги администраторов и иммунитет в SourceMod. - FiveM: группы ACE с явными запретами на опасные команды, как в примере выше.
- 7 Days to Die: уровни прав в
serveradmin.xmlи уровни для отдельных команд в том же файле, так что модератор уровня 1 может кикать, но не спавнить предметы.
Принцип везде один: человеку, который по вторникам вечером следит за чатом, не нужны команды, способные удалить мир. Двух уровней - владелец и модератор - хватает большинству сообществ.
Смена паролей, уход из команды и бывшие администраторы#
Доступ, который нельзя чисто забрать, - это доступ, отданный навсегда. Когда кто-то уходит из команды, по-хорошему или по-плохому, пройдите по списку в тот же день:
- Удалите его ID из каждого файла администраторов и на каждом сервере сети. Общая база администраторов (о ней - в статье глобальные бан-системы для сообществ) превращает это из пяти изменений в одно.
- Смените каждый общий пароль, который он знал: пароль администратора ARK или Palworld, пароль RCON, любой пароль для входа на сервер, любой логин в инструментах. Да, все, даже если ему доверяли.
- Уберите его доступ субпользователя в панели и роль команды в Discord.
- Проверьте журнал активности на изменения, сделанные его аккаунтом за последние несколько дней.
- Поищите то, что он мог оставить после себя: лишнюю запись в файле администраторов под другим ID, запланированную задачу, плагин, который вы не узнаёте.
Пятый шаг кажется паранойей ровно до первого случая, когда удалённый человек возвращается с правами администратора на альт-аккаунте, потому что внёс SteamID этого альта ещё несколько недель назад.
Логирование действий администраторов#
Права администратора без записи действий невозможно контролировать и невозможно защитить. Когда игрок говорит, что модератор злоупотребил властью, отвечать хочется логом, а не ощущением.
- SourceMod пишет действия администраторов в
addons/sourcemod/logs, аsm_show_activityопределяет, как эти действия объявляются в игре. - Minecraft пишет в лог сервера каждую команду, выполненную игроком, а плагины вроде CoreProtect записывают изменения блоков и контейнеров.
- Rust, 7 Days to Die и большинство survival-игр пишут консольные команды и действия администраторов в лог сервера.
- Панель ведёт журнал активности для каждого сервера, и он охватывает людей с доступом к панели, а не людей в игре.
Храните эти логи достаточно долго, чтобы их хватило на разбор спора, - о сроках хранения говорится в статье логи, которые стоит хранить, - и иногда читайте их, даже когда всё в порядке. Злоупотребления редко начинаются с чего-то драматичного.
На RE:NODE пароли администратора, RCON и базы данных для нового игрового сервера генерируются отдельно для каждого сервера, а не остаются по умолчанию, а консоль панели работает вообще без открытия RCON, что выводит из оборота один общий секрет. Субпользователям панели можно выдать доступ к консоли без доступа к файлам и оплате, так что члену команды, которому нужно выполнить команду, больше ничего не требуется.
Решение проблем с правами администратора#
Мои права администратора пропадают после перезапуска (Rust). Вы выполнили ownerid, но не server.writecfg. Выдайте права снова и запишите конфиг.
Я добавил себя в ops.json, и ничего не произошло. Сервер читает ops.json при запуске; вместо этого выполните /op <name> из консоли или перезапустите сервер. Проверьте, что UUID - это online-UUID вашего аккаунта, а не offline.
Администратор SourceMod не распознаётся. Формат SteamID в файле не совпадает с тем, что видит сервер, или в файле синтаксическая ошибка. Скопируйте ID из status, выполните sm_reloadadmins и проверьте addons/sourcemod/logs на ошибку, связанную с файлом.
У кого-то не из команды есть права администратора. Считайте это взломом, пока не доказано обратное. Удалите запись, смените все общие пароли, проверьте журнал активности и файлы администраторов на каждом сервере и прочитайте статью что делать, если ваш сервер взломали, если найдёте что-то, чего не можете объяснить.
FAQ#
Безопасен ли пароль администратора, если он достаточно длинный?
Длинные пароли трудно подобрать, но большинство паролей администратора теряется из-за того, что ими делятся, а не из-за подбора. Проблема общего пароля в том, что нельзя понять, кто им воспользовался, и нельзя забрать его у одного человека. Используйте список ID везде, где он есть в игре.
Давать ли совладельцу те же права, что у меня?
Только если вас устроит, что он может всё удалить. Высший внутриигровой уровень давайте как можно меньшему числу людей, часто только тому, кто платит за сервер, а всем остальным - уровень модератора.
Может ли игрок подделать SteamID, чтобы получить права администратора?
Не на сервере с аутентификацией через Steam. ID проверяется через Steam при подключении. Подделать его можно на серверах, принимающих non-Steam клиентов, и в играх или режимах, которые пропускают аутентификацию платформы, например в Minecraft в offline-режиме без прокси.
Как часто менять пароли RCON и администратора?
Каждый раз, когда уходит кто-то, кто их знал, каждый раз, когда пароль мог попасть на стрим или скриншот, а в остальном - пару раз в год. Смена только по календарю пропускает именно те моменты, которые важны.
Нужны ли мне права администратора в игре, если есть консоль панели?
Для большинства задач нет. Консоль выполняет любую серверную команду без вашего присутствия в игре, и для владельца это часто более безопасный способ время от времени заниматься администрированием.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.