Skip to content

hepller/asn-blacklist

 
 

Repository files navigation

AsnBlacklist

README (English version)


Минимальная рекомендуемая версия Java

Minecraft плагин для прокси Velocity и BungeeCord, предназначенный для блокировки IP адресов пользователей по AutonomousSystemNumber (ASN). Блокировка по ASN позволяет серверам защититься от ботов на уровне L7. Заблокированные ASN указываются списком в конфигурации.

Warning

Данное решение является костылём не гарантирует полноценную защиту от всех ботов, однако, оно корректно выполняет задуманный функционал.

Загрузки

Официальные сборки доступны на GitHub Releases.

Локализация

Локализация находится в директории translations плагина, поддерживает формат MiniMessage. Файлы локализации создаются автоматически при первом запуске. Сообщение о блокировке пользователя по ASN настраивается с помощью ключа asnblacklist.message.kick.

Пример:

asnblacklist.message.kick=<lang:asnblacklist.prefix>Ваш ASN заблокирован на данном сервере.

Причина отключения

Если необходимо вывести сообщение с переносами строк, то необходимо использовать тег <newline>.

Пример:

asnblacklist.message.kick=<lang:asnblacklist.prefix><newline>\
  Ваш ASN заблокирован на данном сервере.

Конфигурация

Все форматы времени указываются в стандарте ISO 8601, например:

  • PT6H → 6 часов
  • P3D → 3 дня
  • P2DT3H4M → 2 дня, 3 часа, 4 минуты

asn-blacklist

Список заблокированных ASN. Узнать информацию или получить номер ASN можно на сайте bgp.tools

Пример:

asn-blacklist:
  - "AS35048" # Значение с префиксом AS
  - "53667" # Значение без префикса AS

maxmind-database

Настройки базы MaxMind.

  • api-key — Ключ API MaxMind. Конфигурация по умолчанию уже содержит действующий. При необходимости можно использовать собственный ключ, сгенерированный на сайте MaxMind.
  • file — Путь к локальному файлу базы данных.
  • ttl — Срок хранения локальной базы данных (в ISO 8601). После истечения срока база данных будет загружена повторно.

Пример:

maxmind-database:
  api-key: "apiKey"
  file: "GeoLite2-ASN.mmdb"
  ttl: "P3D"

cache-ttl

Продолжительность кэша для проверенных ASN (в ISO 8601).

Пример:

cache-ttl: "PT12H"

Команды

  • /asnblacklist - Основная команда. Алиасы - /asnbl
  • /asnblacklist add <asn> - Добавить ASN в список заблокированных.
  • /asnblacklist remove <asn> - Удалить ASN из списка заблокированных.
  • /asnblacklist list - Получить список ASN, находящихся в блокировке.
  • /asnblacklist reload - Перезагрузить конфигурацию и локализацию.

Команды

Сборка проекта

Для сборки данного проекта вам потребуется JDK 17 или выше.

Сборка осуществляется набором следующих команд:

git clone https://github.com/novitpw/asn-blacklist.git 
cd asn-blacklist
./gradlew build

После успешной сборки бинарные фалы JAR можно найти в директории ./output.

Поддержка и обратная связь

Используйте трекер проблем GitHub для сообщений об ошибках и предложений.

Лицензия

Проект распространяется под лицензией GNU GPL v3.0.

About

Plugin for Velocity and BungeeCord proxies to block IP addresses by ASN.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Java 100.0%