Защита игрового сервера от атак и гриферов: гайд

Игровые серверы
Защита игрового сервера от атак и гриферов: гайд

Защита игрового сервера — это не один «волшебный плагин», а несколько слоёв: контроль того, кто вообще может зайти, журналирование и откат действий внутри игры, резервные копии мира, сетевая фильтрация от DDoS и закрытые служебные порты. Публичный IP игрового сервера начинает сканироваться ботами в первые же часы после запуска, а единственный гифер способен за вечер уничтожить постройки, которые сообщество возводило месяцами. Хорошая новость: все базовые меры защиты настраиваются за один вечер и почти все — бесплатны. Разберём их по слоям на примере Minecraft (принципы те же для Rust, CS2 и других игр).

Слой 1. Whitelist: пускаем только своих

Для приватного сервера «для друзей» whitelist закрывает 90% проблем: случайный посетитель просто не подключится. В Minecraft он встроен в ядро и включается двумя командами в консоли:

whitelist on
whitelist add Player_Nick

Или заранее в server.properties:

white-list=true
enforce-whitelist=true

Параметр enforce-whitelist=true важен: он выкидывает уже подключённых игроков, которых удалили из списка, а не ждёт их переподключения. Дополнительно проверьте, что online-mode=true — сервер будет сверять игроков с официальной базой аккаунтов, и никто не зайдёт под чужим ником. Для публичных проектов, где whitelist невозможен, роль «фильтра на входе» выполняют права доступа: новичок не должен получать возможность строить и ломать в чужих регионах с первой минуты.

Слой 2. Плагины против гриферства: CoreProtect и права

Даже среди «своих» случаются конфликты, а на публичном сервере гриферство — вопрос времени. Здесь работает связка из журналирования и разграничения прав (для плагинов понадобится ядро Paper или другое ядро с поддержкой Bukkit-плагинов).

CoreProtect: журнал и откат любых изменений

CoreProtect — главный инструмент против гриферов. Он пишет в базу каждое действие: кто поставил и сломал блок, кто открывал сундуки, кто поджигал и выливал лаву. Дальше два сценария:

  • Расследование. Команда /co inspect переводит вас в режим инспекции: клик по блоку показывает историю — ники, действия, время.
  • Откат. Команда вида /co rollback user:Grifer_Nick time:3h radius:50 отменяет всё, что игрок сделал за последние 3 часа в радиусе 50 блоков. Постройки восстанавливаются за секунды, без отката всего мира из бэкапа.

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

Разграничение прав и защита территорий

  • LuckPerms — группы прав: новички, игроки, модераторы. Опасные команды — только доверенным.
  • WorldGuard — защищённые регионы: спавн, общие постройки и приватные участки, где строить и ломать могут только владельцы.
  • Минимум операторов: каждый лишний «оп» — потенциальная точка отказа. Выдавайте конкретные права через группы, а не статус оператора.

Слой 3. Бэкапы мира: страховка от всего сразу

Бэкап — последний рубеж, который спасает и от гриферов, и от неудачного обновления модов, и от повреждения файлов мира. Минимальный рабочий вариант — ежедневный архив мира по расписанию cron:

#!/bin/bash
BACKUP_DIR=/var/backups/minecraft
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/world-$(date +%F).tar.gz" -C /opt/minecraft world
find "$BACKUP_DIR" -name "world-*.tar.gz" -mtime +7 -delete

И строка в crontab (каждый день в 5 утра):

0 5 * * * /opt/minecraft/backup.sh

Три правила, которые отличают рабочие бэкапы от «галочки»:

  1. Несколько поколений. Гриферство могут заметить не сразу — храните минимум 7 ежедневных копий, чтобы было куда откатываться.
  2. Копия вне сервера. Архив на том же диске не спасёт при потере самого сервера. Выгружайте копии на другой сервер или в объектное хранилище — схему целиком мы разобрали в статье о резервном копировании VPS по стратегии 3-2-1.
  3. Проверка восстановления. Раз в месяц разворачивайте архив в тестовую папку и убеждайтесь, что мир открывается.

Место под поколения бэкапов заложите заранее: на тарифе Ultra у Cheap-Host (192 ГБ NVMe) рядом с тяжёлым миром спокойно живёт неделя ежедневных архивов.

Слой 4. DDoS-фильтрация L3/L4: защита игрового сервера на сетевом уровне

