RE:NODE

Безопасность11 мин чтения

Борьба с читерами: доказательства и бан-листы

Как подтвердить читерство до действий, сохранить доказательства для апелляции, банить по правильному идентификатору в каждой игре и вести бан-листы, которые не теряются.

0 прочтений

Правильная работа с читером - это три шага по порядку: подтвердить читерство доказательствами, которые можно показать кому-то ещё, забанить по идентификатору, который труднее всего заменить (аккаунт платформы, а не ник и обычно не IP), и записать бан с причиной туда, где он переживёт переустановку. Большинство владельцев серверов делают средний шаг первым, по жалобе в чате, а потом обнаруживают, что не могут обосновать бан, не могут удержать его против второго аккаунта или теряют список при следующем переезде. Команды простые; важен порядок.

Эта статья - о практической стороне: выявление, запись, бан, обход бана и апелляции, с командами бана и файлами для распространённых игр. Организационные вопросы - что написано в ваших правилах, сколько нужно людей в команде, лестница «предупреждение - кик - бан» - разобраны в статье правила сервера, модерация и команда. Что делает для вас античит, а что нет, - в статье BattlEye и Easy Anti-Cheat на серверах.

Сначала подтвердите, потом действуйте#

Жалоба - это зацепка, а не приговор. На хороших игроков постоянно жалуются как на читеров, особенно те, кого они только что обыграли, а ошибочный бан постоянного игрока обходится дороже, чем пропущенный читер.

Сигналы, к которым стоит отнестись серьёзно:

  • Информация, которой у игрока быть не должно. Префайр углов, которые никто не мог видеть, ведение цели сквозь стены, копание прямиком к алмазам, нахождение спрятанных баз в первую же ночь.
  • Механика, которая невозможна, а не просто хороша. Мгновенная наводка на голову с нечеловеческой скоростью, движение быстрее, чем позволяет игра, полёт, отсутствие промахов на дистанции.
  • Постоянство от сессии к сессии. Один невероятный раунд - это удача. Один и тот же шаблон в течение недели - нет.
  • Несколько независимых жалоб. Три не связанных между собой игрока, сообщающих об одном и том же поведении, стоят больше, чем десять сообщений от одного рассерженного человека.

Сигналы, слабые сами по себе: высокое соотношение убийств и смертей, новый аккаунт, ник, похожий на название чита, «все так говорят». Используйте их как повод присмотреться, а не как повод банить.

Самый надёжный способ по-прежнему - самому понаблюдать за игроком так, чтобы он об этом не знал. Наблюдайте в невидимости, где игра это позволяет (режим наблюдателя Minecraft или плагин vanish, spectate в Rust, слоты наблюдателей в Source), или просмотрите запись потом. Смотрите хотя бы несколько минут обычной игры, а не только момент из жалобы.

Как сделать жалобы игроков полезными

Большинство читеров находят игроки, а не команда, поэтому от качества жалоб зависит, сколько работы будет стоить каждая из них. Жалоба «Стив читерит» отправляет администратора на час копаться в логах; жалоба «Стив, около 21:10, третий раунд на второй карте, убил меня через стену на B» указывает на конкретное место в демке.

  • Просите время, место и что произошло. Короткий шаблон, закреплённый в канале для жалоб, или команда !report, которая фиксирует автора жалобы, цель и время сервера, делает большую часть работы.
  • Записывайте время сервера, а не местное время автора жалобы. Игроки из разных часовых поясов указывают своё время, а логи ведутся по времени сервера.
  • Отвечайте на каждую жалобу, хотя бы одной строкой «посмотрели, оснований для действий недостаточно». Игроки, которые чувствуют, что их игнорируют, перестают жаловаться, и тогда вы узнаёте о читерах, только когда сервер уже опустел.
  • Никогда не действуйте по жалобе соперника посреди матча. Разберитесь потом, спокойно, с записью.

У SourceMod, Rust, FiveM и Minecraft есть плагины, которые добавляют внутриигровую команду жалобы и публикуют её в канале команды с именем сервера и временем, - это самое дешёвое улучшение, которое здесь можно сделать.

Доказательства, которые выдержат апелляцию#

На апелляцию легко ответить, когда можно сказать «вот запись на 21:14». И мучительно, когда нельзя. Собирайте доказательства до бана: как только читер забанен, он перестаёт их производить.

ИграВстроенные доказательстваТипичные дополнения
CS2 и игры на SourceСерверные демки через tv_recordПросмотр демки в игре, логи админ-плагинов
MinecraftЛог сервера, командыИстория блоков и контейнеров CoreProtect
RustЛог сервера, combat logПлагины логирования и жалоб
FiveMКонсоль сервераЖурнал действий txAdmin, ресурсы для скриншотов
DayZ, Arma 3Админ-лог, логи BattlEyeКилфиды админ-инструментов с позициями
Survival-игры в целомЛог сервераЗаписи экрана от команды

