Managing IP request rate limits in Discourse

Discourse implémente des limites de débit globales par adresse IP pour protéger les sites contre le trafic excessif et les abus. Cependant, il existe des scénarios légitimes où vous devez autoriser certaines adresses IP à contourner ces limites de débit. Ce guide explique comment configurer des exceptions pour la limitation du débit sur les installations Discourse auto-hébergées.

Ajout d’adresses IP à la liste d’autorisation

Lorsque vous devez augmenter les limites de débit globales par adresse IP pour des adresses IP ou des plages d’adresses IP spécifiques, vous devrez modifier votre fichier de configuration de conteneur (app.yml) en ajoutant la variable d’environnement DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS.

Attention : N’oubliez pas que même si la variable dit « IP », elle signifie en réalité « bucket », il peut donc s’agir d’une IP, d’un utilisateur, ou autre chose si une nouvelle classification est ajoutée par un plugin.

Ajout d’une seule adresse IP

Pour ajouter une seule adresse IP à votre liste d’autorisation :

DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS: 192.168.1.100

Cela exemptera l’adresse IP 192.168.1.100 des règles de limitation de débit standard.

Ajout de plusieurs adresses IP ou de plages CIDR

Pour plusieurs adresses IP ou plages d’adresses IP utilisant la notation CIDR, utilisez le format multiligne avec la syntaxe YAML >- :

DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS: >-
  10.0.0.0/24
  172.16.10.0/16
  192.168.1.50
  2001:db8:c0:ffee::/64

Cette configuration exempte :

  • tout le réseau 10.0.0.0/24 (256 adresses IP)
  • tout le réseau 172.16.10.0/16 (65 536 adresses IP)
  • l’adresse IP unique 192.168.1.50
  • tout le réseau 2001:db8:c0:ffee::/64 (IPv6)

:warning: Assurez-vous que le format YAML est correct, en particulier lorsque vous utilisez la syntaxe multiligne avec >-.

Reconstruire

Après avoir modifié la configuration du conteneur, vous devrez reconstruire le conteneur pour que les modifications prennent effet :

cd /var/discourse
./launcher rebuild app

Considérations de sécurité

Soyez prudent lorsque vous ajoutez des adresses IP à la liste d’autorisation. Chaque adresse IP ou plage exemptée contourne la protection intégrée de Discourse contre les abus et le trafic excessif.

Bonnes pratiques :

  • N’autorisez que les adresses IP qui ont un besoin commercial légitime (par exemple, services de surveillance, intégrations API, partenaires de confiance).
  • Utilisez les plages d’adresses IP les plus spécifiques possibles plutôt que de grands réseaux.
  • Examinez régulièrement votre liste d’autorisation et supprimez les adresses IP qui ne nécessitent plus d’exemption.

Rappelez-vous : une liste d’autorisation trop permissive peut exposer votre site à des abus potentiels ou à des scénarios de déni de service.

Dépannage

Si vous rencontrez toujours des erreurs de limitation de débit malgré la configuration d’exceptions :

  1. Vérifiez que les bonnes adresses IP sont utilisées dans votre configuration.
  2. Vérifiez que le conteneur a été correctement reconstruit après la modification de la configuration.
  3. Examinez les journaux de Discourse pour les messages de limitation de débit liés aux adresses IP en question.
  4. Si vous utilisez un proxy/équilibreur de charge, assurez-vous qu’il transmet correctement l’adresse IP d’origine du client.
5 « J'aime »