Cloudflare CDN利用時でもオリジンIP漏洩とDDoS攻撃を防ぐ方法

私のウェブサイトではDiscourseを使用しています。当初はCloudflareで保護されておらず、DDoS攻撃を受けました。

その後、IPアドレスを変更し、Cloudflareを導入しましたが、オリジンサーバーのIPアドレスが漏洩したことにより、再びDDoS攻撃を受けました。

Cloudflare CDNを使用している場合、オリジンサーバーのIPアドレスが漏洩するのを防ぐにはどうすればよいですか?何か良い方法はありますか?よろしくお願いします。

わかりませんが、オンラインのすべてのサーバーのIPアドレスが作成と同時に漏洩します。

以下を行うことで、多くの漏洩を防ぐことができます。

  • Tinyproxyのようなプロキシサーバーを別のVPSにセットアップする
  • 環境変数 HTTPS_PROXYHTTP_PROXY を設定して、Discourseがそれを使用するようにする(app.ymlenv セクションで設定)
  • NO_PROXY='127.0.0.1, localhost, <内部ネットワーク>' を設定する

関連項目: Install discourse with internet access only via proxy, Configuration outbound proxy, Discourse Link previews through a proxy server? - #14 by supermathie

また、CFの背後にいる場合は、CloudflareのIP(および自分でアクセスするホスト)からの着信トラフィックのみを許可するように、Discourseホストのファイアウォールを変更できます。

「いいね!」 4

これが解決策です。隠蔽によるセキュリティは安全ではありません。そうすれば、IP が一般に知られていても問題なくなります。

「いいね!」 3

または、これに代わるより簡単なアプローチとして、Cloudflareトンネルと呼ばれるものを使用することもできます。これは一度設定すれば、ほとんどの場合、ファイアウォールをインバウンド接続に対して閉鎖できるようになります。

「いいね!」 2

以前(あなたが言及したプロキシ設定なしで)これを選択したと思います。これがすべてのファイアウォールに適用されるのか、それとも私のセットアップの何かによるのかはわかりませんが、ufwの場合、Dockerはデフォルトでufwをバイパスするため、内部Docker IPにもルールを適用するようにする必要があります。

しばらく前のことですが、まだこれが必要な場合は、今週後半に詳細をさらに調べることができます。

はい、Cloudflareトンネルは素晴らしいです! @itsbhanusharma

「いいね!」 1

VPSプロバイダーが提供するファイアウォールを使用することをお勧めします。ホストベースのファイアウォールを使用すると、トラフィックがネットワークスタックに到達するため、DDoS攻撃との戦いにはるかに効果が低くなります。

「いいね!」 3

ほとんどの大手プロバイダーはデフォルトでDDoS保護を提供していると思いますが、それで十分ではないでしょうか? CloudflareのIPをインターフェース経由で手動で追加するのは面倒です(たとえば、カスタムbashスクリプトは2秒でCFのIPを自動取得します)。

通常は、プロバイダーのファイアウォールよりもufw/ローカルファイアウォールの方が良いと読んでいます🤔

編集:ここのロジックは理解しています。DDoSの観点からは、おそらくこちらの方が効果的で、あなたが正しいです。とはいえ、最初からメインIPが正しく隠されていれば、DDoSは問題にならないはずですよね?

「いいね!」 1

ほとんどのプロバイダーは現在、そのためのAPIを持っていますか?

その通りです!しかし、それはかなり大きな「もし」です…

「いいね!」 2

実際には間違っています。IPが隠されていないというだけで、リバースプロキシや同様のツールにDDoSを停止する機能があれば、DDoSは問題になりません。さらに、実際の攻撃が発生した場合、エントリーレベルのソリューション以上のものが必要になります。ボットやスレーブユーザーがポートを閉鎖したり、IP制限のあるポートを攻撃したりしても、それはそれほど大きな問題ではありません。WordPressの世界では「いつもの木曜日」と呼ぶでしょうが、Discourseは多くの点で別の世界です。

一方で、私はこの分野の専門家ではありません。

しかし、興味があります…DDoSが成功するには、どのくらいのトラフィックが必要ですか?もちろん、セットアップのリソースにもよりますが、具体的な数値を教えてください。

「いいね!」 1

それは「隠されている」の定義によります。はい、すべてのIPアドレスは公開されています。しかし、40億ものIPアドレスのうち、どれが正しいものなのでしょうか?この議論においては、特定のDiscourseフォーラムを提供しているサーバーのIPアドレスを特定する方法がない場合、IPアドレスは隠されていると見なすことができると思います(つまり、ホストの実際のIPアドレスを提供する関数f(h)が未定義である場合)。
ただし、以下の条件とします。

  • あなたがCloudflareではないこと
  • フォーラムが一方向のトラフィック(oneboxingや送信メールヘッダー、その他の方法)を通じてIPアドレスを明らかにしないこと

しかし、「隠されている」という言葉は紛らわしく、不正確であるという点には同意します。「不明」の方がおそらく適切でしょう。

それはDDoSの種類によります。アプリケーション層の攻撃であれば、これは真実かもしれませんが、リクエストの検査を伴う何らかのレート制限が必要となるため、困難でもあります。しかし、ネットワーク層の攻撃(増幅による単なるトラフィックフラッディングやSYN攻撃)では、これは当てはまらないかもしれません。さらに、あなたが言っていることは基本的に「緩和できるなら問題ではない」ということですが、それは当然のことですが、困難または高価でもあります。

攻撃の種類にもよります。アプリケーション層の攻撃はDiscourseに合わせて調整される必要がありますが、例えば、アプリケーションサーバーを圧倒するような重いクエリ(検索など)を実行することができます。一方、ネットワーク層の攻撃はより一般的で、より多くのトラフィックを必要とし、nginxやVPSのネットワークを詰まらせる可能性があります。

「いいね!」 4

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.