No description
Find a file
loki5512344 15f474486a
feat!: universal redesign — drop Minecraft stack, single-crate architecture
- remove Java plugins (velocity/paper), dashboard, all MC-specific code
  (handshake, death_code, varint, hostname-HMAC); available in history pre-v0.2
- merge crates/* into one package with src/bin/{rampart,rampart-manager,rampart-cli}
- ProtocolHandler trait + registry (no implementations yet), universal PoW kept
- XDP: universal L3/L4 filter (xdp/core/) + pluggable hook API (xdp/hooks/),
  fix IPv6 saddr bug; clang build verified
- docs: bilingual knowledge base (docs/kb/: attacks x4, defense-levels,
  practice x3), rewrite README/architecture for universal concept
- TODO.md v4.0: <=300-line module limit, competitor benchmark section (ref/)
- deploy/CI/docs cleanup: no MC references, new binary names

cargo build/clippy(-D warnings)/test green (55 tests)
2026-08-24 01:50:22 +02:00
.github/workflows feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
deploy feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
docs feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
src feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
tests feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
xdp feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
.dockerignore fix: clippy byte_char_slices lint, Docker java artifact path 2026-07-21 16:34:30 +02:00
.gitignore feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
build.rs feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
Cargo.lock feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
Cargo.toml feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
clippy.toml feat: velocity routing, server registry and RampartVelocity tests 2026-08-03 10:54:28 +02:00
deny.toml feat: velocity routing, server registry and RampartVelocity tests 2026-08-03 10:54:28 +02:00
docker-compose.yml feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
Dockerfile v0.3: 6-layer architecture complete 2026-07-21 15:47:36 +02:00
LICENSE Initial commit: Rampart v0.2.0 2026-07-20 20:53:32 +02:00
Makefile feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
README.md feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00
rustfmt.toml Initial commit: Rampart v0.2.0 2026-07-20 20:53:32 +02:00
TODO.md feat!: universal redesign — drop Minecraft stack, single-crate architecture 2026-08-24 01:50:22 +02:00

⚠️ UNDER DEVELOPMENT — All performance data, benchmarks, and specifications shown are approximate and subject to change.

⚠️ В РАЗРАБОТКЕ — Все показатели производительности, тесты и характеристики являются примерными и могут измениться.

Rampart

Universal network protection platform (L3/L4/L7 DDoS filtering framework)

Rust eBPF License Version Status

English | Русский


English

Overview

Rampart filters traffic at three levels before it reaches your service:

  • Kernel level — XDP/eBPF drops unwanted packets before they reach the Linux TCP stack;
  • Network level — PoW challenge raises the cost of connection floods for any TCP protocol;
  • Application level — Rust userspace core performs L7 handshake analysis, rate limiting and reputation checks.

Protocol-specific logic lives in modular protocol plugins, so the same platform protects VDS, web services, and game servers alike.

Architecture

┌────────────────────────────────────────────────────────────────────┐
│  Layer 1: Kernel / XDP (C)                                         │
│    universal TCP state machine · SYN throttle · CIDR black/white   │
│    lists · UDP policy · pluggable BPF protocol hooks               │
├────────────────────────────────────────────────────────────────────┤
│  Layer 2: Universal PoW Challenge (Rust)                           │
│    SHA256 hashcash · dynamic difficulty                            │
│    works over any TCP protocol            ⚠️ OFF by default        │
├────────────────────────────────────────────────────────────────────┤
│  Layer 3: Userspace Core (Rust)                                    │
│    L7 handshake analysis · rate limit · HMAC · death-code patterns │
├────────────────────────────────────────────────────────────────────┤
│  Layer 4: Protocol Plugins (feature crates)                        │
│    minecraft (first plugin) · http (planned) · grpc (planned)      │
└────────────────────────────────────────────────────────────────────┘
          Traffic Intel (EWMA thresholds, profiling, reputation)
                    runs across all layers
Attacker → [XDP/eBPF] → [PoW] → [Userspace Core] → [Plugin] → Your Service
                1           2             3             4

Components

Component Role Stack
rampart-core Edge engine: XDP loader, PoW challenge, L7 filtering, traffic intel Rust (tokio, libbpf) + C (XDP)
rampart-manager Management API + Redis sync Rust (axum, redis)
rampart-cli CLI tool for operators Rust (clap)
protocol plugins Protocol-aware filtering as feature crates Rust
↳ minecraft First plugin (MC handshake analysis) Rust
↳ http, grpc Planned Rust
docs/kb Bilingual knowledge base: attack anatomy, defense levels, practice guides Markdown

Performance

Confirmed numbers only — VDS stress test (load-test-report.md), edge-only setup on loopback, 2 vCPU:

Scenario Result
Raw L7 throughput ~4k conn/s proxied
Masked 100-IP handshake flood (default 5 pps/IP) 99.6% blocked, legit clients OK
SYN flood without XDP 0 impact — handled by the kernel

Full benchmark suite in progress.

Quick Start

# Build
cargo build --release

# Create config
rampart config init > /etc/rampart/config.toml

# Run edge node
./target/release/rampart-core --config /etc/rampart/config.toml

Documentation

Path Description
docs/kb/ Knowledge base: attack anatomy, defense levels, practice guides
docs/research/architecture.md Layered architecture, ADRs, migration notes
docs/research/load-test-report.md VDS stress test report (2026-08-04)
docs/research/ Research notes: eBPF, anti-bot, DDoS vectors, networking
docs/deployment.md Deployment guide
docs/configuration.md Configuration reference
docs/runbook.md Operations runbook

Roadmap

  • Stabilize the protocol plugin API
  • BPF hook modules for deep protocol parsing in XDP
  • Terminal UI (ratatui TUI)
  • HTTP protocol plugin

Русский

Обзор

Rampart фильтрует трафик на трёх уровнях до того, как он дойдёт до вашего сервиса:

  • Уровень ядра — XDP/eBPF отбрасывает нежелательные пакеты до того, как они попадут в TCP-стек Linux;
  • Сетевой уровень — PoW-challenge повышает стоимость флуда соединений для любого TCP-протокола;
  • Прикладной уровень — userspace-ядро на Rust выполняет анализ L7-handshake, rate limiting и проверку репутации.

Логика, специфичная для протоколов, вынесена в модульные протокол-плагины — одна платформа защищает VDS, веб-сервисы и игровые серверы.

Архитектура

┌────────────────────────────────────────────────────────────────────┐
│  Слой 1: Ядро / XDP (C)                                            │
│    универсальный TCP state machine · SYN throttle · CIDR black/    │
│    white списки · UDP policy · подключаемые BPF протокол-хуки      │
├────────────────────────────────────────────────────────────────────┤
│  Слой 2: Универсальный PoW Challenge (Rust)                        │
│    SHA256 hashcash · dynamic difficulty                            │
│    работает поверх любого TCP-протокола   ⚠️ ВЫКЛЮЧЕН по умолчанию │
├────────────────────────────────────────────────────────────────────┤
│  Слой 3: Userspace Core (Rust)                                     │
│    L7 handshake analysis · rate limit · HMAC · death-code паттерны │
├────────────────────────────────────────────────────────────────────┤
│  Слой 4: Протокол-плагины (feature crates)                         │
│    minecraft (первый плагин) · http (в планах) · grpc (в планах)   │
└────────────────────────────────────────────────────────────────────┘
     Traffic Intel (EWMA thresholds, профилирование, репутация)
                 работает поперёк всех слоёв
Атакующий → [XDP/eBPF] → [PoW] → [Userspace Core] → [Плагин] → Ваш сервис
                1           2             3             4

Компоненты

Компонент Роль Технологии
rampart-core Edge-движок: XDP loader, PoW challenge, L7-фильтрация, traffic intel Rust (tokio, libbpf) + C (XDP)
rampart-manager Management API + Redis sync Rust (axum, redis)
rampart-cli CLI для операторов Rust (clap)
Протокол-плагины Протоколозависимая фильтрация в виде feature crates Rust
↳ minecraft Первый плагин (анализ MC-handshake) Rust
↳ http, grpc В планах Rust
docs/kb Двуязычная база знаний: анатомия атак, уровни защиты, практические руководства Markdown

Производительность

Только подтверждённые числа — VDS stress test (load-test-report.md), edge-only на loopback, 2 vCPU:

Сценарий Результат
Raw L7 пропускная способность ~4k conn/s проксировано
Маскированный flood с 100 IP (default 5 pps/IP) 99.6% заблокировано, легитимные клиенты в порядке
SYN flood без XDP 0 влияния — обрабатывается ядром

Полный набор бенчмарков в процессе подготовки.

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

# Сборка
cargo build --release

# Создание конфига
rampart config init > /etc/rampart/config.toml

# Запуск edge ноды
./target/release/rampart-core --config /etc/rampart/config.toml

Документация

Путь Описание
docs/kb/ База знаний: анатомия атак, уровни защиты, практические руководства
docs/research/architecture.md Слоистая архитектура, ADR, миграционные заметки
docs/research/load-test-report.md Отчёт по VDS stress test (2026-08-04)
docs/research/ Research-заметки: eBPF, антибот, векторы DDoS, сети
docs/deployment.md Руководство по деплою
docs/configuration.md Справочник конфигурации
docs/runbook.md Операционный runbook

Roadmap

  • Стабилизация API протокол-плагинов
  • BPF hook модули для глубокого парсинга протоколов в XDP
  • Терминальный интерфейс (ratatui TUI)
  • HTTP протокол-плагин

License

GNU General Public License v3.0