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

Уж сколько раз твердили миру что нужно защищать проект...​

И до сих пор большинство не могут сделать свой проект более защищенным. Ошибки, которые совершались даже 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) Рекомендую скрывать список плагинов от постороннего взора. Зачем? Банально для того, чтобы у вас не воровали идеи 😁
Для этого выдайте группе игрока отрицательные права 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% защита. Стоит отбирать права на данные команды, если хотите действительно предотвратить их использование.

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

В сущности тут я описал всё, что можно. Главное, чтобы у вас самих была голова на плечах и вы понимали, что делаете.
 
Последнее редактирование:
Ещё от админа зависит оптимизация. А то понаставят кучу говенца не оптимизированного, что даже настройка ядра на помогает и потом жалуются
Я об этом думал написать, но осознал что это статья о том, как защитить сервер - а не как его сделать. Но было бы конечно неплохо заиметь некий общий мануал по тому, какие плагины желательно ставить и как их настроить; туда бы стоило и оптимизацию впихнуть, и прочее-прочее.
 
Я об этом думал написать, но осознал что это статья о том, как защитить сервер - а не как его сделать. Но было бы конечно неплохо заиметь некий общий мануал по тому, какие плагины желательно ставить и как их настроить; туда бы стоило и оптимизацию впихнуть, и прочее-прочее.
Я бы очень хотел сделать такую статью, но на меня выльется столько говна, и от тех кто умнее меня и от тех кто тупее, что ну него нафиг.
Тут всё слишком субъективно что нереально описать всё
 
Я бы очень хотел сделать такую статью, но на меня выльется столько говна, и от тех кто умнее меня и от тех кто тупее, что ну него нафиг.
Тут всё слишком субъективно что нереально описать всё
Насчёт субъективности на самом деле тема не до конца ясна. Субъективщина тут наверное разве что с плагинами, хотя есть же некие общепринятые плагины, которые использует добрая половина серверов - можно было бы описать, как, например, в Essentials убрать красный цвет у опки в нике, чтобы ребятня научилась хоть маломальски настраивать свои Атерносы.
Или как в AuthMe включить и настроить GeoIP, который неплохо помогает справляться с ботами и прочим (Это если нет БотФильтра, конечно).

В целом в англоговорящем контингенте майнкрафта полно готовых статей о том, как настроить, что скачивать и как пользоваться; прямо и говорит "Дерзай!". Остаётся только перевести.

Но я полагаю, что от ушата говна тут в любом случае не спастись: Та же ситуация что со статьями о том, как писать плагины. В итоге из-за этих злосчастных статей набегают школьники, клепая свои низкосортные плагины (Хотя лично я не до конца понимаю, почему людям это так не нравится. Будет статья о том, как сделать хороший сервер - будет только больше хороших серверов... разве не так?)
 
чтобы ребятня научилась хоть маломальски настраивать свои Атерносы.
Они на такие форумы не пойдут и БуКаВы читать не будут. Они скорее посмотрят какой-нить лоховской гайд на ютабчике, где по 40 минут разжевывается то, что можно за 10 объяснить.

Будет статья о том, как сделать хороший сервер - будет только больше хороших серверов... разве не так?
Неа, не так. Ты напишешь статью, а шкила, который думает что постиг всё насвете после того как зафиксил краш будет говорить мол "ну ёпана, яж у себя зафиксит поставив хераборину какую-то, а автор говорит что оно нафег на надо, вывод автор тупой и надо послать его туда куда надо". Либо же они просто проигнорируют советы, продолжая ставить плагины с названием FIX или AntiBot на свои сервера просто по тому что в названии есть фикс или антибот. ПаМаГаЕт жЭ.

Зачем лишний раз тратить свои силы
 
Они на такие форумы не пойдут и БуКаВы читать не будут. Они скорее посмотрят какой-нить лоховской гайд на ютабчике, где по 40 минут разжевывается то, что можно за 10 объяснить.


Неа, не так. Ты напишешь статью, а шкила, который думает что постиг всё насвете после того как зафиксил краш будет говорить мол "ну ёпана, яж у себя зафиксит поставив хераборину какую-то, а автор говорит что оно нафег на надо, вывод автор тупой и надо послать его туда куда надо". Либо же они просто проигнорируют советы, продолжая ставить плагины с названием FIX или AntiBot на свои сервера просто по тому что в названии есть фикс или антибот. ПаМаГаЕт жЭ.

Зачем лишний раз тратить свои силы
Также кстати и с моей статьей про защиту. Шкилам эта инфа почти никогда не нужна. Они наткнутся на прошлогоднюю статью и схавают это. А там столько треша понаписано, что перечитывая ловишь дикий кринж, но шкилы то не знают и думают что там все по уму расписано
 
