feat(ha): VIP-Preempt zurück zum PG-Primary — mit gehärtetem Health-Gate — v1.3.16

Preempt-Rückkehr (preempt_delay 120) wieder aktiv: der bevorzugte Node
(PG-Primary, Prio 200) holt die VIP nach Erholung zurück. Der Incident
2026-08-03 (halb-kaputter Node riss die VIP an sich) wird verhindert, weil
keepalived-check.sh jetzt zusätzlich fordert:
  - haproxy-Prozess aktiv
  - :443 gebunden (bedient wirklich Traffic)
Ein nicht-bedienender Node geht damit in FAULT und kann NICHT (mehr) preempten.

Außerdem: CrowdSec-Management-Whitelist (Backend api_backend) fest ins postinst
gebacken (Admin-SPA-Traffic wird nie mehr als http-crawl gebannt, IP-unabhängig,
Incident-Root-Fix) + Altlast netcell-mgmt-whitelist.yaml wird aufgeräumt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Debian
2026-08-03 13:39:15 +02:00
parent d395e3ea68
commit 0846eaa05b
6 changed files with 104 additions and 29 deletions

View File

@@ -848,6 +848,26 @@ ACQUIS
systemctl reload crowdsec 2>/dev/null \
|| systemctl restart crowdsec 2>/dev/null || true
fi
# CrowdSec-Whitelist: eigenen Management-Traffic (Backend
# api_backend = ausschließlich edgeguard-api: Admin-UI + REST-API +
# ACME) von ALLEN Scenarios ausnehmen. Die Admin-SPA feuert beim
# Laden viele /api/-Requests — normal, wurde aber als http-crawl
# gebannt (Incident 2026-08-03, Admin-IP gesperrt). IP-unabhängig.
install -d -m 0755 /etc/crowdsec/parsers/s02-enrich
# Altlast aus dem manuellen Live-Fix (2026-08-03) entfernen — sonst
# lägen zwei inhaltsgleiche Whitelist-Dateien nebeneinander.
rm -f /etc/crowdsec/parsers/s02-enrich/netcell-mgmt-whitelist.yaml
cat > /etc/crowdsec/parsers/s02-enrich/edgeguard-mgmt-whitelist.yaml <<'WL'
name: edgeguard/mgmt-ui-whitelist
description: Management-UI/REST-API/ACME (HAProxy-Backend api_backend) von CrowdSec ausnehmen - Admin-SPA-Traffic ist kein Angriff.
whitelist:
reason: edgeguard management-ui / api (backend api_backend)
expression:
- "evt.Parsed.backend_name == 'api_backend'"
WL
systemctl reload crowdsec 2>/dev/null \
|| systemctl restart crowdsec 2>/dev/null || true
fi
# ── Render initial service configs ───────────────────────────