diff --git a/README.md b/README.md index 6a84325..b3223ba 100644 --- a/README.md +++ b/README.md @@ -1,149 +1,22 @@ # BanForge -**BanForge** — это современная система защиты от атак на базе Linux, разработанная как облегченная альтернатива fail2ban с поддержкой реал-тайм мониторинга и расширяемой архитектурой. +Log-based IPS system written in Go for Linux based system. -## 🎯 Назначение +# Table of contents +1. [Overview](#overview) +2. [Requirements](#requirements) +3. [Installation](#installation) +4. [Usage](#usage) +5. [License](#license) -BanForge автоматически обнаруживает и блокирует подозрительную активность на сервере путём анализа логов сервисов в реальном времени и применения правил через встроенные бан-провайдеры (UFW, iptables и т.д.). +# Overview +BanForge is a simple IPS for replacement fail2ban in Linux system. +The project is currently in its early stages of development. +All release are available on my self-hosted [Gitea](https://gitea.d3m0k1d.ru/d3m0k1d/BanForge) because Github have limit for Actions. +If you have any questions or suggestions, create issue on [Github](https://github.com/d3m0k1d/BanForge/issues). -## 🔧 Технический стек - -- **Язык**: 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 привилегии для запуска демона - -### Сборка - -```bash -git clone https://gitea.d3m0k1d.ru/d3m0k1d/BanForge.git -cd BanForge -make build -``` - -### Запуск - -```bash -# Развёртывание демона -sudo ./bin/banforge daemon init - -# Просмотр логов -journalctl -u banforge -f -``` - -## 🏗️ Архитектура - -### Модульная система провайдеров - -BanForge использует интерфейс-ориентированный подход для работы с файрволами: - -```go -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 (текущая разработка) -- [x] Базовая архитектура с интерфейсами -- [x] Реализация UFW провайдера -- [x] Система инициализации демона -- [ ] **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](https://gitea.d3m0k1d.ru/d3m0k1d/BanForge)**. - -## 🤝 Разработка - -### Запуск тестов - -```bash -make test -``` - -### Сборка для разных платформ - -```bash -make build-linux-amd64 -make build-linux-arm64 -``` - -## 📞 Поддержка - -- **Issues & Discussions**: [GitHub Issues](https://github.com/d3m0k1d/BanForge/issues) -- **Releases & Artifacts**: [Gitea Releases](https://gitea.d3m0k1d.ru/d3m0k1d/BanForge) - -## 📄 Лицензия - -GNU General Public License v3.0 — см. [LICENSE](./LICENSE) - ---- - -**BanForge** — созданный для автоматизации защиты Linux серверов с минимальными накладными расходами на ресурсы. +## Roadmap +- [ ] Real-time Nginx log monitoring +- [ ] Add support for other service +- [ ] Add support for user service with regular expressions +- [ ] TUI interface