Discourse implementa limiti di frequenza globali per IP per proteggere i siti da traffico eccessivo e abusi. Tuttavia, ci sono scenari legittimi in cui è necessario consentire l’elenco di IP specifici per bypassare questi limiti di frequenza. Questa guida spiega come configurare eccezioni per il rate limiting nelle installazioni self-hosted di Discourse.
Aggiunta di indirizzi IP all’elenco consentiti
Quando è necessario aumentare i limiti di frequenza globali per IP per IP o intervalli di IP specifici, è necessario modificare il file di configurazione del container (app.yml) aggiungendo la variabile d’ambiente DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS.
Attenzione: Ricorda che anche se la variabile dice “IP”, in realtà significa “bucket”, quindi potrebbe essere un IP, un utente, o qualcos’altro se un nuovo tipo di classificazione viene aggiunto da un plugin.
Aggiunta di un singolo indirizzo IP
Per aggiungere un singolo indirizzo IP al tuo elenco consentiti:
DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS: 192.168.1.100
Ciò esenterà l’indirizzo IP 192.168.1.100 dalle regole standard di rate limiting.
Aggiunta di più indirizzi IP o intervalli CIDR
Per più IP o intervalli di IP utilizzando la notazione CIDR, utilizzare il formato multilinea con la sintassi 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
Questa configurazione esenta:
- l’intera rete
10.0.0.0/24(256 indirizzi IP) - l’intera rete
172.16.10.0/16(65.536 indirizzi IP) - il singolo indirizzo IP
192.168.1.50 - l’intera rete
2001:db8:c0:ffee::/64(IPv6)
Assicurati una corretta formattazione YAML, in particolare quando utilizzi la sintassi multilinea con
>-.
Ricostruzione
Dopo aver modificato la configurazione del container, dovrai ricostruire il container affinché le modifiche abbiano effetto:
cd /var/discourse
./launcher rebuild app
Considerazioni sulla sicurezza
Sii cauto quando aggiungi indirizzi IP all’elenco consentiti. Ogni IP o intervallo esentato bypassa la protezione integrata di Discourse contro abusi e traffico eccessivo.
Migliori pratiche:
- Consenti l’elenco solo agli IP che hanno una legittima necessità aziendale (ad esempio, servizi di monitoraggio, integrazioni API, partner fidati).
- Utilizza gli intervalli IP più specifici possibili anziché reti ampie.
- Rivedi regolarmente il tuo elenco consentiti e rimuovi gli IP che non richiedono più un’esenzione.
Ricorda: un elenco consentiti eccessivamente permissivo può esporre il tuo sito ad abusi potenziali o scenari di negazione del servizio.
Risoluzione dei problemi
Se continui a riscontrare errori di rate limiting nonostante la configurazione delle eccezioni:
- verifica che vengano utilizzati gli indirizzi IP corretti nella tua configurazione.
- controlla che il container sia stato ricostruito correttamente dopo la modifica della configurazione.
- esamina i log di Discourse per messaggi di rate limiting relativi agli IP in questione.
- se stai utilizzando un proxy/load balancer, assicurati che stia inoltrando correttamente l’IP originale del client.