Что значит белый список на сервере: полное руководство по настройке и безопасности

Разбираем, что такое белый список (whitelist) на сервере, зачем он нужен, как его включить и настроить, какие есть подводные камни и как защитить сервер от злоумышленников.

Что такое белый список на сервере

Белый список (whitelist) — это механизм контроля доступа, который разрешает подключение к серверу только тем пользователям, чьи идентификаторы (никнеймы, UUID или IP-адреса) были заранее внесены в специальный список. Если белый список включен, любой игрок, не указанный в нём, получает отказ при попытке подключения.

В контексте игровых серверов, особенно Minecraft, белый список — это базовый инструмент администратора. Он позволяет создать закрытое сообщество, куда попадают только приглашённые игроки. Это особенно полезно для приватных серверов «для своих», закрытых бета-тестов, SMP-проектов и любых других случаев, когда нужно ограничить круг участников.

Важно понимать, что белый список — это не защита от взлома или злоумышленников, а скорее инструмент управления доступом. Он не шифрует трафик и не скрывает сервер от сканирования, но он эффективно отсеивает случайных посетителей и тех, кто не получил разрешения.

Зачем нужен белый список: основные сценарии использования

Белый список решает несколько практических задач:

  • Приватные серверы для друзей. Если вы создали сервер, чтобы играть с узким кругом людей, белый список не даст посторонним присоединиться и испортить игру.
  • Закрытые бета-тесты. Разработчики и администраторы используют белый список, чтобы допускать к тестированию только определённых игроков, контролируя нагрузку и обратную связь.
  • Серверы с ограниченным ресурсом. Если сервер не рассчитан на большое количество игроков, белый список помогает избежать перегрузки и лагов.
  • Сообщества с правилами. На многих публичных серверах белый список используется как этап модерации: игрок подаёт заявку, администратор проверяет его и добавляет в список. Это снижает количество гриферов и нарушителей.
  • Технические работы. Во время обслуживания сервера можно временно включить белый список, чтобы никто не мешал процессу.

Таким образом, белый список — это гибкий инструмент, который подходит как для маленьких дружеских серверов, так и для крупных проектов с модерацией.

Как включить белый список: два основных способа

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

Способ 1: через консоль или игру

Самый простой способ — использовать команду /whitelist on. Эта команда работает как в консоли сервера, так и в игре, если у вас есть права оператора (уровень 3 и выше). Чтобы выключить белый список, используйте /whitelist off. Важно: при выключении список не удаляется, он просто перестаёт применяться.

Способ 2: через файл server.properties

В корневой папке сервера находится файл server.properties. Найдите в нём строку white-list=false и измените её на white-list=true. После этого необходимо перезапустить сервер, чтобы изменения вступили в силу.

Также в файле есть параметр enforce-whitelist. Если установить его в true, то игроки, которых нет в белом списке, будут немедленно отключены от сервера, даже если они уже были онлайн на момент включения. Если оставить false, уже подключённые игроки останутся до следующего выхода.

Рекомендуется использовать оба способа: сначала включить через консоль для быстрой проверки, а затем закрепить настройку в файле, чтобы она сохранилась после перезапуска.

Управление белым списком: основные команды

Для управления белым списком администратору доступны несколько команд:

  • /whitelist add <никнейм> — добавить игрока в список.
  • /whitelist remove <никнейм> — удалить игрока из списка.
  • /whitelist list — показать всех игроков, находящихся в списке.
  • /whitelist reload — перечитать файл whitelist.json с диска (полезно, если вы редактировали его вручную).
  • /whitelist status — проверить, включён ли белый список в данный момент.

Эти команды работают как в консоли сервера (без слеша), так и в игре при наличии прав оператора. Например, чтобы добавить игрока Steve, нужно выполнить whitelist add Steve.

Важно: команда reload обязательна, если вы вносили изменения в файл whitelist.json вручную, иначе сервер не увидит новые записи.

Файл whitelist.json: структура и ручное редактирование

Белый список хранится в файле whitelist.json, который находится в корневой папке сервера. Этот файл содержит массив объектов, каждый из которых представляет игрока. Пример структуры:

[
  {
    "uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
    "name": "Notch"
  },
  {
    "uuid": "853c80ef-3c37-49fd-aa49-938b674adae6",
    "name": "jeb_"
  }
]

Каждая запись должна содержать два обязательных поля: uuid и name. Если вы редактируете файл вручную, следите за корректностью JSON: запятые между объектами, отсутствие запятой после последнего элемента, правильные кавычки.

