
Hochleistungs-Rust HTTP/HTTPS-Proxy mit aktiver Abwehr: Ratenbegrenzung, reputationsbasierter Zugriff, WAF (Anti-Bot, Anti-Injection, Pfadschutz), Tarpit und Echtzeit-TUI-Beobachtbarkeit.
Propox ist ein leistungsstarker, sicherer und beobachtbarer HTTP/HTTPS-Proxy, geschrieben in Rust. Er wurde entwickelt, um hochvolumigen Traffic zu verarbeiten und gleichzeitig bösartige Clients mit fortschrittlichen Sicherheitsmechanismen abzuwehren.
Propox leitet nicht nur Traffic weiter, sondern schützt Ihr Backend:
sqlmap, nikto, curl, python UA.UNION SELECT, OR 1=1, <script> in URLs..env, .git, /admin.Leistungsschwellenwerte sind in src/proxy.rs konfigurierbar:
const RATE_LIMIT_ReqPerSec: usize = 100;
const MAX_ERRORS_BEFORE_BAN: usize = 10;
Enthält eine professionelle Terminal-Benutzeroberfläche (erstellt mit Ratatui), die Folgendes anzeigt:
Führen Sie den Proxy-Server aus dem Projektstammverzeichnis aus. Er hört auf 127.0.0.1:8100.
# Standardmodus (mit Sicherheit & TUI)
cargo run --release
# Vollständige Traffic-Logs anzeigen
cargo run --release -- --full
# Nur Fehler-Logs anzeigen
cargo run --release -- --errors
# 🏎️ Benchmark-Modus (Sicherheit für Rohtest deaktiviert)
cargo run --release -- --benchmark
# 👻 Daemon-Modus (Hintergrund)
# - Keine TUI, minimale Ressourcennutzung.
# - Logt in Syslog (/var/log/syslog).
# - Automatischer Fallback auf 'propox.log', falls Syslog fehlt (häufig in WSL/Docker).
cargo run --release -- --daemon
Enthalten ist ein leistungsstarkes Lasttest-Tool, das simulierte verteilte Angriffe ausführen kann.
cd propox-client
# Standard-Lasttest (100.000 Anfragen, 400 gleichzeitig)
cargo run --release -- nb=100000 cc=400 rq=ok ip=127.0.0.1
# ⚔️ Angriff simulieren (Split-Test)
# Terminal 1: "Bösewichte" (90% Fehler, 50 IPs) -> WERDEN GESPERRT/TARPITTED
cargo run --release -- ip=127.0.0.10 pool=50 ratio=0.9 nb=5000
# Terminal 2: "Guter Benutzer" (100% Erfolg) -> SOLLTE UNBEEINFLUSST BLEIBEN
cargo run --release -- ip=127.0.0.200 pool=1 ratio=0.0 nb=5000
nb=N: Anzahl der zu sendenden Anfragen (gesamt).cc=N: Nebenläufigkeitsgrad (gleichzeitige Threads).ip=X.X.X.X: Start-Quell-IP (simuliert durch lokales Binden).pool=N: Größe des IP-Pools (simuliert N unterschiedliche Clients).ratio=0.X: Fehlerverhältnis (0.0 = 100% OK, 1.0 = 100% Fehler).rq=ok|nok: Schnellvoreinstellung für Erfolg oder 404er.src/main.rs (TUI & Ereignisschleife) + src/proxy.rs (Traffic-Logik).Arc<Stats>-Struktur mit Atomics und DashMaps für Thread-Sicherheit.mpsc-Kanal, um Blockaden der Proxy-Datenebene zu vermeiden.handle_client durchgeführt. Wenn blockiert, tritt die Anfrage in das tokio::sleep-Tarpit ein.Erstellt mit ❤️ in Rust.