Skip to Content

Flarum

Die offizielle ProxyTracer-Integration für Flarum. Diese Erweiterung bringt Enterprise-Level-IP-Intelligence in Ihre Community, erkennt automatisch bekannte VPNs, Proxys, Rechenzentren und Tor-Knoten und gibt Ihnen die Möglichkeit, diese vollständig an der Registrierung, der Anmeldung oder dem Zugriff auf Ihr Flarum-Forum zu hindern.

Der vollständige Quellcode ist auf Github verfügbar. Die Erweiterung wird über Packagist bereitgestellt.

Funktionen

  • Granulare Kontrolle, die es Administratoren ermöglicht, IP-Validierungen bei neuen Registrierungen, Logins bestehender Benutzer oder global für alle Seitenbesucher zu erzwingen.
  • Integriertes Caching mit der nativen Laravel-Cache-API von Flarum speichert aktuelle IP-Auswertungen, reduziert externe API-Aufrufe drastisch und sorgt für null Latenz.
  • Bei einem API-Timeout oder Netzwerkfehler priorisiert die Erweiterung den Nutzerzugriff (Fail-Open), um weitreichende Sperren zu vermeiden. Dieses Verhalten kann in den Einstellungen umgeschaltet werden.
  • Integrierte Unterstützung für Whitelists basierend auf genauen IPs oder CIDR-Subnetzen (z. B. 192.168.1.0/24).

Installation

  1. Greifen Sie per SSH auf Ihren Server zu und navigieren Sie zum Flarum-Stammverzeichnis (wo sich Ihre composer.json befindet):
    cd /var/www/flarum
  2. Laden Sie die Erweiterung mit Composer herunter:
    composer require proxytracer/flarum-proxytracer
  3. Löschen Sie den Flarum-Cache, um das Modul zu registrieren:
    php flarum cache:clear

Konfiguration:

  1. Rufen Sie Ihren API-Schlüssel im ProxyTracer Dashboard ab.
  2. Navigieren Sie zu Ihrem Flarum-Administrationsbereich: Admin → Features → ProxyTracer, um das Einstellungsfenster zu öffnen.
  3. Geben Sie Ihren API-Schlüssel in das Feld API Key ein.
  4. Aktivieren Sie die Schutzparameter, indem Sie Block Signups, Block Logins und/oder Block All Site Access aktivieren.
  5. Fügen Sie alle vertrauenswürdigen IPs oder CIDR-Bereiche zur IP Whitelist hinzu (eine pro Zeile).
  6. (Optional) Passen Sie die API-Timeout- und Cache-Ablauf-Limits an die spezifischen Datenverkehrsanforderungen Ihres Servers an.
  7. (Optional) Passen Sie die Sperrnachricht an, die gesperrten Benutzern angezeigt wird. Sie können beispielsweise Anweisungen zur Kontaktaufnahme mit der Seitenverwaltung hinzufügen, falls Benutzer der Meinung sind, dass die Sperrung ungerechtfertigt ist und sie nicht über einen Proxy oder VPN auf die Seite zugreifen.

Settings Screenshot

Netzwerkkonfiguration: Cloudflare & Reverse-Proxys

Kritische Netzwerkanforderung: Damit ProxyTracer effektiv funktioniert, muss Ihre Flarum-Anwendung die wahre Client-IP-Adresse empfangen. Wenn Ihre Infrastruktur Cloudflare oder einen Reverse-Proxy nutzt, protokolliert PHP möglicherweise standardmäßig die IP-Adresse des Proxy-Knotens, was die API-Anfragen unbrauchbar macht.

Bitte befolgen Sie die nachstehenden Konfigurationsrichtlinien passend zu Ihrer Serverarchitektur, um eine präzise IP-Weiterleitung zu gewährleisten.

Direkte Cloudflare-Integration (Standardinstallation)

Wenn Ihr Flarum-Server direkt mit dem Internet verbunden ist und Cloudflare ausschließlich für DNS und Edge-Proxying nutzt, können Sie den integrierten Cloudflare-Bypass der Erweiterung verwenden.

