Что такое ServerConfigCleaner и зачем он нужен
Каждый администратор сервера Minecraft знает, как важно сохранять конфиденциальность чувствительных данных. Однако не все догадываются, что стандартная механика синхронизации конфигов в Forge и NeoForge может невольно раскрыть секреты всем игрокам. Мод ServerConfigCleaner создан именно для того, чтобы закрыть эту брешь и предотвратить утечку приватной информации.
Проблема кроется в том, что оба загрузчика — и MinecraftForge, и NeoForge — при подключении клиента полностью копируют содержимое всех «серверных конфигов» на сторону игрока. Разработчики некоторых модов по ошибке или незнанию помещали в эти файлы по-настоящему секретные параметры: токены Discord-ботов, ключи API и другие строки, которые должны оставаться только на сервере. Если злоумышленник зайдёт на такой сервер, он сможет без труда извлечь эти значения из своего клиента.
Как работает синхронизация конфигов и в чём опасность
В экосистеме Minecraft моды часто используют общие конфигурационные файлы, которые сервер передаёт клиенту для согласованной работы. Задумка удобная: игроку не нужно вручную настраивать десятки параметров, всё подтягивается автоматически. Но название «серверные конфиги» вводит в заблуждение — на самом деле они полностью синхронизируются, а не остаются изолированными.
Некоторые популярные моды, особенно те, что интегрируются с внешними сервисами, хранят в таких конфигах токены доступа. Например, строка mymod:discord.token может содержать настоящий токен бота. После синхронизации любой присоединившийся клиент получает этот файл, и извлечь секрет становится делом техники. ServerConfigCleaner решает эту проблему на корню, фильтруя данные перед отправкой.
Двухэтапная защита: обнаружение и замена
Мод действует в два чётких этапа, что делает его работу прозрачной и настраиваемой.
Этап 1: Эвристический поиск подозрительных опций
При запуске сервера ServerConfigCleaner сканирует все конфигурационные файлы и ищет параметры, которые потенциально содержат чувствительную информацию. Для этого используется грубая эвристика, основанная на ключевых словах. Например, опция logistics.seatHostileMobs из мода Create попадёт в список подозрительных только потому, что содержит подстроку «Host». Очевидно, что это ложное срабатывание — никаких секретов там нет.
Все найденные совпадения требуется вручную классифицировать в файле config/serverconfigcleaner-common.toml. Они делятся на две категории:
- falsePositives — безобидные параметры, случайно попавшие под эвристику. Их нужно просто перечислить, чтобы мод не трогал их в дальнейшем.
- doNotSync — действительно секретные значения, которые нельзя передавать клиенту. Указываются в том же формате, например
doNotSync = ["mymod:discord.token"].
Разработчики заранее включили в мод обширный список известных ложных срабатываний и проблемных опций (последние не хранятся в открытом виде). Поэтому в большинстве случаев вам вообще не придётся ничего настраивать вручную — всё работает «из коробки». Кстати, установить этот мод проще простого через лаунчер foxygame.net — удобный, гибкий и современный инструмент для Minecraft, где можно скачать моды прямо из меню, не копаясь в файлах. Если же уникальная сборка всё-таки потребует ручной правки, процесс интуитивно понятен.
Этап 2: Перехват синхронизации
Когда сервер готовится отправить конфиги клиенту, ServerConfigCleaner вмешивается в процесс. Для каждого параметра, помеченного как doNotSync, реальное значение заменяется на значение по умолчанию, заданное разработчиком мода. Обычно это что-то безобидное вроде INSERT BOT TOKEN HERE. Таким образом, клиент получает файл без какой-либо секретной информации, а сервер продолжает использовать настоящий токен для своих нужд.
Версии и совместимость с загрузчиками
Поскольку мод охватывает широкий диапазон версий Minecraft и два модлоадера, его версионирование может показаться запутанным. Ниже приведена таблица соответствия, чтобы вы быстро нашли нужный файл.
| Загрузчик | Версия Minecraft | Суффикс версии мода |
|---|---|---|
| MinecraftForge | 1.13.2 – 1.16.5 | -1.13.2 |
| MinecraftForge | 1.17.x – 1.20.1 | -1.17.1 |
| NeoForge | 1.20.1 | -1.17.1 |
| MinecraftForge | 1.20.2+ | -1.20.2-mcf |
| NeoForge | 1.20.2 – 1.20.5 | -1.20.2-neo |
| NeoForge | 1.21.0+ | -1.21.0-neo |
Обратите внимание: для NeoForge на версии 1.20.1 используется тот же суффикс, что и для Forge 1.17.1, поэтому внимательно выбирайте файл под свой загрузчик. Все сборки доступны на популярных площадках, и никаких дополнительных зависимостей мод не требует.
Как сообщить о пропущенных значениях
Если вы столкнулись с ложными срабатываниями, которых нет в стандартном списке, создайте обращение в репозитории мода с перечислением таких опций. Это поможет улучшить эвристику для всех пользователей. А вот если вы обнаружили действительно секретные параметры, не вошедшие в набор по умолчанию, не публикуйте их в открытых тикетах. Свяжитесь с разработчиками напрямую через Discord: malte0811 или thatgravyboat. Так вы поможете защитить сообщество, не раскрывая уязвимости раньше времени.
Заключение
ServerConfigCleaner — это маленький, но критически важный инструмент для любого ответственного владельца сервера. Он устраняет архитектурный недостаток синхронизации конфигов, который может стоить вам утечки токенов и компрометации внешних сервисов. Благодаря продуманной автоматической классификации мод практически не требует вмешательства, а поддержка всех актуальных версий Minecraft и обоих загрузчиков делает его универсальным решением. Добавив его в свою сборку, вы делаете игру безопаснее не только для себя, но и для всех, кто заходит на ваш сервер.