Flarum
Oficjalna integracja ProxyTracer dla platformy Flarum. To rozszerzenie wprowadza zaawansowaną analizę adresów IP klasy enterprise do Twojej społeczności, automatycznie wykrywając znane sieci VPN, serwery proxy, centra danych i węzły Tor, a także dając możliwość blokowania rejestracji, logowania lub całego dostępu do forum Flarum.
Pełny kod źródłowy znajduje się na platformie GitHub. Rozszerzenie jest dystrybuowane za pośrednictwem serwisu Packagist.
Funkcje
- Szczegółowa kontrola pozwalająca administratorom wymusić walidację IP podczas rejestracji nowych kont, logowania istniejących użytkowników lub globalnie dla wszystkich odwiedzających forum.
- Wbudowana pamięć podręczna korzystająca z natywnego API Laravel Cache we Flarum przechowuje ostatnie wyniki oceny IP, drastycznie zmniejszając liczbę zapytań do zewnętrznego API i eliminując opóźnienia.
- W przypadku przekroczenia limitu czasu API lub awarii sieci rozszerzenie stawia na dostępność dla użytkowników (fail-open), aby zapobiec masowym blokadom. Zachowanie to można zmienić w ustawieniach.
-
Wbudowana obsługa białej listy (whitelist) dla konkretnych adresów IP oraz podsieci CIDR (np.
192.168.1.0/24).
Instalacja
-
Połącz się z serwerem przez SSH i przejdź do głównego katalogu instalacji Flarum (gdzie znajduje się plik
composer.json):cd /var/www/flarum -
Zainstaluj rozszerzenie za pomocą Composera:
composer require proxytracer/flarum-proxytracer -
Wyczyść pamięć podręczną Flarum, aby skompilować nowe zasoby frontendu:
php flarum cache:clear
Konfiguracja:
- Pobierz standardowy klucz API z Panelu ProxyTracer.
- Przejdź do panelu administracyjnego Flarum: Admin → Rozszerzenia → ProxyTracer, aby otworzyć okno ustawień.
-
Wklej swój klucz API w polu
Klucz API. -
Włącz parametry ochrony, zaznaczając
Blokuj rejestracje,Blokuj logowaniai/lubBlokuj cały dostęp do witryny. -
Dodaj zaufane adresy IP lub zakresy CIDR do pola
Biała lista IP(jeden wpis na linię). - (Opcjonalnie) Dostosuj limit czasu API (timeout) oraz czas ważności pamięci podręcznej do specyfiki ruchu na Twoim serwerze.
- (Opcjonalnie) Dostosuj komunikat blokady wyświetlany zablokowanym użytkownikom. Możesz na przykład dodać instrukcję kontaktu z administracją witryny w przypadku podejrzenia fałszywego zablokowania.

Konfiguracja sieciowa: Cloudflare i Reverse Proxy
Postępuj zgodnie z poniższymi instrukcjami konfiguracyjnymi odpowiadającymi architekturze Twojego serwera, aby zapewnić prawidłowe przekazywanie adresów IP.
Bezpośrednia integracja z Cloudflare (Instalacja standardowa)
Jeśli Twój serwer Flarum łączy się bezpośrednio z internetem i korzysta z Cloudflare wyłącznie do obsługi DNS i proxy brzegowego, możesz użyć wbudowanej w rozszerzenie obsługi nagłówków Cloudflare.
W ustawieniach ProxyTracer we Flarum wystarczy włączyć opcję Pobieraj adresy IP z nagłówków Cloudflare.
ProxyTracer automatycznie wyodrębni prawdziwy adres IP klienta z dedykowanego nagłówka CF-Connecting-IP. Uwaga: Włącz tę opcję wyłącznie wtedy, gdy Twój serwer komunikuje się bezpośrednio z Cloudflare. Włączenie jej w innym środowisku mogłoby pozwolić atakującym na omijanie ograniczeń poprzez fałszowanie nagłówków IP.
Architektura wielowarstwowego proxy (Cloudflare + lokalny reverse proxy)
Dotyczy sytuacji, gdy instancja Flarum działa za lokalnym panelem zarządzania serwerem lub reverse proxy (np. Nginx Proxy Manager, CloudPanel, Traefik, Plesk), który znajduje się za Cloudflare. W architekturze wielowarstwowego proxy samo włączenie opcji nie wystarczy, ponieważ ruch jest przekazywany do Flarum przez lokalny interfejs sieciowy, a nie bezpośrednio przez Cloudflare.
Musisz skonfigurować lokalne reverse proxy tak, aby wyodrębniało prawdziwy adres IP klienta z nagłówka CF-Connecting-IP, ale wyłącznie dla ruchu pochodzącego z zaufanych adresów IP Cloudflare. Bezwarunkowe przekazywanie tego nagłówka bez weryfikacji źródła pozwala złośliwym użytkownikom omijać limity i bany poprzez fałszowanie nagłówków IP.
# Adresy IPv4 Cloudflare, zobacz [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;
# Adresy IPv6 Cloudflare
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;Następnie znajdź dyrektywę location /. Dzięki powyższej konfiguracji Nginx bezpiecznie przypisze zmiennej $remote_addr prawdziwy adres IP klienta tylko wtedy, gdy żądanie rzeczywiście przeszło przez Cloudflare. Zmodyfikuj nagłówki przekazywania IP w następujący sposób:
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
...
}Zapisz konfigurację i przeładuj usługę Nginx (systemctl reload nginx).
Dostęp awaryjny
cd /var/www/flarum
php flarum extension:disable proxytracer-proxytracer
php flarum cache:clearsettings, znajdź klucz proxytracer.block_all, zmień jego wartość na 0 i uruchom php flarum cache:clear.Licencja
To oprogramowanie jest objęte licencją GNU Affero General Public License v3.0 (AGPLv3). Pełną treść licencji znajdziesz w pliku LICENSE.