Ban engine
Instead of a separate WAF + ban stack → one log-guardian process
Fail2ban + iptables scripts
No separate Fail2ban. Log line to ipset/XDP kernel ban ~26 ms — policy, tenant, FP trust in one pipeline.
- ~26 ms median
- ipset + XDP
- 0 fail (5 min)
