Skip to Content

Flarum

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

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

Funktionen

  • Granulare Kontrolle, die es Administratoren ermöglicht, die IP-Validierung bei Neuregistrierungen, bei der Authentifizierung bestehender Benutzer oder global für alle Seitenbesucher durchzusetzen.
  • Integriertes Caching über die native Laravel Cache API von Flarum speichert kürzliche IP-Adressbewertungen, reduziert externe API-Aufrufe drastisch und gewährleistet keine Latenz.
  • Bei einem API-Timeout oder Netzwerkausfall priorisiert die Erweiterung den Benutzerzugang (fail-open), um großflächige Aussperrungen zu vermeiden. Dieses Verhalten kann in den Einstellungen umgeschaltet werden.
  • Speichert IP-Ergebnisse zwischen, um die Seitenleistung zu maximieren.

Installation

  1. Führen Sie composer require proxytracer/flarum aus
    cd /var/www/flarum
  2. Aktivieren Sie die Erweiterung.
    composer require proxytracer/flarum-proxytracer
  3. Schließen Sie die Einrichtung ab.
    php flarum cache:clear

Konfiguration

  1. Besorgen Sie sich einen Standard-API-Schlüssel vom ProxyTracer Dashboard.
  2. Navigieren Sie zu Ihrem Flarum-Administrationspanel: Admin → Features → ProxyTracer, um das Einstellungsfenster zu öffnen.
  3. Geben Sie den API-Schlüssel ein.
  4. Aktivieren Sie den Schutz, indem Sie Registrierungen blockieren, Anmeldungen blockieren und/oder Gesamten Zugriff blockieren auswählen.
  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

Damit ProxyTracer effektiv funktioniert, muss die Flarum-Anwendung die echte Client-IP-Adresse erhalten. Wenn Ihre Infrastruktur Cloudflare oder einen anderen Reverse Proxy verwendet, protokolliert Flarum möglicherweise standardmäßig die IP-Adresse des Proxy-Knotens (wie die Edge-Server von Cloudflare), was die Arbeit von ProxyTracer unzuverlässig macht.

Stellen Sie sicher, dass Cloudflare der einzige Anbieter ist.

Direkt hinter Cloudflare

Wenn Ihr Flarum-Server direkt mit dem Internet verbunden ist und Cloudflare ausschließlich für DNS und Edge-Proxying verwendet, können Sie die integrierte Cloudflare-Umgehung der Erweiterung nutzen.

Stellen Sie sicher, dass CF-Connecting-IP durchgereicht wird.

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 vor Cloudflare steht. Die Aktivierung auf einer Nicht-Cloudflare-Konfiguration könnte es böswilligen Benutzern ermöglichen, Einschränkungen durch Fälschung ihrer IP-Header zu umgehen.

Mehrschichtige 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, see [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 beim Konfigurieren von ProxyTracer versehentlich Ihre eigene IP-Adresse blockieren (z. B. wenn Sie derzeit mit einem VPN verbunden sind und 'Alle blockieren' aktiviert haben), können Sie den Zugriff wiedererlangen, indem Sie die Erweiterung direkt über SSH deaktivieren:
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.

Last updated on