ProxyTracer : Bloqueur de VPN et de proxy

:information_source: Résumé Détectez et bloquez le trafic VPN et proxy lors de l’inscription, de la connexion des utilisateurs et/ou globalement en utilisant l’API ProxyTracer.
:hammer_and_wrench: Lien vers le dépôt https://github.com/ProxyTracer/discourse-proxytracer
:open_book: Guide d’installation Comment installer des plugins dans Discourse

Ce plugin utilise l’API ProxyTracer pour détecter et bloquer le trafic VPN et proxy dans Discourse.

Fonctionnalités

  • Il vous offre un contrôle précis sur le blocage des utilisateurs VPN et Proxy lors des nouvelles inscriptions, de l’authentification des utilisateurs existants ou globalement pour tous les visiteurs du site. Si vous acceptez que les utilisateurs VPN et Proxy aient un accès en lecture à votre forum, vous pouvez économiser des requêtes API en n’activant la fonctionnalité que pour l’inscription et l’authentification.
  • Il utilise la mise en cache pour stocker les évaluations récentes des adresses IP, réduisant ainsi les requêtes vers l’API et la latence. Vous pouvez contrôler la durée de conservation d’une évaluation d’adresse IP dans les paramètres.
  • En cas de délai d’attente de l’API ou d’échec réseau, le plugin privilégie l’accès des utilisateurs pour éviter des blocages à grande échelle. Ce comportement peut être modifié via les options.
  • Prise en charge intégrée de la liste blanche pour les adresses IP exactes et les sous-réseaux CIDR.

Configuration

  1. Obtenez une clé API standard depuis le Tableau de bord ProxyTracer.
  2. Accédez au panneau d’administration de votre Discourse : Admin → Plugins → ProxyTracer pour trouver les paramètres de ProxyTracer.
  3. Saisissez votre clé API dans le champ Clé API ProxyTracer.
  4. Activez les paramètres de protection en activant Activé lors de l'inscription, Activé lors de la connexion et/ou Activé pour tous les visiteurs.
  5. Ajoutez les adresses IP ou plages CIDR de confiance à la liste Adresses IP autorisées.
  6. (Facultatif) Ajustez le délai d’attente de l’API et la durée de cache Redis pour répondre aux besoins spécifiques de trafic de votre serveur.
  7. (Facultatif) Personnalisez le message de blocage affiché aux utilisateurs bloqués. Par exemple, vous pouvez ajouter des instructions pour contacter l’administration du site s’ils estiment que le blocage est injustifié et qu’ils n’accèdent pas au site via un proxy ou un VPN.

Paramètres

Tableau des paramètres et de leurs descriptions

Nom Description
Délai d’attente de l’API (ms) Durée d’attente avant que l’API ne soit considérée comme expirée.
Durée du cache (heures) Durée de conservation d’une adresse IP avant de vérifier à nouveau l’API.
Autoriser en cas d’erreur Si l’API plante ou expire, autoriser l’utilisateur à s’inscrire/se connecter pour éviter de bloquer tout le monde.
Activé lors de l’inscription Bloquer les proxies et VPN lorsqu’un nouvel utilisateur tente de s’inscrire.
Activé lors de la connexion Bloquer les proxies et VPN lorsqu’un utilisateur existant tente de se connecter.
Activé pour tous les visiteurs Bloquer les proxies et VPN pour accéder ou visualiser toute page du forum. (Attention : cela vérifie chaque visiteur et utilise intensivement votre quota API).
Message de blocage Le message d’erreur exact affiché à l’utilisateur lorsqu’il est bloqué.
Adresses IP autorisées Adresses IP ou plages CIDR (par exemple, 192.168.1.0/24) strictement autorisées à contourner le blocage.

Configuration réseau : Cloudflare et proxys inversés

:warning: Pour que ProxyTracer fonctionne efficacement, l’application Discourse doit recevoir la véritable adresse IP du client.

Pour assurer une transmission correcte de l’adresse IP, vous pouvez suivre ces instructions détaillées.

Accès d’urgence

Si vous vous êtes exclu, vous pouvez retrouver l’accès en suivant ces étapes simples.


Si vous souhaitez tester, vous pouvez vous inscrire à ProxyTracer et obtenir des crédits API gratuits pour vos tests.

3 « J'aime »

Les crédits recommencent-ils le mois suivant ?

Vous parlez du crédit gratuit lors de l’inscription ? Si c’est le cas, il s’agit d’un seul et unique rechargement.

Cela ne va-t-il pas à l’encontre de l’objectif même du plugin ? N’importe qui peut utiliser le mode sécurisé.

1 « J'aime »

(message supprimé par l’auteur)

Cela dépend. Il existe un paramètre de site qui vous permet de désactiver le mode sans échec, ce qui est utile pour le composant de sujet restreint et d’autres composants/plugins que les utilisateurs ne devraient pas pouvoir désactiver aussi facilement (publicité, porte d’entrée pour les invités, …). Mais lorsque vous n’êtes pas connecté, cela rendrait également l’utilisation du mode sans échec plus difficile pour les administrateurs. Je pense qu’ils peuvent toujours l’activer en utilisant admin-login.

Pour ce plugin, je doute que le mode sans échec soit utile. Le mode sans échec désactive uniquement la partie front-end des plugins, et ce plugin est écrit à 100 % en Ruby. Je ne pense donc pas que la désactivation des personnalisations JavaScript soit d’une grande aide. Ce fait me rend un peu sceptique quant au plugin, tout comme le fait qu’il inclue un fichier about.json comme s’il s’agissait d’un composant de thème. Mais en fin de compte, chacun est responsable du code qu’il installe sur son forum.

1 « J'aime »

Vous avez tout à fait raison sur ce point. Je peux le confirmer grâce à mes propres tests effectués sur une instance Discourse fraîchement déployée. J’ai donc mis à jour la documentation avec des instructions qui fonctionnent réellement : se connecter au serveur et désactiver manuellement l’extension :

cd /var/discourse
./launcher enter app
rails c
SiteSetting.proxytracer_enabled = false
exit
exit

Je confirme que le mode sans échec est inaccessible lorsque le paramètre « Activé pour tous les visiteurs » est activé et qu’un utilisateur tente d’y accéder en se connectant via un VPN ou un proxy.

En effet, un fichier about.json est redondant pour les plugins standards. Je l’ai donc supprimé du dépôt.

Merci pour tous vos retours @Moin. Si vous avez d’autres remarques ou suggestions, n’hésitez pas à les laisser ici. Le code est entièrement open source et toute contribution est la bienvenue : GitHub - ProxyTracer/discourse-proxytracer.