Ручное редактирование может потребоваться, например, если вы хотите добавить игрока, который ещё не заходил на сервер, или исправить ошибку в UUID. После внесения изменений обязательно выполните /whitelist reload, чтобы сервер применил их.

Обратите внимание: в онлайн-режиме UUID — это уникальный идентификатор аккаунта Mojang, который не меняется при смене ника. В оффлайн-режиме UUID генерируется на основе ника, поэтому регистр символов имеет значение.

Онлайн-режим vs оффлайн-режим: проблема UUID

Один из самых частых источников путаницы при работе с белым списком — это разница между онлайн-режимом (online-mode=true) и оффлайн-режимом (online-mode=false).

Онлайн-режим

В этом режиме сервер обращается к серверам Mojang для проверки подлинности игрока. Когда вы добавляете игрока через /whitelist add, сервер автоматически получает его реальный UUID из базы Mojang. UUID в онлайн-режиме — это постоянный идентификатор, который не меняется при смене ника. Поэтому, если игрок сменил ник, запись в белом списке остаётся действующей, хотя поле name может устареть. Это не проблема, так как авторизация происходит по UUID.

Оффлайн-режим

В оффлайн-режиме (например, на пиратских серверах) UUID генерируется локально на основе ника игрока. Это означает, что UUID жёстко привязан к написанию ника: если игрок зайдёт с ником Steve, UUID будет один, а если с steve — совсем другой. Поэтому при добавлении игрока через команду сервер сгенерирует UUID на основе точного регистра ника, и при входе ник должен совпадать до символа.

Для оффлайн-серверов рекомендуется вести whitelist.json аккуратно и проверять регистр ника при проблемах. Также можно использовать плагины, которые проверяют только текстовое совпадение ника, а не UUID.

Белый список на прокси-серверах BungeeCord и Velocity

Если ваш сервер использует прокси-схему (BungeeCord или Velocity), игроки подключаются не напрямую к бэкэнд-серверу, а через прокси. Это меняет логику работы белого списка.

BungeeCord

По умолчанию BungeeCord не имеет встроенного белого списка для игроков — только ip-whitelist для IP-адресов. Поэтому whitelist игроков реализуется на уровне бэкэнд-серверов. Рекомендуемая схема:

  • В config.yml BungeeCord убедитесь, что online-mode: true.
  • На каждом бэкэнд-сервере установите bungeecord: true в spigot.yml и online-mode=false в server.properties (BungeeCord передаёт UUID из Mojang).
  • Включите белый список на главном лобби-сервере — именно он первым принимает игрока.
  • Для защиты от прямого подключения в обход BungeeCord закройте порты бэкэндов файрволлом или используйте плагин BungeeGuard.

Также существуют плагины уровня BungeeCord, например BungeeWhitelist, которые позволяют управлять списком централизованно и применять его ко всем бэкэндам сразу.

Velocity

Velocity — современный прокси, который не имеет встроенного whitelist, но поддерживает плагины. Плагины вроде Whitelist for Velocity или VelocityWhitelist добавляют команды /whitelist add, /whitelist remove и /whitelist reload, работающие на уровне прокси.

Использование прокси-решений удобно для крупных сетей, где несколько серверов объединены под одним входом.

Типичные ошибки и способы их решения

При работе с белым списком игроки и администраторы часто сталкиваются с типичными ошибками. Рассмотрим самые распространённые.

Ошибка «You are not whitelisted on this server»

Эта ошибка появляется, когда игрок пытается подключиться к серверу с включённым белым списком, но его нет в списке. Причины могут быть разными:

  • Ник игрока не внесён в список. Решение: добавьте игрока через /whitelist add <ник>.
  • В файле whitelist.json закрепился неверный UUID (актуально для оффлайн-серверов). Решение: попросите игрока зайти на сервер и, пока он видит ошибку, выполните /whitelist add <ник> в консоли. Либо используйте плагин, который проверяет только ник.

Ошибка «Failed to verify username»

Эта ошибка возникает, когда игрок пытается зайти с пиратского лаунчера на сервер с online-mode=true. Решение: измените online-mode на false в server.properties и перезапустите сервер.

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

Если игрок заходит с ником, отличающимся по регистру от того, что в белом списке, доступ будет отклонён. Решение: убедитесь, что ник в списке совпадает с ником при входе до символа.

Игрок не может зайти после ручного редактирования whitelist.json

