Flarum
L'intégration officielle de ProxyTracer pour Flarum. Cette extension apporte une intelligence IP de niveau entreprise à votre communauté, détectant automatiquement les VPN, proxys, datacenters et nœuds Tor connus, et vous offrant la possibilité de les empêcher de s'inscrire, de se connecter ou de consulter entièrement votre forum Flarum.
Le code source complet est disponible sur GitHub. L'extension est distribuée via Packagist.
Fonctionnalités
- Contrôle granulaire permettant aux administrateurs d'imposer la validation IP lors des inscriptions de nouveaux utilisateurs, de l'authentification des utilisateurs existants, ou globalement pour tous les visiteurs du site.
- La mise en cache intégrée utilisant l'API Cache Laravel native de Flarum stocke les évaluations récentes des adresses IP, réduisant considérablement les appels API externes et garantissant une latence nulle.
- En cas de timeout de l'API ou de défaillance réseau, l'extension privilégie l'accès des utilisateurs (fail-open) pour éviter les blocages massifs. Ce comportement peut être modifié dans les paramètres.
-
Prise en charge intégrée de la liste blanche par IP exacte et sous-réseau CIDR (ex. :
192.168.1.0/24).
Installation
-
Accédez à votre serveur via SSH et naviguez vers le répertoire racine de Flarum (où se trouve votre
composer.json) :cd /var/www/flarum -
Installez l'extension via Composer :
composer require proxytracer/flarum-proxytracer -
Videz le cache de votre Flarum pour compiler les nouveaux assets frontend :
php flarum cache:clear
Configuration
- Procurez-vous une clé API standard depuis le Tableau de bord ProxyTracer.
- Naviguez vers votre panneau d'administration Flarum : Admin → Features → ProxyTracer pour ouvrir la fenêtre de paramètres.
-
Saisissez votre clé API dans le champ
API Key. -
Activez les paramètres de protection en basculant
Block Signups,Block Loginset/ouBlock All Site Access. -
Ajoutez toutes les IP de confiance ou plages CIDR à la liste
IP Whitelist(une par ligne). - (Optionnel) Ajustez les limites de timeout de l'API et d'expiration du cache en fonction des besoins spécifiques de trafic de votre serveur.
- (Optionnel) Personnalisez le message de blocage qui apparaît aux utilisateurs bloqués. Par exemple, vous pouvez ajouter des instructions pour contacter l'administration du site au cas où ils estiment que le blocage n'est pas justifié et qu'ils n'accèdent pas au site via un proxy ou VPN.

Configuration réseau : Cloudflare et reverse proxys
Veuillez suivre les directives de configuration ci-dessous correspondant à l'architecture de votre serveur pour garantir un transfert précis des adresses IP.
Directement derrière Cloudflare
Si votre serveur Flarum se connecte directement à Internet et utilise Cloudflare exclusivement pour le DNS et le proxying edge, vous pouvez utiliser le contournement Cloudflare intégré de l'extension.
Dans les paramètres ProxyTracer de Flarum, activez simplement Extract IPs from Cloudflare Headers.
ProxyTracer extraira automatiquement la véritable IP du client à partir de l'en-tête propriétaire CF-Connecting-IP de Cloudflare. Note : N'activez ce paramètre que si votre serveur fait directement face à Cloudflare. Activer ceci sur une configuration non-Cloudflare pourrait permettre aux utilisateurs malveillants de contourner les restrictions en usurpant leurs en-têtes IP.
Architecture de proxy multi-couches (Cloudflare + reverse proxy local)
Ceci s'applique si votre instance Flarum est routée via un panneau de gestion de serveur local ou un reverse proxy (par ex. Nginx Proxy Manager, CloudPanel, Traefik, Plesk) qui se trouve derrière Cloudflare. Dans une architecture reverse proxy multi-couches (ou 'double'), la simple bascule n'est pas suffisante car le trafic est remis à Flarum par votre interface réseau locale, et non directement par Cloudflare.
Vous devez configurer votre reverse proxy local pour extraire la véritable IP cliente depuis l'en-tête CF-Connecting-IP, mais uniquement pour le trafic provenant d'adresses IP Cloudflare approuvées. Transmettre cet en-tête aveuglément sans vérifier la source permet aux utilisateurs malveillants de contourner les limites en usurpant leur adresse IP.
# 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;Ensuite, localisez votre directive location /. Grâce à la configuration ci-dessus, Nginx résoudra désormais en toute sécurité $remote_addr à la véritable IP cliente uniquement si la requête est réellement passée par Cloudflare. Modifiez vos en-têtes de transfert IP comme suit :
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
...
}Enregistrez la configuration et rechargez votre service Nginx (systemctl reload nginx).
Accès d'urgence
cd /var/www/flarum
php flarum extension:disable proxytracer-proxytracer
php flarum cache:clearsettings, localisez la clé proxytracer.block_all, changez sa valeur à 0, et exécutez php flarum cache:clear.Licence
Ce logiciel est sous licence GNU Affero General Public License v3.0 (AGPLv3). Consultez le fichier LICENSE pour plus de détails.