Рекомендации по безопасности серверов

Как хостинг Minecraft, иногда мы сталкиваемся с ситуациями, когда сервера клиентов взламывались и разрушались. В большинстве случаев восстановить данные после этого очень сложно или вовсе невозможно. Чтобы избежать таких ситуаций, стоит заранее задуматься о безопасности вашего сервера.

Главное правило

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

Даже если вы никому не говорили адрес вашего сервера, существует множество автоматизированных сканеров, которые успешно ищут незащищённые Minecraft сервера. Найденные уязвимости используются для гриферства ради «забавы» или иных целей.

Настройка сервера

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

1. Авторизация на сервере

На сервере либо должен быть включен параметр online-mode в файле server.properties, либо должен быть установлен и настроен сторонний плагин авторизации, например, AuthMe.

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

2. Защита backend серверов в Velocity/BungeeCord связках

Если вы используете Velocity, ваш сервер по умолчанию достаточно безопасен, если никто не знает значение forwarding secret. Если вы используете BungeeCord, все backend сервера должны быть либо недоступны из интернета, либо использовать механизмы защиты типа BungeeGuard.

Если backend сервера расположены на публичном хостинге, то единственным возможным вариантом остаётся использование Velocity или BungeeGuard.

Не стоит надеяться на межсетевые экраны, предоставляемые панельными хостингами. Они могут защитить сервер от примитивных атак, но злоумышленники по-прежнему смогут получить доступ к серверу, если купят прокси с таким же IP адресом, как у вашего прокси.

Последствия от несоблюдения этих требований аналогичны перечисленным в п. 1.

3. Ограничение RCON

В файле server.properties параметр enable-rcon должен иметь значение false. Если вам крайне необходимо иметь RCON доступ, нужно использовать уникальный и надёжный пароль в rcon.password.

Скорее всего, вы используете RCON для подключения систем авто-доната или прочей автоматизации. В таких случаях вы один раз задаёте пароль, и после этого вам нигде не нужно его использовать. Не стесняйтесь использовать абсолютно случайные последовательности длиной в несколько десятков символов.

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

4. Плагины и моды только из доверенных источников

Все плагины и моды должны быть скачаны исключительно с доверенных сайтов. В их число входят spigotmc.org, hangar.papermc.io, modrinth.com, curseforge.com и небольшое количество других.

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

  1. Отправлять создателям вредоносного кода сообщения с данными вашего сервера. Когда злоумышленники зайдут и загриферят вас — лишь вопрос времени.
  2. Добавлять бэкдоры, позволяющие случайным людям получать полные права на сервере без вашего ведома.
  3. Вносить изменения в другие плагины, добавляя в них вредоносный код. Если у вас не будет бэкапов, восстанавливать сборку придётся с нуля.
  4. Майнить криптовалюту. Делать это на большинстве хостингов нельзя, но отвечать на вопросы их представителей придётся вам, а не разработчикам майнера.
  5. Быть частью ботнетов и осуществлять DDoS атаки. Такое на хостингах обычно строго запрещено — это приносит вред их инфраструктуре.

Нарушив ранее описанные требования, вы отделаетесь лишь последствиями «пакостей» внутри игрового мира, а вот вредоносный код в плагинах может делать что угодно, что значительно расширяет «простор для творчества» злоумышленников.

5. Скачанные сборки

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

Используя готовую сборку, вы не можете быть уверены в происхождении плагинов, используемых в ней. Это значит, что создатель сборки мог либо по незнанию добавить плагины, содержащие вредоносный код, либо намеренно вшить в безобидные плагины бэкдор. Гораздо проще сделать собственную сборку, используя проверенные плагины, чем удостовериться в том, что в скачанной сборке нет вирусов.

Как мы уже выяснили парой абзацев выше, вредоносный код может доставить достаточно проблем как вам, так и хостингу, на котором вы будете запускать сервер. Единственное возможное исключение из этого правила — известные модовые сборки, имеющие хорошую репутацию. Модовые сервера для друзей обычно интересуют злоумышленников меньше.

Размещение на хостинге

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

1. Резервное копирование

Настроить надёжное автоматическое резервное копирование в Pterodactyl крайне просто: достаточно использовать встроенный в панель планировщик. У нас на хостинге во все платные тарифы включено от 1 до 10 бэкапов — пользуйтесь этим!

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

2. Надёжный пароль и 2FA

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

Используйте надёжный пароль для аккаунта и настройте двухфакторную аутентификацию. Поменять пароль и включить 2FA на нашем хостинге можно в личном кабинете в разделе «Мой аккаунт».

3. Доступ для друзей

Ваш аккаунт должен использоваться только лично вами. Если хотите предоставить доступ к панели управления другому человеку, можете использовать вкладку «Пользователи» в Pterodactyl. Так вы сможете ограничить права пользователя и легко отозвать доступ, если потребуется.

К сожалению, встречались клиенты, которые из-за конфликтов с людьми, участвовавшими в разработке их сервера, теряли свои наработки, т.к. доступ к аккаунту не был вовремя отозван. Функционал общего доступа в панели к серверу даёт вам больше удобства и контроля над доступом к вашим данным.

Что если меня уже взломали?

Если ваш сервер взломали, то стоит начать с его выключения.

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

В любом случае обязательно стоит:

  1. Проверить, что все описанные в этой статье рекомендации соблюдены, прежде чем запускать сервер.
  2. Проверить, что в ops.json и настройках LuckPerms нет лишних игроков.
  3. Поменять пароль от аккаунта на хостинге, если злоумышленник получил к нему доступ.
  4. Поменять пароль на сервере для всех игроков, имеющих полный доступ к серверу, если используете плагин для авторизации.