IP Lookup が CDN の X-Forwarded-For を取得

Discourse コミュニティの皆さん、こんにちは!

IP Lookup が X-Forwarded-For ヘッダーの最後の IP アドレスを取得すると考えてよいでしょうか?Cloudfront は自社の IP を末尾に追加しているようです。

スパム送信者を防ぐためにクライアントの IP アドレスを取得できるよう、nginx で X-Forwarded-For ヘッダーの最後の IP を削除する方法をご存じでしょうか?

どなたかお手伝い、またはご助言をいただけますと幸いです。

よろしくお願いいたします。

このようなケースに対する回避策を、他にも持っている方がいらっしゃいますか?

こんにちは、これを確認しましたか?

「いいね!」 1

Run other websites on the same machine as Discourse をご覧ください。

Cloudflareのプロキシを有効にした際に、この問題が発生しました。

Nginxの設定を変更することで解決しました。すべてのプロキシIPアドレスを見つけ、それぞれの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;
...

その後、Cloudflareから渡されるヘッダーから実際のIPを設定できます。

real_ip_header CF-Connecting-IP;

プロキシIPアドレスは変更される可能性があるため、これらを自動的に取得して更新する必要があります。

その後、以下でnginxをリロード/再起動します。

sv nginx reload または sv nginx restart

ああ。もっと早くこの投稿を見ていればよかった!今日、すでに存在するものを作り直すのに1時間費やしてしまいました。X-Forwarded-ForプロキシタグがDiscourseで認識されない?:

「いいね!」 2

Cloudflare から IP リストを自動的に更新するため、組み込みソリューションに切り替えることをお勧めします。サイトを再構築するときに!

「いいね!」 3

リビルドに頼るよりも、定期的にチェックするcronジョブを設定する方が良いでしょう。

あまり頻繁には変更されないようですね: https://community.cloudflare.com/t/how-often-do-cloudflare-ips-change/9802/7

2年は私が思っていたよりも頻繁です。

しかし、チェックは非常に簡単なので、1日1回行っても問題ありません。IPアドレス範囲が有効になる数日前にリストが更新されることを願っています。