ВАЖНО! Это не статья нашего сообщество, а перевод на русский.
Оригинал статьи можно найти по адресу: https://github.com/YouHaveTrouble/minecraft-exploits-and-how-to-fix-them
Введение
Этот гид предполагает, что вы используете сервер Purpur. Некоторые настройки, необходимые для работы этого гида, недоступны в Paper или Spigot. Подобные эксплойты могут существовать и на серверах vanilla, fabric или forge, и для их исправления вам потребуется найти соответствующие моды для этих платформ.
Самое важное
Держите серверное ПО в актуальном состоянии. В новых версиях ПО могут быть исправлены эксплойты, даже если это не объявляется официально. Если вы управляете сервером, вам следует использовать самую последнюю доступную версию, чтобы избежать критических уязвимостей.
Эксплойты
Машины лагов с использованием стоек для брони
Стойки для брони могут использоваться для создания машин, вызывающих лаги. Это достигается путем размещения большого количества стоек и принуждения их к движению с помощью воды, поршней или других средств. Для устранения этого эксплойта можно отключить тики и проверки столкновений для стоек для брони. Это приведет к тому, что стойки не смогут быть толкаемыми или тянемыми (даже под действием гравитации).
paper-world-defaults.yml
entities:
armor-stands:
do-collision-entity-lookups: false
tick: false
Эксплойты с книгами
Книги являются распространенной целью для техник эксплуатации и использовались для всех видов неприятных вещей в прошлом, включая эксплойты дублирования, краши и вынуждение серверов исчерпать память при создании огромного объема данных чанков.
Вариант 1 Умеренное снижение максимального количества страниц может смягчить большинство эксплойтов с книгами без влияния на ванильных клиентов.
paper-global.yml
item-validation:
book-size:
page-max: 1024
Вариант 2 Полное отключение книг полностью предотвращает большинство эксплойтов с книгами (пока плагины не создают нестандартные книги). Опция конфигурации Pufferfish предотвращает игроков писать в книги, таким образом исключая все, что требует ввода от игрока для работы.
pufferfish.yml
enable-books: false
Эксплойты, связанные с лагами от столкновений
Этот эксплойт аналогичен использованию стоек для брони, но вместо стоек для брони используются сущности, которые могут быть толкнуты другими сущностями. Это можно исправить, установив более низкий предел того, сколько сущностей может столкнуться с одной сущностью. Вы можете установить max-entity-collisions на 2, чтобы сохранить относительно естественное поведение, или установить его на 0, чтобы полностью отключить столкновения. Возможность исправления обхода правила сжатия при восхождении также доступна, но по умолчанию отключена.
paper-world-defaults.yml
collisions:
max-entity-collisions: 2
fix-climbing-bypassing-cramming-rule: true
Спам пакетами предложений команд
На сервере некоторые команды могут иметь много логики, связанной с предложением команды. Это может быть использовано для эксплуатации путем отправки большого количества пакетов, запрашивающих сервер отправить предложения для команды. Это можно смягчить, установив ограничение на количество пакетов для предложений команд, которое будет немного выше быстроты набора команд, чтобы нормальные игроки не пострадали.
paper-global.yml
packet-limiter:
overrides:
ServerboundCommandSuggestionPacket:
action: DROP
interval: 1.0
max-packet-rate: 15.0
Спам командами
Даже Spigot защищает от этого эксплойта, однако есть небольшое упущение, которое позволяет использовать одну команду для выполнения этого действия. Для исправления этой проблемы просто удалите команду /skill из списка исключений для спама в файле spigot.yml.
spigot.yml
commands:
spam-exclusions: []
Спам подключения
Иногда большое количество игроков, подключающихся к серверу, может вызвать задержки (лаги) на сервере. Это особенно верно для атак ботов и моментов после перезагрузки сервера. Это можно исправить, установив максимальное количество подключений в пределах одного тика (max joins per tick). Это позволит задерживать подключение игроков во времени, чтобы сервер мог правильно обрабатывать их между тиками.
Если подключения по-прежнему перегружают сервер, можно также включить опцию max-joins-per-second в файле purpur.yml. Это сделает так, что значение из конфигурации Paper будет применяться не на каждый тик, а на каждую секунду.
paper-global.yml
misc:
max-joins-per-tick: 3
purpur.yml
settings:
network:
max-joins-per-second: true
Машины лагов из-за обновлений соседних блоков
Ограничение количества последовательных обновлений соседних блоков перед пропуском дополнительных обновлений может помочь в борьбе с различными 'машиными лагов из-за обновлений соседних блоков'. Умеренное снижение этого значения не оказывает влияния на игру и помогает снизить нагрузку на сервер.
server.properties
max-chained-neighbor-updates=10000
Подвеска снарядов
Снаряды могут бесконечно подвешиваться в столбцах пузырей и могут также массово перемещаться в незагруженные чанки. Если кто-то загружает чанк с накопленными снарядами, сервер может зависнуть из-за загрузки слишком большого количества объектов одновременно. Это можно предотвратить, ограничивая время, в течение которого снаряды могут существовать в мире, а также количество снарядов, сохраняемых и загружаемых с чанком. Если таймаут будет применен к эндер-жемчугам, это предотвратит использование устройств для подвешивания эндер-жемчугов.
paper-world-defaults.yml
chunks:
entity-per-chunk-save-limit:
arrow: 8
ender_pearl: 8
experience_orb: 8
fireball: 8
small_fireball: 8
snowball: 8
pufferfish.yml
entity_timeouts:
ARROW: 200
EGG: 200
ENDER_PEARL: 200
SNOWBALL: 200
Спам книги рецептов
Злоумышленники могут использовать автокликер или модификацию для быстрого переключения между рецептами книги рецептов. Это довольно затратная операция для сервера и может вызывать значительные замедления. В последних версиях конфигурации Paper это уже исправлено, однако в старых конфигурациях этот пункт может отсутствовать, поэтому убедитесь, что он присутствует.
paper-global.yml
packet-limiter:
overrides:
ServerboundPlaceRecipePacket:
action: DROP
interval: 4.0
max-packet-rate: 5.0
Поиск сокровищ
При генерации новой карты сокровищ, обычно с помощью торговца картами или открытия сундука с картой сокровищ, сервер начинает поиск сокровища, на которое указывает карта. Этот поиск часто приводит к загрузке большого количества чанков и, возможно, их генерации. Поиск может остановить сервер на достаточно долгое время, что приводит к его автоматическому отключению по таймауту.
Вариант 1 Чтобы исправить эту проблему, необходимо отключить использование карт сокровищ и возможность дельфинов искать сокровища. Это рекомендуемое и на 100% эффективное решение.
paper-world-defaults.yml
environment:
treasure-maps:
enabled: false
purpur.yml
world-settings:
default:
mobs:
dolphin:
disable-treasure-searching: true
Вариант 2
В качестве альтернативы можно оставить включенными карты сокровищ, но установить границу мира и предварительно сгенерировать мир в пределах этой границы в ванильном режиме. После этого убедитесь, что уже обнаруженные сокровища действительны как результат поиска. Это позволит предотвратить загрузку чанков, которые еще не сгенерированы, при поиске сокровищ.
paper-world-defaults.yml
treasure-maps:
find-already-discovered:
loot-tables: true
villager-trade: true
#mojangjajaka #mojangminecraft #tutorial #tutorialminecraft #tutorialyoutube #minecraft #mincraft #mojang #serverminecraft #plugins #servermincraft




