Discourseがリンク/リソースをプリロードする際にホストのIPアドレスを漏洩するのを止めろ

こちらに記載されている投稿を参照しています:Discourse Link previews through a proxy server?

まず、この10年近く前の投稿を掘り起こしてしまい申し訳ありませんが、これが他の誰も困っていないとは本当に信じられません。

私は現在、ホストサーバーとそのIPアドレスをCloudflareの背後に隠すことに成功し、数時間かけて検索した結果、Cloudflareからのネットワークトラフィックのみを許可するように設定し、ポートスキャナーが誤ってIPアドレスでフォーラムを発見しないようにしました。セキュリティは私にとって非常に重要です。メールサーバーは外部にあり、ほぼすべてが保護されていますが、誰かが投稿に餌となる画像を挿入するだけで、Discourseがそれを直接ダウンロードして埋め込むというのは冗談のような状態です。これを無効にする方法はどこにも見つけられませんでした。プレビューであるはずのOneboxでさえ、これらを0に設定しても何の効果もなく、IPロギングピクセルがすぐに埋め込まれ、攻撃者にホストのIPを漏洩させる可能性があり、この場合Cloudflareの保護はまったく役に立ちません。サービスを適切に保護するか、まったく保護しないかのどちらかです。攻撃者が登録して画像を投稿するのに5分もかからずにホストの実際のIPを知ることができる場合、Cloudflareを使用する意味がどこにあるのでしょうか?

私は今日、AI、tor、torsocksを使って何時間も試しましたが、うまくいきませんでした。env設定を変更しようとすると、再構築がクラッシュすることがほとんどです。誰かがどうにかしてこれを実現できたなら、どうか私たちと共有してほしいとほとんど懇願しています。ほとんどの場合、再構築が失敗するのは、GithubがTorトラフィックを禁止しているためか、Githubへのアクセスが機能しないためです。

そして、Discourseがリンクを事前にロードするのを無効にできれば、これらすべてが必要になることはないはずです。

本当に困っています。

これが役立つでしょうか?

これはまさにこの目的のために作られたものではありません(主な目的は信頼性の向上でした)が、解決策の一部になるかもしれません。

「いいね!」 1

ありがとうございます!プラグインを追加してDiscourseをリビルドした後、最初の2つのチェックボックスをオンにすると、プロキシが設定されているかどうかにかかわらず、プロキシの使用が強制されると考えていました。しかし、プロキシの情報を入力しても、値が空であっても、2つのチェックボックスが有効になっているだけでも、VPSのIPアドレスでトラッキングピクセルをロードし続けます:[confused]

今度は、Docker全体、またはDiscourseイメージのみをプロキシを使用するように設定して、Torでのリビルドの失敗のように一般的なプロバイダーで機能するかどうかを試してみます。

「いいね!」 2

ああ、残念です。解決策に関わらず、プラグインルートが依然として正しい方法です。メンテナンスが格段に楽になりますから。

「いいね!」 1

個別のホストにTinyproxyのようなものをセットアップし、環境変数を設定してそれを使用するように構成するだけで済みます。TinyproxyでIPヘッダー転送を無効にしていることを確認し、テーマのインストールを容易にするためにGitHubを除外すると役立つ場合があります。

このようなメカニズムは、Discourseがビルドされるときではなく、Discourseが実行されるときに使用する必要があります。

「いいね!」 2

お二方とも、ご提案とアイデアをいただき、本当にありがとうございます!

いったんこれで諦めることにします。あまりにも長い間これに取り組んでいて、そんなに難しいとは思っていませんでしたが、SOCKSやSOCKS5のようなプロキシのトピックで少し途方に暮れています。app.ymlのenvセクションにいくつかのパラメーターや設定を追加するのと同じくらい簡単だろうと思っていましたが、カスタムソリューションにはもっと多くの時間を費やす必要がありそうです。というのも、一般的に、curlを使って例えばhttps://check.torproject.org/api/ipのような外部へプロキシ経由で接続を取得するのに苦労しているからです。ですから、プロキシについてもっと深く掘り下げる必要があると思います。

私が知っている限りのあらゆる方法でホストIPを隠すことができれば良かったのですが、Discourseのような非常に強力なフォーラムプラットフォームを使用することのトレードオフなのでしょうね。Discourseには非常に多くの設定オプションがあります。リンクやプレビューのプリロード、あるいはより一般的に、ユーザーによって提供される外部リソースのフェッチを防ぐ機能のリクエストは可能でしょうか?こちらにリクエスト用のサブフォーラムが見つかりませんでした:frowning:

はい、しかし、Discourseのアップデートや再構築の後もプロキシ設定を維持したいのです。Dockerを扱うのは少しトリッキーな場合があります。