BanForge

BanForge — это современная система защиты от атак на базе Linux, разработанная как облегченная альтернатива fail2ban с поддержкой реал-тайм мониторинга и расширяемой архитектурой.

🎯 Назначение

BanForge автоматически обнаруживает и блокирует подозрительную активность на сервере путём анализа логов сервисов в реальном времени и применения правил через встроенные бан-провайдеры (UFW, iptables и т.д.).

🔧 Технический стек

  • Язык: Go 1.21+
  • ОС: Linux (Alpine, Debian, Ubuntu, Arch)
  • Основные возможности:
    • Логирование и конфигурация
    • Системные вызовы для управления файрволом
    • Real-time file watching

📁 Структура проекта

BanForge/
├── cmd/banforge/          # Основное CLI приложение
│   └── main.go           # Точка входа
├── internal/             # Внутренние пакеты
│   ├── firewall/        # Реализации бан-провайдеров (UFW, iptables)
│   ├── logger/          # Система логирования
│   ├── monitor/         # Мониторинг логов в реальном времени
│   └── config/          # Парсинг конфигурации
├── .gitea/workflows/    # CI/CD pipeline (Gitea Actions)
├── go.mod              # Go модули
├── Makefile            # Утилиты для сборки
└── LICENSE             # GPL 3.0

🚀 Быстрый старт

Требования

  • Linux система с установленным Go 1.21+
  • UFW или iptables для управления правилами файрвола
  • Root привилегии для запуска демона

Сборка

git clone https://gitea.d3m0k1d.ru/d3m0k1d/BanForge.git
cd BanForge
make build

Запуск

# Развёртывание демона
sudo ./bin/banforge daemon init

# Просмотр логов
journalctl -u banforge -f

🏗️ Архитектура

Модульная система провайдеров

BanForge использует интерфейс-ориентированный подход для работы с файрволами:

type BanProvider interface {
    Ban(ip string) error
    Unban(ip string) error
    Status(ip string) (bool, error)
}

Текущие реализации:

  • UFW — встроенный файрвол Ubuntu/Debian
  • iptables — базовая поддержка нативного Linux файрвола

Real-time мониторинг

Система использует file watchers для отслеживания изменений в логах сервисов без постоянного полинга диска.

📋 Roadmap

v0.1 (текущая разработка)

  • Базовая архитектура с интерфейсами
  • Реализация UFW провайдера
  • Система инициализации демона
  • Real-time Nginx log monitoring — следующий приоритет
  • Unit тесты и интеграционные тесты

v0.2 (планируется)

  • Поддержка Apache, OpenSSH логов
  • Пользовательские правила с regex
  • REST API для управления

v1.0 (видение)

  • TUI интерфейс для управления
  • Prometheus метрики
  • Clustering поддержка
  • Веб-дашборд

💾 Релизы на Gitea вместо GitHub

Почему релизы и артефакты находятся на self-hosted Gitea?

GitHub Actions имеет ограничения:

  • Лимиты на хранилище артефактов (35 дней)
  • Лимиты на размер бинариев в одном релизе
  • Rate limiting для автоматизированных загрузок
  • Недостаточная гибкость при работе с большими файлами
  • Отсутствие полного контроля над инфраструктурой

На self-hosted Gitea:

  • Полный контроль над хранилищем
  • Неограниченные размеры артефактов
  • Собственные CI/CD pipelines
  • Приватные релизы если нужны
  • Быстрые загрузки в локальной сети

Исходный код доступен на GitHub для удобства, но binary releases публикуются на Gitea.

🤝 Разработка

Запуск тестов

make test

Сборка для разных платформ

make build-linux-amd64
make build-linux-arm64

📞 Поддержка

📄 Лицензия

GNU General Public License v3.0 — см. LICENSE


BanForge — созданный для автоматизации защиты Linux серверов с минимальными накладными расходами на ресурсы.

Description
No description provided
Readme GPL-3.0 3 MiB
v0.6.1 Latest
2026-02-24 12:14:59 +00:00
Languages
Go 97.6%
Shell 1.5%
Makefile 0.9%