Неа, не так. Ты напишешь статью, а шкила, который думает что постиг всё насвете после того как зафиксил краш будет говорить мол "ну ёпана, яж у себя зафиксит поставив хераборину какую-то, а автор говорит что оно нафег на надо, вывод автор тупой и надо послать его туда куда надо". Либо же они просто проигнорируют советы, продолжая ставить плагины с названием FIX или AntiBot на свои сервера просто по тому что в названии есть фикс или антибот. ПаМаГаЕт жЭ.

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

Также кстати и с моей статьей про защиту. Шкилам эта инфа почти никогда не нужна. Они наткнутся на прошлогоднюю статью и схавают это. А там столько треша понаписано, что перечитывая ловишь дикий кринж, но шкилы то не знают и думают что там все по уму расписано
Я бы сказал, что для шкилы 90% информации из статьи просто не нужна, поскольку на атерносах нет ни портов, ни банжикордов и прочего. Соответственно можно сделать вывод, что полезным для них будет блокировка команд – но, скорее всего, шкила итак знает как их заблокировать; достаточно просто правильно настроить права.
 
Я скорее имел в виду то, что от таких статей никому хуже не будет.
А насчёт шкилы это какое-то стереотипное мнение, как по мне – сейчас шкила более развитая, потому и заглянет наверняка. По идее новизна статьи должна наоборот притягивать шкилу.


Я бы сказал, что для шкилы 90% информации из статьи просто не нужна, поскольку на атерносах нет ни портов, ни банжикордов и прочего. Соответственно можно сделать вывод, что полезным для них будет блокировка команд – но, скорее всего, шкила итак знает как их заблокировать; достаточно просто правильно настроить права.
Атерносы вообще настолько низшая форма существования, что помогать им делать что-либо кроме сервера для посиделок - самооскорбление. Надо делать всё, чтобы они с них уходили. Иначе никак. Защищать такие сервера можно только поставив на них Whitelist т.к. даже бесплатные бот-атаки их ложат без каких либо проблем.
 
Атерносы вообще настолько низшая форма существования, что помогать им делать что-либо кроме сервера для посиделок - самооскорбление. Надо делать всё, чтобы они с них уходили. Иначе никак. Защищать такие сервера можно только поставив на них Whitelist т.к. даже бесплатные бот-атаки их ложат без каких либо проблем.
Честно говоря, смею не согласиться. Сам когда-то держал сервер а-ля Хайпиксель для бедных на Атерносе - там даже можно было играть! Благо, с пингом и с ТПС там всё в порядке - а от ботов, насколько я понимаю, даже ребёнок сможет защититься: С недавних пор по мониторингам начались ДДоС-атаки рекламными ботами, из-за чего школоте пришлось импровизировать. На какой сервер не зайди - так там столько защит, что даже будучи человеком хрен пролезешь.
И, плюс, насколько я помню, относительно недавно на Атерносе появилась возможность редактировать файл spigot.yml, посему теперь даже всеми любимый БотФильтр подключить не составит труда - главное только раздобыть на него немного шекелей. Но, конечно, сомневаюсь, что в ближайшее время контингент до этого дойдёт. Уже UltimateAntiBot давно завезли, а люди всё AntiBotUltra используют ☕.
 
Честно говоря, смею не согласиться. Сам когда-то держал сервер а-ля Хайпиксель для бедных на Атерносе - там даже можно было играть! Благо, с пингом и с ТПС там всё в порядке - а от ботов, насколько я понимаю, даже ребёнок сможет защититься: С недавних пор по мониторингам начались ДДоС-атаки рекламными ботами, из-за чего школоте пришлось импровизировать. На какой сервер не зайди - так там столько защит, что даже будучи человеком хрен пролезешь.
И, плюс, насколько я помню, относительно недавно на Атерносе появилась возможность редактировать файл spigot.yml, посему теперь даже всеми любимый БотФильтр подключить не составит труда - главное только раздобыть на него немного шекелей. Но, конечно, сомневаюсь, что в ближайшее время контингент до этого дойдёт. Уже UltimateAntiBot давно завезли, а люди всё AntiBotUltra используют ☕.
Штош, видимо мне придется выпустить статью. Чтобы наконец отвадить всех чертил от желания использовать слотовый уязвимый мусор
 
Добавил инфу о новом эксплоите.
Все, кто стоят на версии сервера ниже 1.16.5 - в скрипт запуска вставляйте -Dlog4j2.formatMsgNoLookups=true


Инфа неактуальна!
 
Последнее редактирование:
Последнее редактирование:
Актуальное ядро с фиксом этого дела:
https://github.com/moom0o/Papaya/releases
Фиксит исключительно серверную часть

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

Проверить свой сервер на уязвимость можно командой
/say ${date:YYYY}
Если выбивает год - вы под угрозой.
 
Актуальное ядро с фиксом этого дела:
https://github.com/moom0o/Papaya/releases
Фиксит исключительно серверную часть

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

Проверить свой сервер на уязвимость можно командой
/say ${date:YYYY}
Если выбивает год - вы под угрозой.
А фикса без другого ядра нет?
 
Назад
Верх Низ