В играх на Source и CS2 серверная демка - лучшее доказательство из возможных, потому что её можно смотреть с точки зрения любого игрока, в том числе сквозь стены. При включённом SourceTV или GOTV команда tv_record <name> начинает запись, а tv_stoprecord её останавливает; файл .dem появляется в папке игры. Как настроить запись так, чтобы она шла автоматически, а не зависела от памяти администратора, описано в статье GOTV и демки в CS2.

В Minecraft CoreProtect превращает «он за час нашёл все алмазы» в запрос:

code
/co lookup user:Steve time:3d action:-block include:diamond_ore,deepslate_diamond_ore/co lookup user:Steve time:1d action:+container/co inspect

Первая строка выводит все алмазные руды, которые он сломал за три дня, с координатами, и в сравнении с туннелями, прорытыми к ним, это обычно исчерпывающее доказательство иксрея. Вторая показывает, что он забрал из сундуков. О плагине и о встроенном anti-xray в Paper - в статье защита от гриферов и античит для Minecraft.

В какой бы игре это ни было, записывайте доказательства в момент бана: кто, что, когда, какой файл или метка времени это показывает и кто принял решение. Бан без записанной причины - это бан, подробностей которого вы не вспомните через три месяца, когда придёт апелляция.

Что банить: аккаунт, IP или железо#

Каждый бан направлен на какой-то идентификатор, и от идентификатора зависит, насколько легко бан обойти и сколько попутного ущерба он нанесёт.

ИдентификаторЦена обходаРиск задеть невиновных
Ник игрокаНулевая - сменить никВысокий - ник может занять кто-то другой
Аккаунт платформы (SteamID, UUID, лицензия)Купить или одолжить другой аккаунтНизкий
IP-адресПерезагрузить роутер, включить VPNМожет задеть семью, школу или мобильного оператора
Идентификатор железа (где есть)Инструменты подмены, новое железоМожет задеть общий компьютер

По умолчанию баньте аккаунт платформы. Его аутентифицирует игра, его дёшево забанить, а заменить его в платной игре читеру стоит реальных денег или усилий. В free-to-play играх баны аккаунтов слабее, потому что новый аккаунт ничего не стоит; вот там и пригождаются идентификаторы IP и железа.

Используйте IP-баны как временную меру против того, кто активно обходит бан, а не как постоянную запись. Домашние адреса меняются, мобильные операторы держат тысячи пользователей за одним адресом, а постоянный IP-бан может закрыть доступ невиновному члену семьи или целому студенческому общежитию. Если игра это позволяет, разумная комбинация - IP-бан на время плюс постоянный бан аккаунта.

Никогда не баньте только по нику. В большинстве игр ник - это отображаемая подпись, которую может взять кто угодно.

Команды бана и файлы по играм#

Для одного сервера ванильных команд достаточно. Для сети серверов или для временных банов в играх, которые их не поддерживают, понадобится плагин - об этом в статье глобальные бан-системы для сообществ.

ИграБанРазбанГде хранится
Minecraft/ban <player> [reason], /ban-ip/pardon, /pardon-ipbanned-players.json, banned-ips.json
Source (TF2, GMod, L4D2)banid <minutes> <id>, затем writeidremoveidcfg/banned_user.cfg
SourceModsm_ban <target> <minutes> [reason], sm_addbansm_unbanЕго база данных или файлы выше
Rustbanid <steamid> "name" "reason"unban <steamid>Сохраняется через server.writecfg
Valheimban <name or ID>unban <ID>bannedlist.txt
7 Days to Dieban add <id> <duration> <unit> [reason]ban remove <id>Файл администраторов сервера
Project Zomboid/banuser "name" -ip -r "reason", /banid/unbanuser, /unbanidБаза данных сервера
FiveMБан в txAdmin со срокомtxAdminБаза данных txAdmin

Детали, на которых часто спотыкаются:

  • В Minecraft в ванилле нет временных банов. /ban действует навсегда, пока не выполнен /pardon. Плагины вроде EssentialsX добавляют /tempban, а бан-плагины - сроки, причины и историю. Ванильные баны хранятся по UUID, поэтому переживают смену ника.
  • Игры на Source держат баны в памяти, пока вы их не запишете. banid 0 STEAM_0:1:12345 банит навсегда, но теряется при перезапуске, если не выполнить writeid, а чтобы загрузить баны обратно, в server.cfg нужны exec banned_user.cfg и exec banned_ip.cfg. sm_ban в SourceMod делает это за вас.
  • Rust записывает баны в папку конфигов сервера только при выполнении server.writecfg. Выполняйте её после бана или поставьте по расписанию.
  • 7 Days to Die принимает срок и единицу, например ban add Steve 7 days "x-ray", что упрощает градацию банов.
  • FiveM: баны через txAdmin записывают все идентификаторы игрока, включая аппаратные токены, поэтому обойти их сложнее, чем в большинстве игр. О панели - в статье сервер FiveM и txAdmin.

На RE:NODE каждую из этих команд можно выполнить из консоли панели, так что бан выдаётся без присутствия администратора в игре, а файлы банов - обычные файлы, которые можно скачать, отредактировать и сохранить в backup из файлового менеджера.

Обход бана и альт-аккаунты#