Игровые серверы — частая мишень сетевых атак: обиженный игрок или конкурирующий проект пытаются «положить» сервер объёмом мусорного трафика. Против атак уровней L3/L4 (перегрузка канала и транспортного уровня) на стороне самого VPS сделать почти ничего нельзя — мусор нужно отсеивать до того, как он дойдёт до вашей сетевой карты. Это задача инфраструктуры хостинга.

У Cheap-Host базовая DDoS-фильтрация L3/L4 включена во все тарифы VPS: типовые объёмные атаки гасятся на уровне сети площадки, а до сервера доходит легитимный игровой трафик. Как устроена такая фильтрация технически, мы подробно писали в статье про DDoS-защиту VPS. Со стороны сервера дополните её простыми мерами гигиены:

  • Не публикуйте IP сервера где попало — раздавайте адрес через домен и не «светите» его в чужих мониторингах без необходимости.
  • Ограничьте число подключений с одного адреса и включите анти-бот плагины на прокси (если используете Velocity/BungeeCord).
  • Держите ядро и плагины обновлёнными: злоупотребления протоколом чаще всего закрываются очередным патчем.

Слой 5. RCON и служебные порты: закрываем всё лишнее

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

  • Не нужен — выключите. В server.properties: enable-rcon=false.
  • Нужен для панели или скриптов — только локально. Проверьте, что RCON слушает локальный интерфейс, задайте длинный случайный пароль и никогда не открывайте порт 25575 наружу. Для удалённого управления подключайтесь через SSH-туннель:
ssh -L 25575:127.0.0.1:25575 user@your-server-ip

После этого RCON-клиент на вашем компьютере ходит на localhost:25575, а наружу трафик идёт внутри шифрованной SSH-сессии.

Тот же принцип — для всех служебных портов. Настройте файрвол UFW так, чтобы снаружи были доступны только SSH и игровой порт:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable

Пошаговый разбор правил — в статье о настройке файрвола UFW. И не забудьте про сам SSH: вход по ключам вместо пароля и Fail2ban против перебора — это защита не игры, а всей машины, на которой игра работает.

Сводный чек-лист защиты

МераОт чего защищаетВремя на настройку
Whitelist + online-modeПосторонние на сервере5 минут
CoreProtectГриферство: расследование и откат15 минут
LuckPerms + WorldGuardЗлоупотребление правами, чужие постройки1–2 часа
Ежедневные бэкапы + копия вне сервераЛюбая потеря данных30 минут
DDoS-фильтрация L3/L4 (на стороне хостинга)Объёмные сетевые атаки0 — включена у Cheap-Host
RCON локально или выключен, UFWЗахват консоли и служб сервера15 минут

FAQ

Достаточно ли whitelist для защиты игрового сервера?

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

Что делать, если гриферы уже разрушили постройки?

С установленным CoreProtect: /co inspect для поиска виновника, затем /co rollback с нужным ником, временем и радиусом — постройки вернутся за секунды. Без CoreProtect остаётся только восстановление мира из последнего бэкапа.

Как часто делать бэкапы мира?

Минимум раз в сутки автоматически плюс копия перед каждым обновлением ядра и модов. Храните 7 ежедневных и несколько еженедельных поколений, хотя бы одну копию — вне самого сервера.

Нужно ли открывать порт RCON наружу?

Нет. RCON передаёт пароль открытым текстом и даёт полный доступ к консоли. Держите его на 127.0.0.1 за файрволом и подключайтесь через SSH-туннель, а если RCON не используется — отключите.

Защитит ли фильтрация L3/L4 от любых атак?

Она отсеивает объёмные сетевые атаки — самый частый сценарий для игровых проектов. Злоупотребления внутри игрового протокола закрываются мерами на стороне сервера: whitelist, лимиты подключений, анти-бот плагины и свежие версии ядра.

Вывод

Надёжная защита игрового сервера — это слои: whitelist на входе, CoreProtect и права внутри игры, ежедневные бэкапы мира, закрытые RCON и служебные порты, а на сетевом уровне — DDoS-фильтрация L3/L4 на стороне хостинга. Ни один слой не требует больших денег, а вместе они сводят типовые угрозы почти к нулю. Если для игрового проекта нужен сервер — у Cheap-Host тариф Ultra от 1500 ₽/мес: 20 vCPU, 32 ГБ RAM, 192 ГБ NVMe, KVM, безлимитный трафик, базовая DDoS-защита L3/L4 во всех тарифах и выдача сервера за 45–60 секунд. Тарифы — на cheap-host.onl. А если только планируете сборку с модами, загляните в разбор сколько RAM нужно Minecraft с модами.

Читайте также