Защищаемся от всего чего только можно

Руководство Защищаемся от всего чего только можно

Поддерживаемые версии
  1. 1.8
  2. 1.9
  3. 1.10
  4. 1.11
  5. 1.12
  6. 1.13
  7. 1.14
  8. 1.15
  9. 1.16
  10. 1.17
  11. 1.18
  12. 1.19
Здрасьте. Решил написать инструкцию по защите сервера от всего плохого что я знаю.​

1. Дюпы, краши, эксполиты. Самый простой способ избавиться от всего такого - установить версию 1.19.2, кстати надо выбирать ядро с патчами от paper, например pufferfish [скачать] На 1.19.2 исправлены почти все приколы с картами в рамках, иероглифами на табличках, саппресоры и всё такое. В более ранних версиях уязвимости исправляют разработчики paper, несмотря на то, что все версии ниже 1.18 у них отмечены как неподдерживаемые. Однако, если вы используете версию 1.12, то я вам соболезную нужно исправить краш при помощи тени от полублоков. Для этого используйте ядро Dionysus [скачать], так же потребуется использовать плагин для фикса кучи меток на картах и всего такого, под названием exploit fixer [скачать] Ну или просто обновитесь на нормальную версию (хотя бы 1.13). К тому же там добавили много контента.​
А для фикса эксплоитов на банжикорде используйте вместо него velocity [скачать] или, если вам так нужна поддержка плагинов банжикорда, то используйте waterfall [скачать]

