web-dev-qa-db-ja.com

オリジンサーバーが直接接続を受け入れる場合、CDNは実際にどのようにしてDDoS攻撃を防止しますか?

CDN(Cloudflareなど)がDDoS攻撃からどのように保護するかを理解しようとしています。

インターネットトラフィックはCDNのリバースプロキシを経由してルーティングされ、その後フィルター処理されると思います。これは、問題のWebサイトのDNSレコードがCDNリバースプロキシを指していることを前提としています。

次に、元のサーバーにCDN関連のIPからの接続のみを許可するファイアウォールを設置する必要がありますか?

注:この サポート記事 で、攻撃を受けている場合、Cloudflareは、Origin IPを変更してルーティングを更新することを提案しています。

攻撃者が直接Origin Webサーバーをターゲットにしている場合は、ホスティングプロバイダーにOrigin IPの変更を要求し、Cloudflare DNSアプリのIP情報を更新します。可能性のあるすべてのDNSレコードがオレンジ色で曇っていることと、Origin IPを変更する前にネームサーバーが(CNAME設定を使用していない限り)Cloudflareを指していることを確認します。

ファイアウォールの使用を推奨しないのはなぜですか?現在、それらの解決策は短期的には効果がありますが、簡単に回避できます。

IPの悪いアドバイスだけを変更していますか?ここで何か間違っていることを理解していますか?

6
Marcel

IPホワイトリストは面倒なので、不完全なソリューションです。 CloudFlareのリバースプロキシ自体のグローバルネットワーク自体は、必ずしもIPアドレスの静的リストではありません。 CloudFlareが新しいIP範囲を追加した場合、ファイアウォールを更新するまでCloudFlareのサーバーの一部がオリジンサーバーに到達できなくなる可能性があり、アプリケーションは多くのユーザーにとって気づかない可能性があり、本当にデバッグが難しいブラウンアウトを経験している可能性がありますあなたが見ている限り、すべてが完全にうまく機能しているので、あなたがそうするときでも。ファイアウォールのIPアドレスのホワイトリストを最新の状態に保つための保守作業は、DDoSの処理と同じくらい問題になります。

CloudFlareのCDN保護の主なアイデアは、DNSシステムのような公的にアクセス可能なデータベースから、オリジンサーバーの実際のIPアドレスを隠すことです。これにより、攻撃者が攻撃元のサーバーのどこに攻撃を仕向けるかを発見することがはるかに困難になります。

さらに、ファイアウォールアプライアンスが実際に直接DDoS負荷を処理できる場合、攻撃者はおそらく、実際にDDoS保護を必要とするほどの規模ではありません。したがって、アクティブな攻撃の影響を緩和するための最も速い方法である可能性が高いため、町をスキップしてパブリックIPを変更するという提案は賢明です。

直接トラフィックからオリジンサーバーを保護するCloudFlareのソリューションは Authenticated Origin Pull (free)を使用することです。これにより、オリジンサーバーへの接続時にCloudFlareがTLSクライアント証明書を使用するか、または Argo Tunnel (追加コスト)。CloudFlareの存在ポイントの1つへの送信接続を維持するには、ネットワーク内でcloudflareエージェントデーモンを実行する必要があります。

4
Lie Ryan

「今、元のサーバーにCDN関連のIPからの接続のみを許可するファイアウォールを設置する必要がありますか?」

いいアイデアだと思います。 Cloudflareは、無料階層のサイトはトラフィックを直接Originにオフロードする前は、DDOSのサポートに制限があると主張していたため、推奨していません。しかし、これらのリンクはもう見つかりません。cloudflareは、従量制のDDOS保護を主張しています。

いずれにせよ、本当にDDOSの影響を受けている場合、cloudflareサブスクリプションを支払う方が、自分で解決するよりもはるかに安く問題を解決できます。

「なぜファイアウォールの使用を推奨しないのですか?今、彼らのソリューションは短期的な効果がありますが、簡単に回避することができます。」

たとえば、攻撃者がサーバーのIPから直接送信されるアラートにサブスクライブでき、IPをローテーションするだけでは効果がない場合などです。

クラウドフレア以外のIPからのアクセスを何らかの方法で防ぐ必要があります。できれば、サーバーのファイアウォールではなく、たとえばAWSセキュリティグループを使用してプラットフォームレベルで行います。

1
keithRozario