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

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

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

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

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

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

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

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

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

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

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

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

    Для этого есть плагин: BungeeGuard.

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

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

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

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

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

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

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

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

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

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

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

    !!! ВАЖНО !!!
    ! Если вы делаете сервер 1.16.5 !
    Если вы делаете сервер на версии 1.16.5 - не используйте ядро purpur и иные форки. Либо Paper, либо Patina. Только эти ядра имеют фикс данной проблемы.

    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 - содержит фиксыв дюпов и ряда лаг машин
    ViaVersion - помимо того, что добавляет вход с новых версий, имеет в себе лимитёр пакетов, который поможет защититься от пакетных крашей. (По умолчанию слаб, требуется настройка. В конфиге рекомендуется выставить tracking-period: 5 и max-pps: 600)
    ExploitFixer - включает себя ряд фиксов пакет-крашей, но имеет ложные срабатывания.
    LPX - множество фиксов пакет-крашей, которые могут доставить проблемы на старых версиях игры. (не качайте сливы!)
    Примечание: Плагины выше не рекомендуется ставить на сервер версии 1.18.2 и выше! Там все фиксы уже встроены.
    Для большей защищенности на этих версиях можете прочесть следующую статью с настройками для paper-global.yml - https://github.com/YouHaveTrouble/minecraft-exploits-and-how-to-fix-them

    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
    вычеркнут из истории

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

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

    Наверное самое простое из всего что вы тут увидите, но не рассказать об этом нельзя.
    Для защиты от ботов долгое время используют 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)
    - brush command (позволяет выполнять команды от консоли,WorldEdit)

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

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

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

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

    Баллы:
    36
  3. 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, но там сплошной оверпрайс за мусор (не без исключений, конечно).
     
  4. Автор темы
    Overwrite

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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