Schlagwort: Reverse-Proxy-Headers

  • Pangolin Reverse Proxy + CrowdSec: Sicherheitsschicht für selbstgehostete Dienste

    Pangolin Reverse Proxy + CrowdSec: Sicherheitsschicht für selbstgehostete Dienste

    Kurzfassung: Beim Kunden laufen mehrere interne Dienste (u. a. Nextcloud) hinter dem Pangolin Reverse Proxy. Pangolin terminiert den externen Zugriff über verschlüsselte WireGuard-Tunnel, erzwingt Identity & Access Management (SSO/2FA/OIDC/Passkeys) und reduziert die Angriffsfläche, weil keine eingehenden Ports nach außen geöffnet werden müssen. Ergänzend schützt CrowdSec als kollaboratives IPS/WAF mit Bouncern und bedrohungsbasierten Sperren. Ergebnis: Ein mehrlagiges, nachvollziehbares Sicherheits-Setup mit Failover, Health-Checks und optionaler Geo-Blocking-Policy.


    Pangolin Reverse Proxy + CrowdSec: Sicherheitsschicht für selbstgehostete Dienste (z. B. Nextcloud)

    Kurzfassung: Beim Kunden laufen mehrere interne Dienste (u. a. Nextcloud) hinter dem Pangolin Reverse Proxy. Pangolin terminiert den externen Zugriff über verschlüsselte WireGuard-Tunnel, erzwingt Identity & Access Management (SSO/2FA/OIDC/Passkeys) und reduziert die Angriffsfläche, weil keine eingehenden Ports nach außen geöffnet werden müssen. Ergänzend schützt CrowdSec als kollaboratives IPS/WAF mit Bouncern und bedrohungsbasierten Sperren. Ergebnis: Ein mehrlagiges, nachvollziehbares Sicherheits-Setup mit Failover, Health-Checks und optionaler Geo-Blocking-Policy.

    Warum Pangolin statt klassischem Reverse Proxy?

    • Kein Direct Exposure: Pangolin stellt den Zugriff über Nodes und WireGuard-Tunnel bereit – die Backend-Dienste bleiben ohne öffentliche Inbound-Ports. Das senkt die Angriffsfläche erheblich.
    • Identity-Aware Proxy: Jede Anfrage wird authentifiziert und autorisiert, bevor sie den Dienst erreicht (z. B. SSO via OAuth2/OIDC mit Authentik/Keycloak/Okta, TOTP/2FA, Passkeys, rollenbasierte Zugriffe, Ressource-Pins/-Passwörter).
    • Automatisiertes TLS & Protokoll-Vielfalt: Let’s Encrypt automatisch; HTTP/HTTPS sowie TCP/UDP-Weiterleitungen werden unterstützt.
    • Hochverfügbarkeit: Health-Checks, automatisches Failover und Load-Balancing zwischen Targets; Traffic zu kranken Backends wird automatisch ausgeschlossen, Recovery erfolgt selbsttätig.
    • Policies & Rules: Geo-Blocking, IP-/Pfad-Regeln, Rate-Limiting; für Self-Hosted lässt sich Geoblocking via Traefik-Plugin ergänzen.
    • Cloudflare-Tunnel-Alternative (selbstgehostet): Häufig als Self-Hosted-Pendant zu Tunneldiensten beschrieben – mit sauberem UI und Traefik-Integration.

    CrowdSec als zweite Schutzschicht

    • Open-Source, Community-basierte CTI: CrowdSec identifiziert bösartige Muster (Bruteforce, Scans etc.) und teilt Threat-Intelligence (IP-Entscheidungen) in der Community. Bouncer setzen Sperren an der Perimeter-Schicht durch (z. B. NGINX/WAF/Firewall).
    • WAF/Reverse-Proxy-How-to: CrowdSec lässt sich vor die Applikation legen (z. B. NGINX-Reverse-Proxy mit WAF), um Requests vor dem Backend zu filtern.
    • Collections für Nextcloud: Spezielle Regeln/Parser für Nextcloud (Bruteforce/Enumeration/Trusted-Domain-Checks) sind als Collection verfügbar.

    Zusammenspiel: In unserer Architektur hängt CrowdSec (WAF/Bouncer) am Eingang, Pangolin erzwingt Identität/Policies, und die eigentlichen Dienste (z. B. Nextcloud) sind nur über den Tunnel erreichbar. So entsteht Defense-in-Depth: Block – Auth – Serve.

    Architektur (vereinfacht)

    1. Internet → CrowdSec-geschützter Entry (Bouncer/WAF).
    2. Pangolin Node authentifiziert Nutzer (SSO/OIDC, TOTP/Passkeys), prüft Rules (Geo-Block, Pfad/IP, Rate-Limit) und leitet nur legitime Requests weiter.
    3. WireGuard-Tunnel routet die Anfrage sicher zum internen Dienst (z. B. Nextcloud); Health-Checks entscheiden, welches Target bedient wird.
    4. Backend (Nextcloud & Co.) antwortet über denselben Pfad zurück.

    Nextcloud: Reverse-Proxy-Besonderheiten

    • Client-IP korrekt durchreichen: Nextcloud erwartet die echte Client-IP via X-Forwarded-For (konfigurierbar über forwarded_for_headers). Unbedingt trusted_proxies setzen, damit IP-Spoofing verhindert wird.
    • HTTPS überall: Produktivbetrieb nur über TLS. (TLS-Terminierung kann Pangolin übernehmen; Zwischen-Segment optional via mTLS/VPN).
    • CrowdSec-Szenarien aktivieren: Für Nextcloud die passende Collection installieren, damit Login-Bruteforce/Enumeration erkannt werden.

    Betrieb & Härtung (Auszug aus der Praxis)

    • Identity Providers (IdP): OIDC/OAuth2 anschließen (Authentik/Keycloak). Nutzer/Rollen können auto-provisioniert werden; RBAC zentral definieren.
    • TLS-Automatisierung: Let’s-Encrypt-Zertifikate via Pangolin; Wildcard optional je nach DNS-Setup.
    • Geo-Policies: Länder gezielt erlauben/verbieten (z. B. Admin-Pfad nur aus DACH). Priority-Regeln beachten.
    • Health-Checks: Dedizierte /health-Endpoints definieren; Timeouts/HTTP-Codes (200/201/202/204) passend einstellen; unhealthy interval aggressiver wählen, um schneller zu recovern.
    • CrowdSec-Bouncer: Je nach Stack nginx-, firewall- oder app-bouncer einsetzen, um Entscheidungen durchzusetzen (Erkennen allein reicht nicht).
    • Nextcloud-Warnung „Reverse proxy header configuration is incorrect“ vermeiden: trusted_proxies korrekt pflegen; die Doku erklärt Header-Handling & Konfig.

    Vorteile für den Kunden

    • Minimale Angriffsfläche: Keine offenen Inbound-Ports, Anfragen immer durch Auth-/Policy-Schicht.
    • Skalierbar & hochverfügbar: Load-Balancing, Health-Checks, automatisches Failover.
    • Richtlinien- & Compliance-tauglich: Identity-Aware Access (SSO/2FA/Passkeys), Geo-Regeln, Logging.
    • Community-Threat-Intel: CrowdSec blockt bekannte Angreifer vor der App. (crowdsec.net)

    Fazit

    Pangolin + CrowdSec liefert ein mehrlagiges Security-Design für selbstgehostete Anwendungen wie Nextcloud: Tunneling statt Portfreigaben, Identity-Aware Proxy vor den Diensten, WAF/IPS an der Perimeter-Schicht – und Policies/Geo/Failover aus einer Hand. Für Teams bedeutet das: weniger Angriffsfläche, konsistente Authentifizierung und robuste Verfügbarkeit.


WordPress Appliance - Powered by TurnKey Linux