IP Lookup está puxando o X-Forwarded-For do CDN

Hi Discourse community!

Am I correct to assume that IP Lookup gets the last IP from the X-Forwarded-For header? Cloudfront seems to be attaching their IP at the end.

How would we modify nginx to remove the last IP in the X-Forwarded-For header? We were hoping to get the client IP to prevent spammers.

Could anyone please provide help / guidance?

Cheers

Just wanted to check if anyone else has a workaround for something like this?

Hi, did you check this?

1 curtida

Have a look at Running other websites on the same machine as Discourse

Acabei de encontrar este problema com o Cloudflare quando ativei o proxy deles.

Eu corrigi alterando a configuração do Nginx. Você tem que encontrar todos os endereços IP do proxy e, para cada um na seção http:

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;
...

Então você pode definir o IP real do cabeçalho passado pelo Cloudflare:

real_ip_header CF-Connecting-IP;

Como os endereços IP do proxy podem mudar, precisarei automatizar a obtenção e atualização deles.

Em seguida, recarregue/reinicie o nginx com:

sv nginx reload ou sv nginx restart

Argh. Gostaria de ter visto este post mais cedo! Acabei de passar uma hora hoje recriando algo que já existia: X-Forwarded-For proxy tag not recognized by Discourse?:

2 curtidas

Eu recomendaria que você mudasse para a solução integrada, pois ela atualizará automaticamente a lista de IPs do Cloudflare quando você reconstruir o site!

3 curtidas

É provavelmente melhor definir um cron job para verificar regularmente do que depender de reconstruções.

Não parece que mude com muita frequência: https://community.cloudflare.com/t/how-often-do-cloudflare-ips-change/9802/7

2 anos é, na verdade, mais frequente do que eu imaginava.

No entanto, a verificação é tão simples que fazê-la uma vez por dia não é problema. Espero que eles atualizem a lista alguns dias antes que os novos intervalos de IP entrem em vigor.