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)
This commit is contained in:
parent
0b53ed720b
commit
15f474486a
179 changed files with 5044 additions and 11519 deletions
|
|
@ -4,50 +4,37 @@ set -euo pipefail
|
|||
NET="rampart-test"
|
||||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
|
||||
echo "=== Сборка rampart ==="
|
||||
cargo build --release --bin rampart
|
||||
|
||||
echo "=== Создание сети ==="
|
||||
docker network create "$NET" 2>/dev/null || true
|
||||
|
||||
echo "=== ClickHouse ==="
|
||||
docker rm -f clickhouse 2>/dev/null || true
|
||||
docker run -d --name clickhouse --network "$NET" \
|
||||
-v "$DIR/../clickhouse/schema.sql:/docker-entrypoint-initdb.d/schema.sql" \
|
||||
-p 8123:8123 \
|
||||
clickhouse/clickhouse-server:latest
|
||||
|
||||
echo "=== Grafana ==="
|
||||
docker rm -f grafana 2>/dev/null || true
|
||||
docker run -d --name grafana --network "$NET" \
|
||||
-p 3000:3000 \
|
||||
-e GF_INSTALL_PLUGINS=grafana-clickhouse-datasource \
|
||||
grafana/grafana:latest
|
||||
|
||||
echo "=== Backend (Minecraft stub) ==="
|
||||
echo "=== Backend stub (TCP echo) ==="
|
||||
docker rm -f backend 2>/dev/null || true
|
||||
# simple TCP echo server as placeholder
|
||||
docker run -d --name backend --network "$NET" \
|
||||
alpine sh -c "apk add socat && socat TCP-LISTEN:25565,fork EXEC:'cat'"
|
||||
alpine sh -c "apk add socat && socat TCP-LISTEN:25566,fork EXEC:'cat'"
|
||||
|
||||
echo "=== Rampart Edge ==="
|
||||
docker rm -f rampart 2>/dev/null || true
|
||||
TMPDIR=$(mktemp -d)
|
||||
cp "$DIR/../../target/release/rampart-core" "$TMPDIR/"
|
||||
cp "$DIR/../../target/release/rampart" "$TMPDIR/"
|
||||
cp "$DIR/../docker/Dockerfile.test" "$TMPDIR/Dockerfile"
|
||||
docker build -t rampart-core "$TMPDIR"
|
||||
docker build -t rampart "$TMPDIR"
|
||||
rm -rf "$TMPDIR"
|
||||
docker run -d --name rampart --network "$NET" \
|
||||
--cap-add=NET_ADMIN \
|
||||
-p 25565:25565 -p 9090:9090 \
|
||||
-e RAMPART_CONFIG=/etc/rampart/config.toml \
|
||||
-v "$DIR/config.test.toml:/etc/rampart/config.toml" \
|
||||
rampart-core
|
||||
rampart
|
||||
|
||||
echo "=== Attacker (MHDDoS) ==="
|
||||
echo "=== Attacker ==="
|
||||
docker rm -f attacker 2>/dev/null || true
|
||||
docker run -d --name attacker --network "$NET" \
|
||||
--cap-add=NET_RAW --cap-add=NET_ADMIN \
|
||||
-v "$DIR/../../ref/MHDDoS:/ref/MHDDoS" \
|
||||
python:3.11 bash -c "
|
||||
cd /ref/MHDDoS && pip install -r requirements.txt -q && \
|
||||
-v "$DIR/stress/flood.py:/flood.py:ro" \
|
||||
debian:bookworm-slim bash -c "
|
||||
apt-get update -qq && apt-get install -y -qq python3 iproute2 >/dev/null && \
|
||||
while true; do sleep 10; done
|
||||
"
|
||||
|
||||
|
|
@ -55,10 +42,10 @@ echo ""
|
|||
echo "=== Готово ==="
|
||||
echo "Rampart edge: localhost:25565"
|
||||
echo "Metrics: http://localhost:9090/metrics"
|
||||
echo "Grafana: http://localhost:3000 (admin/admin)"
|
||||
echo "ClickHouse: http://localhost:8123"
|
||||
echo ""
|
||||
echo "Пример атаки:"
|
||||
echo " docker exec attacker python3 /ref/MHDDoS/start.py TCP rampart:25565 60 100"
|
||||
echo " docker exec attacker python3 /flood.py --target rampart --port 25566 --mode connect --duration 30 --threads 50"
|
||||
echo "Легитимный клиент:"
|
||||
echo " python3 $DIR/stress/legit.py --target localhost --port 25565"
|
||||
echo ""
|
||||
echo "Для остановки: docker rm -f rampart backend attacker clickhouse grafana"
|
||||
echo "Для остановки: docker rm -f rampart backend attacker"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue