1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Туториал Защита и безопасность сервера майнкрафт - 2022 | устранение уязвимостей/защита от взлома

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Overwrite, 4 сен 2021.

  1. Автор темы
    Overwrite

    Overwrite Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    artcart
    Уж сколько раз твердили миру что нужно защищать проект...

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

    ⦁ Пункт 1 - методы защиты при работе с VDS/Dedicated

    Данный пункт невероятно огромен. Если вы используете ВДС или дедик, на котором запущен ваш сервер майнкрафта, то вам настоятельно рекомендуется ознакомиться с моей статьёй по этой ссылке: https://rubukkit.org/threads/rabota...s-zaschita-servera-i-t-p.184357/#post-1708303

    Вы найдете там достаточно много полезной информации. Закрытие портов, защита от брутфорса, запуск без опаски вирусов - там есть всё, что нужно.

    ⦁ Пункт 2 - защита портов на уровне сервера

    Что делать, если мы имеем дело не с ВДС? Панельные хостинги все еще пользуются популярностью. Однако на многих из них ты никак не можешь настроить порты, что подвергает их рискам. И как же защититься от прямого подключения, когда взломщик минует авторизацию, попадая сразу на игровой сервер?

    Для этого есть 1 полезный плагин.

    Этот плагин - BungeeGuard.
    Если у вас Bungeecord. Ставьте плагин на банжу. Он сгенерирует случайный ключ безопасности или же токен. Переходим в папку плагина, ищем там файл token.yml и копируем данный токен. Затем ставим этот плагин на свои основные сервера, после чего в конфиг вставляем скопированный ранее токен. Готово. Теперь никто не сможет присоединиться на ваш сервер через открытый порт или фейк банжу.
    Если у вас Velocity. Сам плагин на прокси ставить не надо. Вам нужно всего лишь поставить в конфиге велосити (velocity.toml) player-info-forwarding-mode: bungeeguard и задать ключ в файле forwarding-secret. Теперь вставляйте созданный ключ в конфиги плагинов на сервере. Готово.

    ⦁ Пункт 3 - Защита сервера, игроков и админов

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

    1) Для защиты аккаунта вы можете использовать плагины на авторизацию со встроенной 2-факторной аутентификацией. Банальный пример такого - MC-Auth fork. Привязка к ВК спасет вас от пробива по базам данных прочих серверов. Даже если они узнают ваш пароль - 2fa им не пройти.
    Если привязка к вк это не ваше - для вас есть плагин для привязки к дискорду или телеграму - LimboAuth-SocialAddon

    2) Для защиты от тех, кто каким-то магическим образом получает себе админ-права можно использовать следующий плагин:
    Моё чудо, UltimateServerProtector, позволяет установить игрокам с админ-правами дополнительный пароль для защиты. Также присутствует Op-Whitelist и прочие штуки.

    3) Для того, чтобы обезопасить себя от донатеров или админов с доступом в регионы качаем плагин - WorldGuardRegionProtect, который является продвинутым аналогом OPSRegion.
    Если же вам нужно ограничить игроков с креативом от глупостей - можете использовать CreativeManager. Как по мне - лучший плагин на креатив-контроль.
    Однако не всегда вас спасут какие-то плагины, по этому, если вы даете игроку * в каком-либо плагине, убедитесь, что вы заблокировали опасные команды оттуда.
    Лучшим решением будет не давать * ни при каких обстоятельствах, выдавая права на команды по отдельности!

    Также не стоит забывать о блокировке команд, но о ней ниже.

    ⦁ Пункт 4 - избавляемся от крашей и уязвимостей

    Тут есть 1 важный пункт, который требует пояснения.
    Log4Shell - эксплоит, при помощи которого можно выполнять вредоносный код на устройстве, которое использует устаревшую версию библиотеки log4j. Работает так: игрок пишет в чат на сервере, а майнкрафт воспринимает это сообщение так, что выполняет код, который указан в сообщении. Таким образом можно взломать и сервер и игроков сервера!

    Ответы на вопросы по устранению уязвимостей:

    1) В первую очередь необходимо избавиться от log4shell эксплоита, упомянутого выше. Всегда обновляйте свои ядра до последних версий (речь о релизах, не о версиях майнкрафта). Желательно установить данный флаг в скрипт запуска:
    -Dlog4j2.formatMsgNoLookups=true
    Также, чтобы обезопасить игроков стоит использовать плагин Log4jFix

    2) Как фиксить краш тенями? - Краш тенями (или же частым их обновлением) "зафиксить" можно используя ядро Dionysus - форк пейпера. В файле paper.yml также стоит поставить queue-light-updates: true. На версиях 1.13+ исправлено.

    3) Как фиксить краш раздатчиками? - Это фиксится плагинами. К примеру вот. Исправлено в 1.13+ версиях и форках пейпера, упомянутых ранее.

    4) Как чинить краш сервера командой из WorldEdit? - Установите плагин FAWE последней версии (для версии сервера). Там встроен фикс.

    5) Как исправить краш сервера командой /mv? - Самое простое решение это просто её заблокировать, либо отнять право mv.help. Для новых версий плагина вышел фикс, но работает только для версий 1.13+

    6) Сервер не запускается на ядре пейпер, что делать? - Скорее всего - это заражение "вирусом". С ним справились в этой теме.

    7) Как фиксить лаги песком+паутиной? - Всё просто - отключаем физику блоков (в конфиге WorldGuard ставим no-physics-gravel: true no-physics-sand: true).

    8) Как исправить кучу ошибок "Could not pass InventoryClickEvent" и вылет сервера от этого? - Это не проблема плагинов, это Error-crash. Самый простой способ его исправить - установить ExploitFixer. На версиях 1.18.2 и выше исправлено.

    Советы по данному делу:

    1) В качестве ядра сервера используйте Paper или его форки. Оно является самым производительным на данный момент и имеет в себе большинство фиксов связанных с механикой майнкрафта! Если вы используете спигот - просто замените его на Paper.
    Все плагины на нём будут работать!

    2) Используйте FAWE, если даете донатерам //set. Для чего? Поясняю. WorldEdit стандартный имеет некоторые огрехи и недочеты. К примеру возможность сетать запрещенными блоками. FAWE данные уязвимости устраняет.

    3) Для фикса ряда эксплоитов, связанных с пакетами и т.п. крашами, к использованию рекомендуются следующие плагины:
    IllegalStack - содержит фиксыв дюпов и ряда лаг машин
    LecternCrashFix - исправляет краш при помощи кафедры. обязателен на версиях ниже 1.18.2!
    ViaVersion - помимо того, что добавляет вход с новых версий, имеет в себе лимитёр пакетов, который поможет защититься от пакетных крашей. (По умолчанию слаб, требуется настройка. В конфиге рекомендуется выставить tracking-period: 5 и max-pps: 600)
    ExploitFixer - включает себя ряд фиксов пакет-крашей, но имеет ложные срабатывания.
    LPX - множество фиксов пакет-крашей, которые могут доставить проблемы на старых версиях игры. (не качайте сливы!)
    Примечание: Плагины выше не рекомендуется ставить на сервер версии 1.18.2 и выше! Там все фиксы уже встроены.

    4) Рекомендую скрывать список плагинов от постороннего взора. Зачем? Банально для того, чтобы у вас не воровали идеи :D
    Для этого выдайте группе игрока отрицательные права bukkit.command.plugins, bukkit.command.version и bukkit.command.help.
    Будет лучше для вас, если плагины останутся в тайне.

    5) В spigot.yml есть раздел spam-exclusions: и там прописана одна команда - /skill. Она ни за что не отвечает, но если её прописывать быстро - ядро не кикнет тебя за спам. Будет лучше убрать эту команду оттуда, оставив раздел пустым. Должно это выглядеть как spam-exclusions: []

    6) Если используете PlugMan или его аналоги - запрещайте отгружать важные плагины. Зайдите в конфиг PlugMan и вносите в ignored-plugins всё важное. К таким относятся блокираторы, античиты, плагины на регистрацию, права и особенно BungeeGuard.

    7) Рекомендую проверять список своих плагинов, если вы когда-либо качали плагины с неофициальных источников, или вовсе от левых пользователей. Даже если вы доверяете им, иногда они могут на этом сыграть и нарочно вшить в плагин заразу.
    Если вы обнаружите в своём списке плагинов следующие плагины, то пересобирайте сборку с нуля:
    PluginMetrics.jar (он же EssentialsBackup в /pl)- довольно баянистый малварь, но тем не менее, всё еще попадается. Вроде как уже не выполняет прямого назначения, но вот заражать может, что не есть хорошо.
    ProtocolMeneger.jar - НН малварь, передающий данные сервер пропертиз и логи команд (среди которых /l, /login и /pas) на левый сайт.
    PacketFixer.jar - еще 1 старый хак плагин, который ничего не фиксит, но сообщает данные от ркон игроку по команде.
    PayloadFixer.jar - из той же серии, что и предыдущий, но выдаёт данные не по команде, а через сообщение в чат
    Список может пополняться
    И даже если этих плагинов нет, не забывайте о том, что

    7) Не качайте платные плагины с источников. Там с вероятностью 99% есть бекдоры!

    Доверять в 95% случаях можно сайтам:
    spigot.org
    dev.bukkit.org
    curseforge.com
    modrinth.com
    "Доверяй, но проверяй" относится к сайтам:
    rubukkit.org
    spigotmc,ru
    black-minecraft.com

    К источникам, с которых ТОЧНО не рекомендуется качать что либо:
    minesborka - нет модерации, мусор
    mineleak/directleaks/blackspigot/lightleak - посмотрите выше

    ⦁ Пункт 5 - защищаемся от ботов

    Наверное самое простое из всего что вы тут увидите, но не обмолвиться об этом нельзя.
    Для защиты от ботов долгое время используют BungeeCord+BotFilter. Если выбираете его, включите капчу.
    Делается это так:
    В файле config.yml в папке BotFilter разделе protection ставим либо 0 либо 1.
    Важно также поставить лимит игроков на сервере, чтобы к вам не зашло 30МЛН ботов. Для этого в конфиге банжи и ставим в поле player_limit необходимое число игроков.

    Помимо BungeeCord есть еще и Velocity. Он является более современным аналогом банжи без уязвимостей, которые есть в последней. Гайд по данному прокси можно найти тут. На него есть ряд анти-бот плагинов. Самая на данный момент эффективная защита - LimboFilter.
    В отличие от BotFilter, при помощи него вы сможете полностью кастомизировать каптчу. Для начала включите её, выставив в конфиге значение check-state-non-toggled: на "CAPTCHA_POSITION", а после делайте всё что захотите при помощи настроек из раздела captcha-generator:

    ⦁ Пункт 6 - блокируем команды

    Блокировка команд прокси:
    Для блокировки команд на Bungeecord нужно включить их в раздел disabled_commands: в конфиге банжи.
    Для блокировки команд прокси сервера Velocity потребуется использовать либо плагин, либо отнять права на их использование при помощи LuckPermsVelocity.
    Команды которые СТОИТ заблокировать:
    - server
    - alert
    - greload
    - glist
    - end

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

    Итак, какие команды стоит заблокировать:
    - op
    - deop
    - sudo и алиасы (выполнение команд от имени игрока,Essentials)
    - execute (то же что и sudo)
    - packet (ProtocolLib)
    - mycmd-runas (выполнение команд от консоли,MyCommand)
    - npc create (Citizens)
    - npc cmd (добавляет НПС команду,Citizens)
    - npc cmdadd (добавляет НПС команду,Citizens)
    - /cs (выполнение скриптов,WorldEdit)
    - jsexp
    - jsexpansion
    - javascriptexpansion
    - brush command (позволяет выполнять команды от консоли,WorldEdit)

    Опять же напомню, блокировка - не 100% защита. Стоит отбирать права на данные команды, если хотите действительно предотвратить их использование.

    ⦁ Заключение.

    В сущности тут я описал всё, что можно. Главное, чтобы у вас самих была голова на плечах и вы понимали, что делаете.
     
    Последнее редактирование: 2 фев 2023
  2. Быстрая раскрутка сервера Minecraft
  3. yellowakyloff

    yellowakyloff Участник Пользователь

    Баллы:
    36
  4. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Неплохо, но много недосказанности, да структура хромает.
    Порты должны быть одним пунктом, рут отдельно. "Зачем закрывать порты?" - вполне логичный вопрос для новичка; следует немного рассказать про UUID-спуфинг. Плюс следует упомянуть, что этот пункт бесполезен при отсуствии прокси-сервера (а также посоветовать использовать таковой). Алсо, если ставить Velocity и настроить его, BungeeGuard не понадобится - там есть такая же фича секретного ключа.
    Объяснений новичк также требует создание дополнительного юзера.
    Хочу упомянуть, что одним из лучших вариантов защиты аккаунтов будет использование лицензии, а там уже защитой аккаунта займется Microsoft. Да, я знаю - мы в СНГ, и абсолютное большинство здесь под черным флагом Весёлого Роджера, но, на мой взгляд, достойно упоминания.
    Самый важный совет - обновляться. Хост, сервер, плагины. Обновления очень важны для безопасности всей системы, и игнорирование этого - в какой-то мере грешно. Большинство проблем пункта, как можно заметить, можно решить именно этим.
    Ну, и пароли как можно строже. Часто проблема именно в этом.
    Акстись.
    Уже давно просто Paper.
    Стоит упомянуть сетап Velocity+какой-нибудь антибот.
    Стоит упомянуть, что "правые" источники - https://dev.bukkit.org/, https://spigotmc.org/, и в ближайший год появится вариант от papermc (вероятно будет https://hangar.papermc.io/ или вроде того). В какой-то мере mc-market, но там сплошной оверпрайс за мусор (не без исключений, конечно).
     
  5. Автор темы
    Overwrite

    Overwrite Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    artcart
    Дополню :good:
    Но насчет того что такое UUID-spoof говорить стремно, еще сами попробуют. (хотя пофиг)
     
    Последнее редактирование: 4 сен 2021
  6. Gru2303

    Gru2303 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    Одно не понятно почему не рекомендуется запускать сервер от рут?
     
  7. Автор темы
    Overwrite

    Overwrite Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    artcart
    Если ВДРУГ каким-то образом ты скачаешь вредоносный плуг, у него не будет возможности проникнуть глубже, чем в юзера.
    Проникновение в рута ни к чему хорошему не ведет.
     
  8. Demrenus

    Demrenus Активный участник Пользователь

    Баллы:
    66
    Вообще никогда не надо запускать программы с рут, небезопасно, и это не только к майнкрафту относится.
    Я бы посоветовал подобные плагины не использовать вообще, а по человеческому рестартать сервер
     
  9. Автор темы
    Overwrite

    Overwrite Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    artcart
    Рестартать сервер не всегда удобно, когда у тебя 100 онлайн. Вернутся 70. А если надо делать что-то быстро - самое то. Главное заблокать отгрузку полезных плагинов
     
  10. Npc093

    Npc093 Активный участник

    Баллы:
    61
    Вот всё решает
    https://www.spigotmc.org/resources/two-factor-authentication.85594/ (Ставить на HUB )
    А не ваш вконтакте..
    Кто там еще сидит в том ВК?
     
  11. Demrenus

    Demrenus Активный участник Пользователь

    Баллы:
    66
    Может быть, но все равно небезопасно это, по крайней мере для меня. Вместо этого лучше сделать авторестарт в 12 ночи со всеми нужными фиксами и плагинами, а еще лучше - проверять все на тест сервере
    97 млн человек
     
  12. Автор темы
    Overwrite

    Overwrite Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    artcart
    Гугловская 2фашка... ну можно. Видал. Не вставил в гайд, пушто она не особо удобная. Проще уже тогда использовать ряд платных плагинов на авторизацию в GUI меню
     
  13. Npc093

    Npc093 Активный участник

    Баллы:
    61
    Здесь не об удобствах говорят. А о защите акка. И да стати можно чисто на Адм Акк этот право кинуть и все.
    Типа об узера не смогут поставить. А вот Админ себе кинул и все.
     
  14. Автор темы
    Overwrite

    Overwrite Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    artcart
    Для этого у меня уже припасен UltimateServerProtector. Тут тоже не имеющий пасса войти не сможет
     
  15. Methodikal

    Methodikal Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Methodikal
    В USP устанавливается определенный пароль, что не совсем безопасно, когда как гугл каждый раз генерирует новый.
     
  16. Автор темы
    Overwrite

    Overwrite Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    artcart
    Тоже верно. Я бы сюда еще 1 плагин на это всунул но он работает только с вк

    Хотя думаю прямо сейчас засуну туда предложения.
     
    Последнее редактирование: 5 сен 2021
  17. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Зачем гугл, когда 2fa реализован прям в authme?
     
  18. Автор темы
    Overwrite

    Overwrite Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    artcart
    Аучми щас уступает 1 другому интересному плагину. LoginSecurity, в котором такого нема
     
  19. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    А чем уступает то?
     
  20. Автор темы
    Overwrite

    Overwrite Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    artcart
    Ну типа позициями. Не так часто теперь ауч ставят
     
  21. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    А что-нибудь более существенное?
     

Поделиться этой страницей