Flarum
L'integrazione ufficiale di ProxyTracer per Flarum. Questa estensione porta l'intelligence IP di livello enterprise nella tua community, rilevando automaticamente VPN, proxy, datacenter e nodi Tor noti, e dandoti la possibilità di impedire loro di registrarsi, accedere o visualizzare del tutto il tuo forum Flarum.
Il codice sorgente completo è disponibile su GitHub. L'estensione è distribuita tramite Packagist.
Caratteristiche
- Controllo granulare che consente agli amministratori di imporre la convalida dell'IP durante la registrazione di nuovi utenti, l'autenticazione degli utenti esistenti o globalmente per tutti i visitatori del sito.
- Il caching integrato che utilizza l'API nativa Laravel Cache di Flarum memorizza le valutazioni recenti degli indirizzi IP, riducendo drasticamente le chiamate API esterne e garantendo latenza zero.
- In caso di timeout dell'API o errore di rete, l'estensione dà priorità all'accesso degli utenti (fail-open) per prevenire blocchi generalizzati. Questo comportamento può essere modificato nelle impostazioni.
-
Supporto integrato per whitelist di indirizzi IP esatti e subnet CIDR (es.
192.168.1.0/24).
Installazione
-
Accedi al tuo server via SSH e naviga nella directory radice di Flarum (dove si trova il tuo
composer.json):cd /var/www/flarum -
Installa l'estensione tramite Composer:
composer require proxytracer/flarum-proxytracer -
Svuota la cache di Flarum per compilare i nuovi asset del frontend:
php flarum cache:clear
Configurazione:
- Ottieni una chiave API standard dalla Dashboard di ProxyTracer.
- Accedi al tuo pannello di amministrazione Flarum: Admin → Features → ProxyTracer per aprire la finestra delle impostazioni.
-
Inserisci la tua chiave API nel campo
API Key. -
Scegli quali azioni proteggere:
Block Signups,Block LoginsoBlock All Site Access. -
Aggiungi eventuali IP o intervalli CIDR attendibili alla
IP Whitelist(uno per riga). - (Opzionale) Regola i limiti di timeout dell'API e di scadenza della cache (Cache Expiry) in base alle esigenze specifiche di traffico del tuo server.
- (Opzionale) Personalizza il messaggio di blocco (Block Message) che appare agli utenti bloccati. Ad esempio, puoi aggiungere istruzioni per contattare l'amministrazione del sito nel caso in cui ritengano che il blocco non sia giustificato e non stiano accedendo tramite proxy o VPN.

Configurazione di Rete: Cloudflare e Reverse Proxy
Segui le linee guida di configurazione sottostanti corrispondenti all'architettura del tuo server per garantire un inoltro IP accurato.
Integrazione Diretta con Cloudflare (Installazione Standard)
Se il tuo server Flarum si collega direttamente a Internet e utilizza Cloudflare esclusivamente per DNS e proxy edge, puoi utilizzare il bypass Cloudflare integrato nell'estensione.
Nelle impostazioni di ProxyTracer per Flarum, attiva semplicemente Extract IPs from Cloudflare Headers.
ProxyTracer estrarrà automaticamente il vero IP del client dall'header proprietario CF-Connecting-IP di Cloudflare. Nota: abilita questa impostazione solo se il tuo server è direttamente esposto a Cloudflare. Abilitare questa opzione su una configurazione senza Cloudflare potrebbe consentire a utenti malintenzionati di aggirare le restrizioni falsificando i propri header IP.
Architettura Proxy Multi-Livello (Cloudflare + Reverse Proxy Locale)
Questo si applica se la tua istanza Flarum è instradata attraverso un pannello di gestione server locale o un reverse proxy (es. Nginx Proxy Manager, CloudPanel, Traefik, Plesk) posizionato dietro Cloudflare. In un'architettura di reverse proxy a più livelli (o "doppio"), la semplice opzione non è sufficiente perché il traffico viene passato a Flarum dalla tua interfaccia di rete locale e non direttamente da Cloudflare.
Devi configurare il tuo reverse proxy locale per estrarre l'IP reale del client dall'header CF-Connecting-IP, ma solo per il traffico proveniente da indirizzi IP Cloudflare attendibili. Passare ciecamente questo header senza verificare l'origine consente a utenti malintenzionati di aggirare rate limit e ban falsificando il proprio indirizzo IP.
# IP IPv4 di Cloudflare, vedi [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;
# IP IPv6 di 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;Successivamente, individua la tua direttiva location /. Grazie alla configurazione sopra, Nginx risolverà ora in modo sicuro $remote_addr verso l'IP reale del client solo se la richiesta è effettivamente passata attraverso Cloudflare. Modifica i tuoi header di inoltro IP come segue:
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
...
}Salva la configurazione e ricarica il servizio Nginx (systemctl reload nginx).
Accesso di Emergenza
cd /var/www/flarum
php flarum extension:disable proxytracer-proxytracer
php flarum cache:clearsettings, individua la chiave proxytracer.block_all, cambia il suo valore in 0 ed esegui php flarum cache:clear.Licenza
Questo software è rilasciato sotto licenza GNU Affero General Public License v3.0 (AGPLv3). Consulta il file LICENSE per i dettagli completi.