feat(waf): Phase 5 — WAF-UI (per-Domain Konfiguration) — v1.2.71

- pages/WAF/index.tsx: neue WAF-Seite mit Status-Strip,
  Domänen-Tabelle (Toggle/Mode/PL) + Konfigurations-Drawer pro Domain
  (enabled, mode, paranoia_level 1-4, rule_exclusions, trusted_proxies,
  custom_rules). Quick-Toggle ohne Drawer; Hinweis: erst Detection, dann Blocking.
- App.tsx: /waf Route + lazy import
- Sidebar.tsx: WAF im Security-Bereich
- i18n EN + DE

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Debian
2026-06-02 22:03:01 +02:00
parent 66dec8cf61
commit 4f887df658
6 changed files with 490 additions and 3 deletions

View File

@@ -34,7 +34,8 @@
"network": "Netzwerk",
"security": "Sicherheit",
"system": "System"
}
},
"waf": "WAF"
},
"fw": {
"title": "Firewall",
@@ -1759,5 +1760,46 @@
"disabled": "Nicht installiert",
"confirmRemove": "Collection {{name}} wirklich entfernen?"
}
},
"waf": {
"title": "Web Application Firewall",
"intro": "Domänen-spezifische HTTP-Request-Inspektion via Coraza/OWASP CRS. Standard: für alle Domains deaktiviert.",
"configure": "Konfigurieren",
"toggleFailed": "WAF-Status konnte nicht geändert werden.",
"defaultOffHint": "WAF ist standardmäßig für alle Domains deaktiviert. Unten pro Domain aktivieren und konfigurieren.",
"col": {
"domain": "Domain",
"status": "WAF",
"mode": "Modus",
"paranoia": "Paranoia"
},
"stat": {
"protected": "Geschützt",
"blocking": "Blocking",
"detection": "Nur Erkennung"
},
"mode": {
"detection": "Erkennung",
"blocking": "Blocking"
},
"pl": {
"1": "Basis (empfohlen)",
"2": "Standard",
"3": "Erweitert",
"4": "Maximum (kann Traffic brechen)"
},
"config": {
"enabled": "Aktiviert",
"mode": "Modus",
"paranoia": "Paranoia-Level",
"exclusions": "Regel-Ausnahmen",
"exclusionsHint": "Kommagetrennte Regel-IDs die deaktiviert werden (z.B. 920350, 941130).",
"trustedProxies": "Vertrauenswürdige Proxys",
"trustedProxiesHint": "IPs/CIDRs die die WAF-Inspektion umgehen (z.B. interne Load Balancer).",
"customRules": "Eigene SecRules",
"customRulesHint": "Rohe SecRule-Direktiven die nach dem CRS eingefügt werden. Können CRS-Regeln überschreiben.",
"defaultHint": "Standard: Nur-Erkennung, Paranoia-Level 1. Erst auf Blocking wechseln, nachdem Alerts geprüft wurden.",
"saveFailed": "WAF-Konfiguration konnte nicht gespeichert werden."
}
}
}