Самая сильная защита от грифинга в Minecraft - это вайтлист, и она ничего не стоит. На сервере, где нет посторонних, нет и проблемы грифинга. Всё остальное написано для серверов, которые так поступить не могут: публичных, с Discord, полным людей, которых никто не видел, - и делится на три слоя, решающих разные задачи. Приваты и регионы не дают ущербу случиться. CoreProtect записывает, что произошло, чтобы это можно было отменить. Античит и anti-xray занимаются игроками, ломающими игру, а не постройки. Большинство серверов ставят все три слоя плохо: плагин отката без политики хранения, античит с настройками по умолчанию, который выбрасывает людей с элитр, и никаких резервных копий вообще. Эта статья о том, как довести каждый слой до состояния, в котором он оправдывает потраченную память.
Решите, от чего вы защищаетесь#
Это разные проблемы с разными ответами, и то, что их путают, - причина, по которой люди ставят восемь плагинов и всё равно удивляются.
- Посторонний разрушает постройку. Приваты, регионы и вайтлист. Профилактика.
- Тот, кому вы доверяли, опустошает общий сундук. Ни один плагин привата этого не остановит, потому что ему там находиться разрешено. Нужны CoreProtect и модераторы, умеющие им пользоваться.
- Игрок использует X-ray, чтобы находить алмазы. Это не грифинг, и античит такое не ловит. Тут нужен anti-xray в Paper, который работает так: не присылает правду.
- Игрок летает, бьёт через стены или копает со скоростью восемь блоков в секунду. Это дело античита, а он делает выводы по пакетам и никогда не бывает идеальным.
- Игрок обрушивает сервер специально собранным пакетом или гигантской книгой. Это ограничения самого Paper, которые уже есть в вашем конфиге и в основном уже включены.
- Файл мира пропал. Ничто из перечисленного не поможет. Резервные копии.
Прежде чем что-то тратить, выясните, какая из этих проблем у вас реально есть. Приватному SMP на двенадцать друзей нужны CoreProtect и резервные копии, и ничего больше. Публичному выживанию нужно всё.
CoreProtect: журнал, который вам ещё пригодится#
CoreProtect записывает установку и разрушение блоков, операции с контейнерами, выброс и подбор предметов, текст табличек, убийства существ, чат, команды и сессии входа, а также умеет возвращать блоки на место. Он бесплатный, он стал стандартом, и это первый плагин, который нужно ставить на любой сервер, где могут строить посторонние.
Положите jar-файл в plugins/, перезапустите - и плагин сам создаст свою базу данных в plugins/CoreProtect/. На RE:NODE вы загружаете этот jar сами через файловый менеджер или SFTP: линейка Minecraft работает на Paper без установщика плагинов, а значит, и без запрещённых плагинов.
Основной инструмент - инспектор. /co inspect включает его: левый клик по блоку показывает его историю, правый клик по блоку показывает историю клетки рядом с той гранью, по которой вы кликнули, а правый клик по сундуку показывает всё, что в него клали и из него брали. Выключите его той же командой, потому что пока он включён, он заменяет обычное взаимодействие.
| Команда | Что делает |
|---|---|
/co inspect | Включает и выключает инспектор |
/co lookup u:Steve t:3h r:20 | Поиск по журналу |
/co lookup t:1d a:container r:10 | Операции с контейнерами поблизости |
/co rollback u:Griefer t:6h r:50 | Отменяет его изменения за этот период |
/co rollback u:Griefer t:6h r:50 #preview | Показывает откат, не применяя его |
/co restore u:Griefer t:6h r:50 | Возвращает изменения обратно - противоположность rollback |
/co undo | Отменяет последний выполненный вами rollback или restore |
/co purge t:30d | Удаляет записи журнала старше 30 дней |
/co near | Что изменилось в нескольких блоках вокруг |
/co status | Версия, база данных и число записей |
Параметры комбинируются. u: - пользователь (или несколько через запятую), t: - временное окно вида t:2h30m или t:7d, r: - радиус в блоках, a: - действие (a:block, a:+block только для установки, a:-block только для разрушения, a:container, a:item, a:click, a:kill, a:chat, a:command, a:session, a:sign), b: фильтрует по типу блока, а e: исключает его. #preview для отката - привычка, которую стоит выработать: посмотрите, что будет изменено, прежде чем менять.
Два решения в конфигурации важнее остальных. Первое - радиус. default-radius используется CoreProtect, когда вы опускаете r:, а max-radius ограничивает размер одной операции; задайте их осознанно, потому что откат со случайно огромным радиусом кладёт сервер на всё время выполнения.
Второе - диск. CoreProtect по умолчанию логирует всё, и база данных неуклонно растёт; на загруженном публичном сервере это сотни мегабайт в месяц, и она делит диск вашего тарифа с миром. Отключите категории, которые никто никогда не просматривает, - liquid-tracking, leaves-decay, tree-grow, natural-break и block-movement самые шумные - и запускайте /co purge t:30d по расписанию. Тридцати дней истории хватает практически на любую жалобу на грифинг, которая когда-либо будет подана.
use-mysql: falsetable-prefix: co_default-radius: 10max-radius: 100liquid-tracking: falseleaves-decay: falsetree-grow: falsenatural-break: falseplayer-messages: trueplayer-commands: trueЕсли локальная база разрастается настолько, что это беспокоит, CoreProtect может писать во внешнюю базу данных: задайте use-mysql: true и заполните ключи mysql-*. В игровых тарифах RE:NODE есть один слот базы данных, создаваемый в панели со сгенерированными хостом, пользователем и паролем. Направьте CoreProtect на неё и при следующем запуске посмотрите в консоль, чтобы убедиться, что подключение прошло, а не предполагать это.
Права стоит разделять. coreprotect.inspect и coreprotect.lookup - каждому модератору; coreprotect.rollback, coreprotect.restore и coreprotect.purge - двум-трём людям. Откат с неверными параметрами наносит такой же ущерб, как сам грифинг. Для такого разделения и существует дерево групп из руководства по LuckPerms.
Приваты и регионы#
Это две разные формы защиты, и большинству серверов нужны обе.
GriefPrevention управляется игроками и бесплатен. Игроки застолбливают землю золотой лопатой, получают стартовый запас блоков привата и зарабатывают новые за каждый час игры, а доступ регулируют сами командами /trust, /containertrust, /accesstrust и /permissiontrust - это четыре уровня: строительство, только сундуки, только двери и кнопки, и право доверять другим. /abandonclaim возвращает блоки. И стартовый запас, и скорость накопления лежат в plugins/GriefPrevention/config.yml; значения по умолчанию рассчитаны на загруженный публичный сервер, так что маленькому SMP обычно стоит их повысить. Плагин также автоматически защищает первый сундук нового игрока, что незаметно предотвращает множество краж в первый день.
WorldGuard управляется администраторами, требует рядом WorldEdit и служит для защиты спавна. Выделите регион палочкой, определите его и задайте флаги:
$ /rg define spawn$ /rg flag spawn build deny$ /rg flag spawn pvp deny$ /rg flag spawn chest-access allow$ /rg flag spawn greeting Welcome to spawn$ /rg setpriority spawn 10Флаги, которыми вы будете пользоваться чаще всего: build, pvp, chest-access, use, tnt, creeper-explosion, fire-spread, mob-spawning, entry и exit. Есть особый регион __global__, который применяется ко всему миру, когда ничего более конкретного нет, - именно так мир делают доступным только для чтения по умолчанию, а затем открывают отдельные участки. Приоритет определяет, какой из двух пересекающихся регионов побеждает.
Помимо этих двух: Towny строит города и государства поверх приватов, PlotSquared - верный ответ для творческого сервера с сеткой участков, а Lands и GriefDefender - платные альтернативы с большим числом возможностей и большим числом настроек, в которых можно ошибиться. Начните с GriefPrevention и WorldGuard и добавляйте остальное, только если найдёте брешь.
Чего приваты не делают, стоит сказать прямо. Они не защищают от того, кому вы доверились. Они не остановят игрока, стоящего за пределами привата с ведром лавы, если плагин не настроен на это. Они не останавливают мобов. И они не мешают бросить приват и занять освободившуюся землю. Приваты уменьшают число инцидентов; CoreProtect - это то, чем вы разбираетесь с теми, что всё равно случаются.
Anti-xray в Paper#
X-ray - это не уязвимость сервера. Сервер присылает данные чанков, клиент решает, что рисовать, и модифицированный клиент просто рисует камень как воздух. Единственная защита - присылать данные, которые не соответствуют действительности, и в Paper она встроена.
На современных сборках Paper она лежит в config/paper-world-defaults.yml в секции anticheat.anti-xray, с переопределениями для отдельных миров в paper-world.yml каждого мира. Старые сборки хранят её в paper.yml. По умолчанию она выключена.
anticheat: anti-xray: enabled: true engine-mode: 1 max-block-height: 64 update-radius: 2 lava-obscures: false use-permission: falseengine-mode: 1 перед отправкой заменяет блоки из списка hidden-blocks одним блоком-заполнителем, так что руды просто нет, пока вы не подойдёте достаточно близко, чтобы сервер прислал настоящие данные. Режимы 2 и 3 идут другим путём и разбрасывают среди камня убедительные поддельные руды, из-за чего X-ray не просто бесполезен, а активно вводит в заблуждение. Режим 1 дешевле по CPU и трафику; более высокие режимы дороже по обоим параметрам и тщательнее. Собственная документация Paper описывает текущее поведение каждого режима для вашей сборки, и её стоит прочитать перед выбором, поскольку режимы пересматривались.
max-block-height - уровень Y, выше которого обфускация не выполняется: значение по умолчанию 64 покрывает глубины, где действительно есть руды, включая всё ниже нуля в современных мирах, и не трогает поверхность, чтобы не платить за чанки, в которых никто не копает. use-permission: true позволяет освободить персонал от проверки правом paper.antixray.bypass, что удобно, когда модератор пытается выследить настоящего пользователя X-ray.
Два честных ограничения. Anti-xray не останавливает freecam, не останавливает игрока, который просто выучил уровни Y наизусть, и ничего не делает против читов на основе сущностей. Он также может мешать легитимным клиентским модам - особенно миникартам с режимом пещер, которые будут показывать чепуху, потому что вы намеренно кормите их чепухой. Нагрузка на CPU реальна, но невелика по сравнению с дальностью прорисовки и числом сущностей; если сервер и так с трудом справляется, важнее настройки из статьи оптимизация Paper.
Античит: что он ловит и чего не может#
Плагин античита видит пакеты и больше ничего. Клиент он не видит никогда. Всё, о чём он сообщает, - это вывод, и качество античита целиком определяется качеством этих выводов.
Надёжно обнаруживаются: полёт, скорость, отсутствие урона от падения, изменения шага и прыжка, установка блоков по схемам scaffold и tower, nuker и быстрое разрушение, действия с инвентарём, когда он должен быть закрыт, и наиболее очевидные шаблоны автокликера. Все они оставляют следы в движении и времени, которые нельзя скрыть, не переставая при этом работать.
Ненадёжно обнаруживаются: X-ray (для этого и нужен anti-xray), freecam, помощь в прицеливании, остающаяся в пределах человеческих возможностей, использование макросов и всё, что меняет только отрисовку. Проверки дальности удара действительно сложны, поскольку задержка и компенсация лагов заставляют законный удар при 200 мс выглядеть незаконным при 20 мс, и именно поэтому они порождают большинство ложных срабатываний на международном сервере.
Что выбрать: GrimAC - бесплатный опенсорсный вариант на основе предсказаний, сильный в части движения; проверьте его текущую сборку и лицензию перед развёртыванием, потому что менялось и то и другое. Платные варианты - Vulcan, Matrix, Themis, Polar, Intave и другие - различаются главным образом тем, сколько настройки им нужно и насколько отзывчива их поддержка. NoCheatPlus всё ещё существует и бесплатен, но показывает свой возраст.
Что бы вы ни выбрали, три правила:
- Ставьте один. Два античита удваивают каждую проверку, спорят друг с другом и порождают поток противоречащих друг другу флагов. Это самая частая рана, которую администраторы наносят себе сами.
- Начните в режиме только оповещений. Поработайте неделю без наказаний, смотрите, что помечается, и узнайте, что делают с ним маршруты на элитрах, ледяные дороги, трассы для лодок и поршневые конструкции вашего сервера. Затем включайте наказания для проверок, которым вы доверяете.
- Освободите от проверок игроков, которые играют не по-обычному. Игроки Bedrock, заходящие через Geyser, двигаются действительно иначе, как и клиенты со старыми версиями протокола через ViaVersion. У каждого античита есть право обхода; пользуйтесь им, а не ослабляйте проверку для всех.
Античит стоит CPU, а основанные на предсказаниях - больше всего, потому что они симулируют физику игроков на сервере для каждого игрока. Для PvP-сервера это справедливая цена, а для кооперативного SMP с вайтлистом - плохая.
Усиление защиты, которое ничего не стоит#
До всяких плагинов есть переключатели, которые у вас уже есть.
enable-command-block=falseвserver.properties. Командный блок - это исполнитель команд уровня 2, работающий без привязки к игроку. Если вы не строите с их помощью, оставьте их выключенными.white-list=trueвместе сenforce-whitelist=true, что при перезагрузке списка также выгоняет всех, кто уже онлайн, но в списке не значится.spawn-protection- радиус в блоках вокруг спавна мира, в котором не-операторы не могут строить. Значение по умолчанию 16 невелико; задайте такое, чтобы оно накрывало постройки на спавне, или используйте регион WorldGuard, который точнее.- В
paper-global.ymlестьpacket-limiter, который ограничивает частоту входящих пакетов и разрывает соединения, заливающие сервер, иspam-limiter, ограничивающий запросы автодополнения и книги рецептов. Оба включены с разумными значениями и служат причиной, по которой большинство эксплойтов на обрушение отскакивает от сервера Paper.item-validationв том же файле ограничивает число страниц, длину заголовка и автора книги, что и есть конкретная защита от классического обрушения из-за книги чрезмерного размера. - Снимите op со всех и пользуйтесь правами. Статус оператора обходит проверки прав плагинов, поэтому любое запрещение, которое вы аккуратно настроили, для оператора недействительно.
- Устанавливайте плагины только из официального источника. Плагин - это произвольный код, работающий с полными привилегиями вашего сервера, и самые разрушительные «грифинг-инциденты» вообще не грифинг: это jar с бэкдором из перезалитой загрузки. Подробнее - в статье как содержать сервер с модами в чистоте.
Со стороны панели: включите двухфакторную аутентификацию и выдайте персоналу субпользователей с ролями, а не пароль от вашего аккаунта. Роли несут детальные права - только консоль, только файлы, без биллинга, - и у каждого сервера свой журнал действий и свои учётные данные SFTP. В этом и разница между модератором, который может перезапустить сервер, и модератором, который может его удалить. Как всё это разделить, описано в статье субпользователи и минимальные привилегии.
Персонал, права и след в журналах#
Инструмент отката в руках человека, который никогда им не пользовался, - это второй инцидент, который просто ждёт своего часа.
Разбор грифинга - это процесс, а не плагин. Рабочая версия коротка: любой модератор может смотреть и искать; откатывать могут двое; каждый откат объявляется в канале персонала с указанием использованных параметров; а игровое правило logAdminCommands остаётся true, чтобы команды администраторов попадали в лог сервера. Остальное покрывает собственный поиск CoreProtect a:command, а панель ведёт журнал действий каждого сервера с указанием того, кто что сделал в самой панели.
Храните журналы достаточно долго, чтобы от них была польза. Тридцать дней CoreProtect и то, что даёт ротация ваших логов, - обычный ответ; что хранить, а что выбрасывать, описано в статье логи, которые стоит хранить. И запишите процедуру обжалования бана до того, как она понадобится, потому что в тот момент, когда она понадобится, вы будете злиться.
Резервные копии - единственная настоящая отмена#
CoreProtect не является резервной копией, и именно принятие его за неё - ошибка, которая губит серверы.
Он откатывает изменения блоков, которые записал. Он не спасёт повреждённый файл региона, случайно удалённую папку мира, плагин, записавший чепуху в собственные данные, или чанк, который не вернулся после неудачного обновления. Отдельное слепое пятно - инструменты массового редактирования: операции WorldEdit обходят обычные события блоков, поэтому будет ли //set записан вообще, зависит от ваших версий и интеграций. Проверьте это на своём сервере, прежде чем полагаться.
На RE:NODE слоты резервных копий есть в каждом тарифе, копии можно создавать по требованию или по расписанию, они хранятся вне защищаемой машины, их можно скачать, а одну из них можно заблокировать, чтобы ротация её не удалила. Восстановление - это кнопка. Нужно знать одно: удаление сервера удаляет его резервные копии, в том числе заблокированные, поэтому скачивание перед отменой не бывает лишним. Привычки описаны в статьях резервные копии, которые действительно восстанавливаются и проверка восстановления до того, как оно понадобится.
FAQ#
Достаточно ли одного CoreProtect?
Для сервера с вайтлистом и друзьями - да. Для публичного - нет: он говорит, что произошло, и возвращает блоки, но ничего не делает для того, чтобы остановить следующего. Соедините его с плагином привата, чтобы большинство инцидентов вообще не требовало отката.
Как далеко назад можно откатить инцидент с грифингом?
Настолько, насколько хватает вашего срока хранения CoreProtect, и не дальше. Если вы очищаете журнал на 30 днях, по жалобе шестинедельной давности ничего не сделать. Откат за очень длинный период к тому же медленный и затронет всё, что этот пользователь законно построил за это время, так что фильтруйте по радиусу и сначала смотрите превью.
Вредит ли anti-xray производительности?
Да, ощутимо, но не драматично. Режим 1 - дешёвый. Более высокие режимы стоят больше CPU при отправке чанков и больше трафика, потому что данных, плохо поддающихся сжатию, становится больше. Если сервер и так упёрся в предел CPU, сначала разберитесь с этим.
Может ли античит банить автоматически?
Все могут, и обычно первые недели лучше держать это выключенным. Автоматические баны свежеустановленного античита с ненастроенными проверками забанят настоящих игроков, а потерянные так люди не возвращаются подавать апелляцию. Сначала оповещения, наказания потом.
А как быть с игроками, которые грифят построением, а не разрушением?
Непристойные постройки, лавовые отливки, гигантские монументы из булыжника - CoreProtect логирует и установку блоков, поэтому /co rollback u:Name t:2h r:100 убирает их так же легко, как возвращает разрушенное. Это та же команда, и требует она того же внимания, а #preview по-прежнему ваш друг.




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