2. Бесплатный сыр. Некоторые разработчики хотят зарабатывать на своём деле, поэтому они делают свои плагины платными (как им не стыдно!?). Но можно же скачать платное бесплатно на всяких нехороших сайтах. Так вот, лучше так не делать. Во-первых, вы, скорее всего, скачаете старую версию плагина. Во-вторых, вы не получите поддержку от разработчика, если у вас что-то поломается (а у вас что-то поломается). В-третьих, в таких плагинах часто есть вредоносный код. Приведу 2 примера
Первый пример: был плагин под названием oh the dungeon, который разработчик удалил отовсюду, включая гитхаб (плагин был бесплатным). Я нашёл этот плагин в какой-то китайской сборки, в которой 100% не было бекдоров, а также скачал с сайта, на который выкладывают слитые плагины. После этого я глянул эти плагины через декомпилятор и оказалось, что в плагине с сайта присутствует библиотека asm (https://asm.ow2.io). Эта библиотека позволяет изменять байткод других плагинов в реальном времени, а в плагине с китайской сборки такого не было. Ещё один пример: плагин citizens. Несмотря на то, что он опять же бесплатный, на уже другом сайте выложили плагин, у которого главный класс имеет название с залго символами (https://stackoverflow.com/questions/6579844/how-does-zalgo-text-work), а так же обфусцированым кодом, хотя такого кода не было в исходном плагине.
Что же делать, если платить все равно не хочется? Найдите бесплатную альтернативу. Например, есть разработчик под ником NightExpress, который сделал альтернативу CMI, AdvancedEnchantments, JPremium, всяких плагинов на кейсы от русских студий. Главное уметь искать. Если вам нужен плагин который выполняет какую-то небольшую функцию, но вы его не можете найти, то можете попросить его сделать здесь [клик]

3. Всё связанное с чатом. Не понимаю зачем, но многие люди хотят запретить игрокам смотреть список плагинов. И делают они это крайне странно: просто блокируют команду /plugins, хотя плагины все еще можно узнать с помощью команды /version + нажать таб. Если вас жаба душит запретить игрокам смотреть плагины, то зайдите в конфиг плагина luckperms и настройте apply-bukkit-default-permissions: false
Для защиты от спама в чате подойдет обычная функция swears в плагине chatty. Или же можете грамотно настроить регекс паттерны в конкретном плагине на антиспам, например xtextscensor [скачать] Так же можете запретить новичкам писать в чат первые пару минут игры, например плагином newbiechat [скачать] Ибо бывает такое, что кто-то зайдет, прорекламирует что-то и выйдет.​

4. Защищаемся от ботов. Сначала расскажу про то, что не стоит использовать. Во-первых, не надо ставить плагины для защиты от ботов на обычный spigot сервер, ибо грубое подключение нескольких тысяч ботов за пару секунд убьет вас. Во-вторых, не ставьте плагины по типу «нажмите на зеленое стекло чтобы подтвердить, что вы не бот» или же «перезайдите на сервер». Всё такое легко обходится, ниже вы видите скриншот програмки для бот атаки, и поверьте, оно реально обходит всякие такие недо-проверки.​

Snipaste_2022-08-24_12-12-35.png


Что же использовать вместо этого? Лучшее что есть в открытом доступе – limbofilter [скачать] Он ставится на velocity. Или можете использовать старый добрый botfilter [скачать] Он ставится вместо банжикорда. Хотя, кто-то говорит, что нейросеть умеет решать капчу botfilter, но не знаю правда ли это, не проверял.​

5. Защищаемся от ддос атаки. Тут всё не так сложно. Вам надо скрыть реальный айпи адрес вашего сервера, для этого воспользуйтесь сервисом tcpshield [ссылка] Он бесплатен для +- 30 игроков. Дальше надо будет либо брать платный тариф у него же, либо брать платный тариф в bytefend [ссылка] ВАЖНО! Если вы спрятали айпи сервера, то не размещайте сайт на той же самой машине, так как этот айпи узнают и смысла в защите нет. Или же можете попробовать использовать cloudflare [ссылка], но там скрытие айпи стоит 20 баксов в месяц (не точная информация). Легче использовать отдельный веб хостинг для сайта, обычно он стоит рублей 50-100 в месяц.​

6. Защищаемся от читеров. Для этого, вы не поверите, понадобится античит. Если у вас нет денег, то ставьте U-NCP [скачать] Если у вас на сервере старое пвп (нет задержки на удары), ставьте Vulkan ($20) [скачать] Если у вас на сервере пвп начиная с версии 1.9, ставьте Matrix ($23) [скачать] Более подробное сравнение античитов можете посмотреть в этой статье [клик]

Для защиты от баритона и иксрея (от баритона так же помогают обычные античиты), поможет встроенная защита в paper, вот гайд [клик] От себя добавлю, что engine mode 1 и 2 почти одинаковые, если использовать legit режим в некоторых читах. Однако от engine mode 2 больше проблем, связанных со сжатием данных, больше ложных срабатываний, а также, если вы додумаетесь добавить air в список заменяемых блоков, то получите ещё и лаги на стороне игроков. Из плюсов будет лишь защита от нахождения пещер, которая обходится, + защита от брутфорса руд, хотя таким занимается античит. Если вам нужна более тонкая настройка, например замена сундуков, печек, и так далее на рядом стоящий блок, то используйте плагин orebfuscator [скачать] Но он требует больше вычислительных мощностей, чем встроенная в paper защита.​

7. Защищаемся от оставшихся уязвимостей. Заход на сервер в обход прокси: просто закрываем все порты кроме порта для прокси. Сделаем это через фаервол. Заходим в терминал под рут пользователем, проверяем существование фаервола командой ufw. Если ее нет, устанавливаем командой apt install ufw Затем настраиваем:​
ufw allow OpenSSH – позволяем себе подключаться через ssh​
ufw allow номер порта прокси/tcp – позволяем заходить на сервер​
ufw allow 80/tcp && ufw allow 443/tcp – позволяем заходить на сайт (если таковой имеется)​
ufw enable – включаем фаервол.​

Не лишним будет использовать secret key в velocity или плагин bungeeguard в bungeecord/waterfall.​
Если вы используете плагин на авторизацию, установленный на spigot сервере, который вас перебрасывает на другой сервер после входа: помните, что когда вы вводите команду, то она сначала обрабатывается через прокси, а потом через spigot сервер. Поэтому до ввода команды /login можно ввести, к примеру команду /server lobby, таким образом обойти авторизацию. Решение проблемы: если используете authme, то поставить плагин authmebungee [ссылка] Но ещё лучше от греха подальше запретить использовать команды /server, /end, /send. Для этого поставьте плагин luckperms(bungee|velocity) [ссылка] и дайте игрокам отрицательное право bungeecord.command.send|server|end.​

Исправляем уязвимость log4shell (кто-нибудь ещё помнит про это?): обновляемся хотя бы до версии 1.18 или просто ставим обновленное ядро, если используете старую версию. Например, paper пофиксил эту уязвимость в обновлениях. Чтобы проверить её наличие, напишите в консоли /say ${date:YYYY}, если вывело 2022, у вас точно уязвимость есть.​

8. Профилактика. Не забывайте обновлять плагины, так как в старых версиях могут быть критические уязвимости, которые даже работают без прав (привет //calc, /mv, //to и //redo).​
Запускайте сервер с минимально нужными правами, а не от рут пользователя емае. Для этого используйте в терминале следующие команды:​

Bash:
useradd -m -s /bin/bash minecraft
passwd Minecraft ПРИДУМАЙТЕ ПАРОЛЬ
chmod 700 /home/minecraft
chmod -R 700 /home/Minecraft
chown -R minecraft:minecraft /home/Minecraft

После этого запускайте сервер от этого пользователя. Если вы вдруг поймаете вирус, то он хотя бы не будет иметь доступ к рут правам.​



На этом всё. Если у вас есть, что добавить, пишите об этом в обсуждениях.​
Автор
Кактус
Просмотры
10,977
Первый выпуск
Обновление
Оценка
4.00 звёзд 4 оценок

Другие ресурсы пользователя Кактус

Поделиться ресурсом

Последние рецензии

Спасибо родной, полезная статья, плагины реально можно было узнать через version, ещё важная штука про защиту от ботов, не знал.
CMI это вообще смешно, только бэкдоры скачаешь. Помню раньше многие сервера ломали только из-за одного Essenticals
Шикарная статья! очень понравилось что читать было не скучно а даже интересно
Отличная, нет, шикарная статья, хоть половину уже знал, но основная часть была приятна для чтения. Особенно посмеялся с фичи ввести /version и нажать таб xD все плагины реально видно и можно узнать всё что стоит на сервере... Спасибо за труды!
Назад
Сверху Снизу