Если вы редактировали файл вручную и не выполнили /whitelist reload, сервер продолжит использовать старую версию списка. Решение: выполните reload или перезапустите сервер.

Почему белого списка недостаточно: важность авторизации

Многие администраторы ошибочно полагают, что белый список — это полная защита сервера. Однако на пиратских серверах (с online-mode=false) любой игрок может сменить никнейм в лаунчере за считанные секунды. Если злоумышленник узнает ник одного из игроков, находящихся в белом списке, он сможет зайти под этим ником и получить доступ ко всему имуществу этого игрока, а также к правам администратора, если тот был оператором.

Таким образом, белый список без плагина авторизации — это «дырявый забор». Чтобы сделать сервер по-настоящему безопасным, рекомендуется использовать:

  • Плагин авторизации (например, AuthMe или LoginSecurity) — он требует от игрока ввести пароль при входе, подтверждая, что под ником зашёл именно его владелец.
  • Белый список — он ограничивает круг лиц, которым в принципе разрешено вводить пароль.

В связке эти два инструмента обеспечивают надёжную защиту: даже если злоумышленник узнает ник, он не сможет войти без пароля.

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

Практические советы по настройке белого списка

Вот несколько практических рекомендаций, которые помогут вам эффективно использовать белый список:

  • Всегда включайте enforce-whitelist, если хотите, чтобы посторонние не могли оставаться на сервере после включения списка.
  • Регулярно проверяйте список с помощью /whitelist list, чтобы удалять неактивных игроков и поддерживать порядок.
  • Используйте плагины для расширенного управления, если стандартного функционала недостаточно. Например, EasyWhitelist или SimpleWhiteList для оффлайн-серверов, BungeeWhitelist для прокси.
  • Делайте резервные копии файла whitelist.json, особенно перед ручным редактированием, чтобы избежать потери данных.
  • Если вы используете оффлайн-режим, предупредите игроков о том, что ник должен быть точным, включая регистр.
  • Для публичных серверов с заявками настройте процесс модерации: игроки подают заявку через Discord или сайт, администратор проверяет и добавляет их в список.

Следуя этим советам, вы сможете создать комфортное и безопасное игровое пространство для себя и своих друзей.

Вопросы и ответы

Что делать, если я получаю ошибку «Вы не внесены в белый список на этом сервере»?

Эта ошибка означает, что ваш ник не находится в белом списке сервера. Чтобы исправить её, вам необходимо связаться с администратором сервера (через сайт, Discord или другие каналы) и подать заявку на добавление. После того как администратор внесёт вас в список, вы сможете подключиться. Если вы сами являетесь администратором, проверьте, что ник игрока добавлен через /whitelist add <ник>, и что файл whitelist.json корректен.

Чем белый список отличается от чёрного списка?

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

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

Да, можно. В онлайн-режиме достаточно знать ник игрока — сервер сам получит его UUID из базы Mojang. В оффлайн-режиме UUID генерируется на основе ника, поэтому важно, чтобы ник был указан точно, включая регистр. Однако на некоторых пиратских серверах ванильная команда может работать некорректно, поэтому рекомендуется использовать плагины, которые проверяют только ник.

Как включить белый список на сервере Minecraft?

Есть два способа: через консоль или игру командой /whitelist on, либо через файл server.properties, изменив white-list=false на white-list=true и перезапустив сервер. После включения добавьте нужных игроков командой /whitelist add <ник>.

Что такое UUID и зачем он нужен в белом списке?

UUID (Universally Unique Identifier) — это уникальный идентификатор игрока, состоящий из 32 шестнадцатеричных символов. Сервер использует UUID для распознавания игрока, выдачи вещей, статистики и т.д. В белом списке UUID позволяет однозначно идентифицировать игрока, даже если он сменил ник. В онлайн-режиме UUID привязан к аккаунту Mojang, в оффлайн-режиме — к нику.

Безопасен ли белый список на пиратском сервере?

Сам по себе белый список не является надёжной защитой на пиратском сервере, потому что любой может сменить ник в лаунчере. Чтобы обезопасить сервер, обязательно используйте плагин авторизации (например, AuthMe), который потребует пароль при входе. Белый список в этом случае ограничивает круг лиц, которым разрешено вводить пароль.

Как удалить игрока из белого списка?

Используйте команду /whitelist remove <ник>. Также можно отредактировать файл whitelist.json вручную, удалив соответствующую запись, и выполнить /whitelist reload.