Aktivieren Sie in den ProxyTracer Flarum-Einstellungen einfach Extract IPs from Cloudflare Headers.

ProxyTracer extrahiert automatisch die echte Client-IP aus dem proprietären CF-Connecting-IP-Header von Cloudflare. Hinweis: Aktivieren Sie diese Einstellung nur, wenn Ihr Server direkt mit Cloudflare verbunden ist. Wenn Sie dies in einer Konfiguration ohne Cloudflare aktivieren, könnten böswillige Nutzer Beschränkungen umgehen, indem sie ihre IP-Header fälschen.

Multi-Layer Proxy-Architektur (Cloudflare + Lokaler Reverse-Proxy)

Dies gilt, wenn Ihre Flarum-Instanz über ein lokales Serververwaltungs-Panel oder einen Reverse-Proxy (z. B. Nginx Proxy Manager, CloudPanel, Traefik, Plesk) weitergeleitet wird, der sich hinter Cloudflare befindet. In einer mehrschichtigen (oder 'doppelten') Reverse-Proxy-Architektur reicht der einfache Schalter nicht aus, da der Datenverkehr von Ihrer lokalen Netzwerkschnittstelle an Flarum übergeben wird, nicht direkt von Cloudflare.

Sie müssen Ihren lokalen Reverse-Proxy so konfigurieren, dass die echte Client-IP aus dem CF-Connecting-IP-Header extrahiert wird, aber nur für Datenverkehr, der von vertrauenswürdigen Cloudflare-IP-Adressen stammt. Das blinde Weitergeben dieses Headers ohne Überprüfung der Quelle ermöglicht es böswilligen Benutzern, Ratenbeschränkungen und Sperren zu umgehen, indem sie ihre IP-Adresse fälschen.

Nginx-Beispiel: Definieren Sie zunächst die IP-Bereiche von Cloudflare als vertrauenswürdige Proxys in Ihrer Serverblockkonfiguration (außerhalb Ihres Standortblocks). Die Festcodierung dieser IPs auf Nginx-Ebene bietet die absolut höchste Geschwindigkeit und Sicherheit.
# IPv4-Cloudflare-IPs, siehe [https://www.cloudflare.com/ips/](https://www.cloudflare.com/ips/) set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 108.162.192.0/18; set_real_ip_from 190.93.240.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 162.158.0.0/15; set_real_ip_from 104.16.0.0/13; set_real_ip_from 104.24.0.0/14; set_real_ip_from 172.64.0.0/13; set_real_ip_from 131.0.72.0/22; # IPv6-Cloudflare-IPs set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; real_ip_header CF-Connecting-IP;

Suchen Sie als Nächstes nach Ihrer Direktive location /. Aufgrund der obigen Konfiguration löst Nginx nun $remote_addr sicher in die wahre Client-IP auf, jedoch nur, wenn die Anfrage tatsächlich über Cloudflare geleitet wurde. Ändern Sie Ihre IP-Weiterleitungsheader wie folgt:

location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ... }

Speichern Sie die Konfiguration und laden Sie Ihren Nginx-Dienst neu (systemctl reload nginx).

Notfallzugriff

💡
Ausgesperrt? Wenn Sie versehentlich Ihre eigene IP-Adresse bei der Konfiguration von ProxyTracer blockieren (z. B. wenn Sie derzeit mit einem VPN verbunden sind und "Block All" aktiviert haben), können Sie den Zugriff durch Deaktivieren der Erweiterung direkt per SSH wiederherstellen:
cd /var/www/flarum php flarum extension:disable proxytracer-proxytracer php flarum cache:clear
(Wenn Sie Docker verwenden, führen Sie diese Befehle in Ihrem PHP-Container aus). Alternativ können Sie es über die Datenbank deaktivieren: Öffnen Sie Ihre settings-Tabelle, suchen Sie den Schlüssel proxytracer.block_all, ändern Sie seinen Wert auf 0 und führen Sie php flarum cache:clear aus.

Lizenz

Diese Software ist unter der GNU Affero General Public License v3.0 (AGPLv3) lizenziert. Weitere Informationen finden Sie in der Datei LICENSE.

Zuletzt aktualisiert am