Revise README with English content and roadmap
Updated README to include English descriptions and roadmap.
This commit is contained in:
161
README.md
161
README.md
@@ -1,149 +1,22 @@
|
|||||||
# BanForge
|
# 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).
|
||||||
|
|
||||||
## 🔧 Технический стек
|
## Roadmap
|
||||||
|
- [ ] Real-time Nginx log monitoring
|
||||||
- **Язык**: Go 1.21+
|
- [ ] Add support for other service
|
||||||
- **ОС**: Linux (Alpine, Debian, Ubuntu, Arch)
|
- [ ] Add support for user service with regular expressions
|
||||||
- **Основные возможности**:
|
- [ ] TUI interface
|
||||||
- Логирование и конфигурация
|
|
||||||
- Системные вызовы для управления файрволом
|
|
||||||
- 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 серверов с минимальными накладными расходами на ресурсы.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user