Прокси Minecraft и защита от ботов: что закрыть и как проверить
Как защитить сеть Minecraft за прокси от ботов и подмены игроков: online-mode, секрет передачи данных, закрытые бэкенды и проверка через тестовый вход.
Содержание 15
- Коротко
- Что на самом деле делают боты
- Шаги
- Как проверить защиту
- Если атака продолжается
- Как сделать в панели EGN
- Пример: закрытая сеть
- Симптомы и причины
- Частые ошибки
- Итог
- Вопросы и ответы
- Защищает ли прокси от DDoS?
- Нужен ли whitelist, если есть online-mode?
- Можно ли закрыть бэкенд полностью?
- Что делать, если секрет утёк?
Бот на сервере Minecraft выглядит как игрок в списке, но ничего не делает. Он занимает место, забивает онлайн и иногда тестирует вход, чтобы найти уязвимость. Прокси — хороший рубеж: через него проходят все игроки, и здесь удобно проверять, кто заходит. Ниже — что закрыть, в каком порядке и как убедиться, что защита работает.
Коротко
Защита сети за прокси строится на трёх вещах: проверка лицензии игрока на прокси (online-mode = true в velocity.toml; на бэкендах при этом online-mode=false), общий секрет между прокси и бэкендами (modern forwarding) и закрытый доступ к бэкендам, чтобы никто не заходил мимо прокси. Ботов, которые заходят без лицензии, отсекает проверка Mojang. Игроков, которые пытаются подменить данные, отсекает секрет. Проверить защиту можно тестовым входом с трёх аккаунтов: лицензия, без лицензии и прямой вход на бэкенд.
Что на самом деле делают боты
Есть три типа нежелательных подключений. Первый — боты без лицензии, которые имитируют игрока. Они заходят, чтобы занять место или проверить сервер на уязвимости. Второй — прямые подключения к бэкенду в обход прокси: если бэкенд доступен снаружи, игрок может подключиться к нему, не проходя проверку прокси. Третий — подмена данных игрока, например ника или UUID, при прямом входе на бэкенд.
Первые два случая закрываются настройками прокси и бэкенда. Третий — секретом передачи данных. Без него бэкенд не может отличить данные от прокси и данные от злоумышленника.
Шаги
-
Включите online-mode на прокси. В
velocity.tomlполеonline-mode = true. В BungeeCord аналогичная проверка —online_mode: trueв егоconfig.yml; защиту от подмены данных там даёт плагин BungeeGuard (токен), так как уip_forwardсекрета нет. Пока проверка включена, бот без лицензии не пройдёт вход. -
Включите modern forwarding. В
velocity.tomlпоставьтеplayer-info-forwarding-mode = "modern"и укажите файл секрета. На бэкендах включите прокси вpaper-global.ymlс тем же секретом. -
Создайте длинный секрет. Строка должна быть случайной и длинной, не словом из словаря. Хранить её нужно только в файле секрета и в настройках бэкенда. Не отправляйте секрет в чат и не вставляйте в публичные конфиги.
-
Закройте прямой вход на бэкенды. Игроки должны заходить только через адрес прокси. Адреса бэкендов не давайте игрокам и не публикуйте в описании сервера. Учтите, что эти порты доступны с ноды, поэтому закрыть вход полностью помогает не сокрытие адреса, а секрет и проверка на бэкенде.
-
Выставьте режимы на бэкенде. В
server.propertiesбэкенда ставитсяonline-mode=false: лицензию проверяет прокси, а бэкенд доверяет ему. Но именно поэтому прямой вход на бэкенд должен быть невозможен: без modern forwarding и секрета бэкенд сonline-mode=falseпустит любого под любым ником. Вpaper-global.ymlв секцииproxies.velocityдолжны стоятьenabled: true,online-mode: trueи тот жеsecret, тогда Paper отклоняет подключения без подписи прокси. -
Ограничьте список входа, если нужно. Для закрытых серверов используйте whitelist на прокси или на бэкенде. Для открытых серверов ограничивайте не вход, а права: новые игроки без привилегий, пока не пройдут проверку.
-
Перезапустите всё по порядку. Сначала бэкенды, потом прокси, как и при настройке сети.
-
Проверьте тремя аккаунтами. Подробный порядок — в следующем разделе.
Как проверить защиту
Проверка занимает десять минут и даёт уверенность, что защита работает.
- Лицензионный аккаунт. Зайдите через прокси. Вход должен пройти, и вы попадаете на стартовый сервер.
- Аккаунт без лицензии. Попробуйте зайти с офлайн-клиентом через прокси. Вход должен быть отклонён, если
online-modeвключён. - Прямой вход на бэкенд. Попробуйте подключиться к адресу бэкенда из «Сети», минуя прокси. Вход не должен пройти, если бэкенд закрыт или проверяет секрет.
Если какой-то из трёх тестов не даёт нужного результата, проверьте настройку именно этого слоя: прокси, бэкенд или сетевой доступ.
Если атака продолжается
Иногда бот-волна не останавливается после настройки. Действуйте по порядку, а не меняйте всё сразу, иначе не поймёте, что помогло.
- Посмотрите лог прокси за последний час. Найдите повторяющиеся ники и адреса подключений, которые не проходят проверку.
- Убедитесь, что
online-mode = trueвvelocity.tomlи что на бэкендах включёнproxies.velocityс секретом. Прокси после тестов часто остаётся в режиме без проверки. - Проверьте, нет ли старого адреса бэкенда, который засветился в списках серверов или в старом описании. Если адрес светился, секрет и проверка на бэкенде важнее всего: меняйте секрет и перезапускайте сеть.
- Ограничьте вход для новых аккаунтов: например, без привилегий, пока игрок не проведёт на сервере заданное время. Такие правила задают плагины сети, а не сам прокси.
- Для волн ботов, которые проходят проверку лицензии, но забивают вход, посмотрите блок
[advanced]вvelocity.toml: параметрlogin-ratelimitограничивает частоту входов с одного адреса (в документации Velocity — 3000 мс по умолчанию), а антибот-плагины для прокси (например, Sonar) добавляют проверки поведения; перед установкой убедитесь, что плагин поддерживает вашу версию прокси. - Если волна идёт на сам канал и сервер не отвечает, это уже атака на сеть. Тогда пишите в поддержку EGN с временем начала, адресом сервера и логами. Сами по себе настройки прокси от перегрузки канала не спасают.
Записывайте каждое изменение в заметки или в журнал. Через неделю по журналу легко понять, какая мера дала эффект.
Как сделать в панели EGN
В разделе «Сеть» порты каждого бэкенда видны в списке «Все порты сервера». Там же адрес для подключения у каждого сервера. Используйте эти данные для проверки: адрес прокси — единственный, который вы даёте игрокам, а адреса бэкендов — внутренние.
Если на бэкенде выдан порт, который не нужен игрокам, освободите его кнопкой «Освободить» на строке порта. Не освобождайте порт, если на нём работает сервис, например голос или Bedrock.
Важно понимать границу. Панель EGN выдаёт порты и показывает адреса, но не заменяет настройки самого прокси и бэкенда. Секрет, online-mode и whitelist настраиваются в конфигах. Панель помогает увидеть, какой порт куда ведёт, и не даёт вам ошибиться с адресом.
Пример: закрытая сеть
Допустим, у вас есть Velocity с двумя бэкендами: lobby и survival. Прокси проверяет лицензию, секрет совпадает на обоих бэкендах. Адреса бэкендов записаны в velocity.toml, игрокам дают только адрес прокси. Тест прямого входа на survival не проходит, потому что бэкенд проверяет секрет и не принимает данные мимо прокси. Тест без лицензии через прокси отклоняется. Тест с лицензией проходит. Такая сеть защищена от типовых атак на уровне входа.
Если к вам пришли боты, которые не проходят проверку, это хороший знак: защита работает. Если они проходят, проверьте online-mode на прокси и секрет на бэкендах: чаще всего проблема в одном из них.
Симптомы и причины
| Симптом | Причина | Решение |
|---|---|---|
| Боты заходят на сервер | online-mode выключен на прокси |
Включите проверку лицензии и перезапустите прокси |
| Игрок заходит на бэкенд напрямую | Бэкенд доступен снаружи и не требует подпись прокси | Включите modern forwarding и proxies.velocity с секретом на бэкенде |
| Ник игрока подменён | Секрет не совпадает или не включён | Сверьте секрет в обоих местах |
| Легитимные игроки не могут зайти | Секрет не совпадает, либо на бэкенде online-mode=true в server.properties |
Сверьте секрет, поставьте online-mode=false на бэкенде и перезапустите |
| Онлайн забит, но игроков мало | Боты держат места на сервере | Включите проверку лицензии и whitelist для закрытого режима |
Частые ошибки
Не отключайте online-mode ради удобстваЕсли выключить проверку, чтобы пускать тестовые аккаунты, можно забыть включить её обратно. Тестируйте на отдельном бэкенде, а не на прокси.
Скрывайте адреса бэкендовАдреса бэкендов нигде не публикуйте. Игрок, который знает адрес бэкенда, может пробовать зайти напрямую (с секретом ему откажут, но порт всё равно будут сканировать). Об устройстве сети и портов см. Velocity и BungeeCord или Velocity.
Ещё несколько ошибок:
- секрет вставлен в публичный репозиторий или чат, его надо менять;
- бэкенд с
online-mode=falseзапущен безproxies.velocity: он открыт для любых ников; - whitelist стоит на прокси, а бэкенды открыты для всех;
- защиту включили, но не проверили тремя аккаунтами, и не знаете, работает ли она.
Что проверить после каждого измененияТри теста из раздела «Как проверить защиту» проходят ожидаемо: лицензия пускает, офлайн отклоняется, прямой вход на бэкенд не работает. Без этого защита не считается настроенной.
Итог
Защита прокси строится на проверке лицензии, секрете и закрытых бэкендах. Ботов без лицензии отсекает online-mode, подмену данных — секрет, а прямой вход — закрытые адреса. Проверьте каждый слой тестом, а не полагайтесь на то, что конфиг выглядит правильно. Если что-то не проходит проверку, смотрите логи прокси и бэкенда: они показывают, кто и где отказал.
Вопросы и ответы
Защищает ли прокси от DDoS?
Нет. Прокси защищает от ботов на уровне входа, а не от перегрузки канала. Для атак на канал обращайтесь в поддержку EGN, а признаки и порядок действий разобраны в статье про DDoS на игровой сервер.
Нужен ли whitelist, если есть online-mode?
Нужен для закрытых серверов. online-mode отсекает ботов без лицензии, а whitelist — посторонних игроков с лицензией.
Можно ли закрыть бэкенд полностью?
Бэкенды доступны с ноды, поэтому полностью «закрыть» их силами владельца сервера нельзя. Надёжная защита — секрет и проверка на бэкенде. Настройки сети ноды владелец сервера не меняет.
Что делать, если секрет утёк?
Сгенерируйте новый, обновите файл прокси и настройки всех бэкендов и перезапустите сеть. Старый секрет считайте скомпрометированным.
Сервер под Minecraft за пару минут — egnetwork.ru
Читать далее
Вся рубрика →Bedrock-сервер Minecraft: отличия от Java и настройка для телефонов и консолей
Чем Bedrock-сервер отличается от Java, какие порты он использует, как пустить Bedrock-игроков на Java-сервер через Geyser и Floodgate.
Чек-лист оптимизации Minecraft-сервера: 10 шагов от первого замера до стабильного MSPT
Пошаговый чек-лист для сервера Minecraft в панели EGN: замер MSPT, память, дальность, Chunky, расписание перезапуска, бэкапы и проверка после каждого изменения.
Почему лагает Minecraft-сервер при 10 игроках и что с этим делать
Типичные причины лагов на сервере на 10 игроков: процессор, память, диск, дальность и фермы. Как понять, что именно тормозит, и какие шаги в панели EGN помогают.