Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [SEC] BotNagibator v0.3 - простая защита от ботов [1.7.9 / 1.8.3]

InterVi

Старожил
Пользователь
Баллы
173
Имя в Minecraft
InterVi
BotNagibator
Версия: 0.3
Под версию сервера:
  • 0.1 под 1.7.9
  • 0.3 под 1.8.3
  • BotNagibatorBungee под BungeeCord #1083 и старше
Простая защита от ботов, для прохождения проверки игроку требуется ударить блок / моба. Как именно устроить проверку - на ваше усмотрение. Включается только в момент атаки (можно сделать постоянно включенной). Есть белый список ip, чтобы игроки не проходили проверку много раз.

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

На тестах было замечено, что нагрузка во время атаки не превышает по 40% на всех ядрах. Атаковал гидрой, без использования прокси, скорость примерно > 20 ботов в секунду. Память жрется приемлемо, в пределах 300мб на банжу и 300мб на фильтр-сервер.

В архиве содержится:
  • BotNagibator.jar для фильтр-сервера (в нем запакован guid.txt с описанием установки MySQL)
  • BotNagibator1.7.jar, версия 0.1 кривая (кому надо 0.3 подпилите чтобы в 1.7 работало)
  • BotNagibatorBungee для BungeeCord

Установка
BotNagibator кладем в папку плагинов фильтр-сервера, это обычный сервер Spigot с пустой картой, где в пустоте находится ваша небольшая постройка. Как создать пустой мир описано здесь. В настройках сервера выключите спаун мобов, дальность прорисовки на 2 чанка (при 1 мобы невидимы), отключите ад, край и все лишнее.

BotNagibatorBungee кладем в папку плагинов BungeeCord. При настройке банжи желательно выставить force_default_server на true, где дефолтным сервером прописан фильтр-сервер. В последней версии после багофиксов правильное распределение игроков во время атаки не тестировалось, предположительно данную опцию можно не включать.

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

Установка MySQL в Linux
Внимательно просмотрите, это мой пример настройки под себя. Вы можете выкинуть некоторые команды.
Код:
apt-get install mysql-server mysql-client
echo skip-character-set-client-handshake >> /etc/mysql/my.cnf
echo character-set-server = utf8 >> /etc/mysql/my.cnf
echo init-connect='SET NAMES utf8' >> /etc/mysql/my.cnf
echo collation-server=utf8_general_ci >> /etc/mysql/my.cnf
echo skip-innodb >> /etc/mysql/my.cnf
echo skip-bdb >> /etc/mysql/my.cnf
echo skip-networking >> /etc/mysql/my.cnf
nano /etc/init.d/rc add in top: ulimit -s 1024
service mysql restart
Создание базы с нужной таблицей
Код:
mysql -u username -p
SET names utf8;
CREATE DATABASE dbname;
USE dbname
CREATE TABLE nicks (name VARCHAR(200));
exit
Настройка крона для чистки данных
crontab -e
Код:
@midnight rm -rf /home/bungee/empty/playerdata/* && rm -rf /home/bungee/empty/stats/*
@weekly find /home/bungee/logs/* -type f -name "*.gz" -delete >> /home/bungee/logs/clearlog.log
Данные игроков чистятся раз в сутки, логи раз в неделю. Пути подставляйте свои.

Настройка
!!! ВАЖНО!!!
Эти опции под нагрузкой не работают:
  • kickfastcom
  • iplimit
safecon и kickfastcheck можно не включать.
Чем выше maxcon, тем меньше нагрузка (странности).

Настройки MySQL задавайте такие, какие вбивали при установке MySQL-сервера. При первом старте плагина подключение к MySQL не происходит воизбежание крашей.

Использование
/bnb-reload - для банжи, перезагружает конфиг (перм botnagibatorbungee.reload)
/bnb - для фльтр-сервера, список команд

Чтобы поработать на фильтр-сервере, нужно OPнуть себя. Проверку проходить не потребуется, все запреты не будут действовать. Можно убивать заданного для прохождения проверки моба, есть команда на убийство всех мобов в мире.

Лог правок
  • v0.1 - приватный релиз, тестирование
  • v.0.2 - большой багофикс
  • v0.3 - большой багофикс, публичный релиз

Просьба не лупить мой сервер, мы все равно закрываемся и все хотели бы доиграть спокойно.
 
Последнее редактирование:
Ну а смысл от этого? Если твою банджу тупо ушатают ботами, если захотят положить.
 
Ну а смысл от этого? Если твою банджу тупо ушатают ботами, если захотят положить.
Все зависит от железа. Гидра например не смогла, нужно что-то помощнее, чтобы в 20 потоков и чтобы комп / инет это тянул. Школьникам такие атаки не под силу. На последнем тесте гидрой была 10-20% нагрузка на 2 ядра, вообще фигня. Это у меня хост так себе, а если 4ггц с мощным каналом вообще запаришься ложить.
 
Все зависит от железа. Гидра например не смогла, нужно что-то помощнее, чтобы в 20 потоков и чтобы комп / инет это тянул. Школьникам такие атаки не под силу. На последнем тесте гидрой была 10-20% нагрузка на 2 ядра, вообще фигня.
Ну как. Есть бот у которого 10к конектов в секунду. Если поставить 200 ботов и начать реконектиться постоянно то банджа тупо ляжет.
 
Ну как. Есть бот у которого 10к конектов в секунду. Если поставить 200 ботов и начать реконектиться постоянно то банджа тупо ляжет.
Ну так под него комп нужен хороший, у школьников редко такое есть. Плюс им надо прокси собрать, настроить это все. Тем более если бот приватный вообще нечего парится. А кому приспичит пусть пилят свою банжу, либо фаерволл с фильтром коннектов.

Я к этому всему хотел добавить анализатор для бана ip по ipset, но теперь уже руки не дойдут.

Добавил в описание настройку крона для чисток.
Вообще, я же не писал что это волшебная защита от атак любой мощности. Для небольших серверов этого хватит вполне, ведь нормальных бесплатных аналогов нет.
 
Вообще, я же не писал что это волшебная защита от атак любой мощности. Для небольших серверов этого хватит вполне, ведь нормальных бесплатных аналогов нет.
Ну против школьных ботов хватит обычного сервера с порталом.
 
На тестах было замечено, что нагрузка во время атаки не превышает по 40% на всех ядрах. Атаковал гидрой, без использования прокси, скорость примерно > 20 ботов в секунду. Память жрется приемлемо, в пределах 300мб на банжу и 300мб на фильтр-сервер.
По нашей статистике ежедневно поступают атаки различной мощности, от 1k/s и вплоть до 20k/s - а все потому, что кое-кто "слил" fuckbot'a в общий доступ.
 
По нашей статистике ежедневно поступают атаки различной мощности, от 1k/s и вплоть до 20k/s - а все потому, что кое-кто "слил" fuckbot'a в общий доступ.
BotNagibator - топ защита. GameGuard до него ещё далеко!
 
По нашей статистике ежедневно поступают атаки различной мощности, от 1k/s и вплоть до 20k/s - а все потому, что кое-кто "слил" fuckbot'a в общий доступ.
Со среднего компа реально им такую "защиту" завалить?
 
По нашей статистике ежедневно поступают атаки различной мощности, от 1k/s и вплоть до 20k/s - а все потому, что кое-кто "слил" fuckbot'a в общий доступ.
Можно ссылку на этот софт? Если да, то напишу вам в лс.
 

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

Назад
Верх