Читер, которому не всё равно, вернётся. Признаки знакомые: новый аккаунт, который играет точно как старый, заходит в те же часы, знает то, чего не знал бы новичок, и направляется прямо к тем же друзьям или к той же базе.

Что помогает:

  1. Проверьте историю IP. Многие админ-плагины и фреймворки записывают адрес, с которого подключался каждый аккаунт. Забаненный аккаунт и новый с того же адреса в течение суток - сильный сигнал, хотя и не доказательство, ведь адреса бывают общими у целой семьи.
  2. Проверьте возраст и историю аккаунта платформы. В Steam профиль, созданный вчера, с одной игрой и без друзей, который зашёл через час после бана, стоит рассмотреть внимательнее. Некоторые игры и плагины умеют также проверять, не взята ли игра через Steam Family Sharing, - это распространённый способ играть со свежего аккаунта.
  3. Используйте идентификаторы железа там, где игра их даёт. Самый известный пример - FiveM.
  4. Привяжите доверенные возможности к наигранному времени. Киты, ранги, приваты баз и доступ к голосовому чату, которые открываются через несколько часов игры, делают свежий аккаунт гораздо менее полезным для обходящего бан.
  5. Баньте новый аккаунт за обход бана, когда доказательства ясны, и записывайте связь между двумя аккаунтами.

Что не помогает, так это баны широких диапазонов IP или целых стран. В основном они наказывают людей, которые ничего не сделали.

Как вести бан-листы на долгий срок#

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

  • Делайте backup файлов банов вместе со всем остальным. banned-players.json, bannedlist.txt, banned_user.cfg, база данных плагина. Слоты для backup есть на каждом тарифе RE:NODE, и их можно поставить по расписанию, так что это происходит без того, чтобы кто-то об этом помнил.
  • Храните причины и ссылки на доказательства вместе с баном. Через полгода «читерство» - недостаточно; «иксрей, запрос CoreProtect от 2026-10-03, см. папку с доказательствами» - достаточно.
  • Экспортируйте данные перед сменой бан-плагина. Большинство бан-плагинов умеют импортировать из ванильных списков или друг из друга, но только если у вас есть старые данные.
  • Пересматривайте временные баны. Список, где каждый бан постоянный, заполняется людьми, которые через неделю вели бы себя нормально.

Перенос бан-листов на новый сервер или к новому хостеру

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

  1. Ванильные файлы - banned-players.json и banned-ips.json в Minecraft, bannedlist.txt в Valheim, banned_user.cfg и banned_ip.cfg в играх на Source, папка cfg сервера в Rust.
  2. Базы данных плагинов - для бан-плагина с базой данных нужен дамп этой базы, а не только файл конфигурации. Как его сделать, описано в статье backup и восстановление баз данных.
  3. Папку с доказательствами, чтобы и после переезда можно было отвечать на апелляции.

После переезда проверьте: попробуйте зайти с забаненного тестового аккаунта, если он у вас есть, или убедитесь, что число банов в плагине совпадает со старым сервером. Остальное о переезде - в статье как перенести сервер и не потерять игроков.

Апелляции без драмы#

Процесс апелляций - это способ исправлять собственные ошибки, и его наличие делает оставшиеся баны более убедительными.

  • Сделайте один канал. Форма, тикет в Discord или адрес почты - а не личные сообщения отдельным членам команды.
  • Отвечайте записанными доказательствами. Если доказательства ясны, коротко скажите об этом и закройте обращение. Если нет, снимите бан: ошибочный бан стоит доверию вашего сообщества дороже, чем один читер.
  • Пусть решение принимает не тот администратор, который забанил. Так процесс остаётся честным, а администратор защищён от обвинений.
  • Не обсуждайте детали обнаружения. Подробное объяснение того, на чём человек спалился, учит следующего, чего избегать.
  • Говорите, что вы не можете отменить. Глобальные баны античита, VAC-баны и баны разработчика - не ваши. Направьте игрока по нужному адресу и закройте обращение.

FAQ#

Банить за первое нарушение или предупреждать?

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

Достаточно ли соотношения убийств и смертей как доказательства?

Нет. Это повод присмотреться, а не банить. У многих честных игроков экстремальная статистика, а многие читеры намеренно держат свою обычной. Основывайте баны на том, что игрок сделал, - показанном в записи или логе.

Почему забаненный игрок сразу вернулся?

Вы забанили ник или IP вместо аккаунта, бан в Source не был записан на диск через writeid, или бан в Rust потерялся, потому что не выполнили server.writecfg. В остальных случаях он зашёл со второго аккаунта, а это уже обход бана.

Стоит ли публиковать открытый список забаненных читеров?

Обычно нет. Это провоцирует споры, может содержать ошибки и выносит в публичное поле персональные идентификаторы и обвинения. Держите список закрытым, записывайте всё аккуратно и делитесь им только при ясной причине и законном основании.

Можно ли забанить того, кто ни разу не заходил на мой сервер?

В большинстве игр - да, по ID аккаунта: sm_addban, banid в Rust, bannedlist.txt в Valheim и /ban в Minecraft с ником, который сервер может сопоставить с UUID, работают и для отсутствующих игроков.


Комментарии

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

0/2000