Fastly レベルでAdobe Commerceの悪意のあるトラフィックをブロック
この記事では、悪意のある脅威に対応するだけでなく、ジオグラフィックフィルタリングの方法として、ストアへの不要なトラフィックをブロックする方法について説明します。
Adobe Commerceクラウドインフラストラクチャ(およびFastly CDN)は、DDoS攻撃などの悪意のある脅威に対応して、ストアへのトラフィックを管理するツールを提供します。 さらに、悪意のある意図が検出されない場合でも、特定の国や地域からのリクエストをブロックし、ビジネスポリシー、規制要件、その他の運用ニーズに準拠することができます。
影響を受ける製品とバージョン:
- Adobe Commerce on cloud infrastructure 2.3.x
この記事では、悪意のあるIPsや、その国やユーザーエージェントが既に存在していることを前提としています。 Adobe Commerce on cloud infrastructureのユーザーは、通常、Adobe Commerce サポートからこの情報を取得します。 次の節では、この情報に基づいてトラフィックをブロックする手順を説明します。 すべての変更は実稼動環境で行う必要があります。
管理パネルへのアクセス
Web サイトがDDoSによって過負荷になっている場合は、Commerce管理者にログインできない可能性があります(この記事で詳しく説明されているすべての手順を実行してください)。
管理者にアクセスするには、 メンテナンスモードを有効または無効にするの説明に従ってweb サイトをメンテナンスモードにし、IP アドレスをホワイトリストに登録します。 これが完了したら、メンテナンスモードを無効にします。
IPでトラフィックをブロック
Adobe Commerce オンクラウドインフラストラクチャストアの場合、特定のIP アドレスとサブネットによるトラフィックをブロックする最も効果的な方法は、Commerce管理者にFastlyのACLを追加することです。 以下は、より詳細な手順へのリンクを含む手順です。
- Commerce管理者で、Stores > Configuration > Advanced > System > Full Page Cache > Fastly Configurationに移動します。
- ブロックするIP アドレスまたはサブネットのリストを含む新しいACLを作成します。
- Adobe Commerce用Fastly_Cdn モジュールの ブロッキング ガイドの説明に従って、これをACL リストとブロックに追加します。
国別のトラフィックをブロック
Adobe Commerce オンクラウドインフラストラクチャストアの場合、国別のトラフィックをブロックする最も効果的な方法は、Commerce管理者にFastlyのACLを追加することです。
- Commerce管理者で、Stores > Configuration > Advanced > System > Full Page Cache > Fastly Configurationに移動します。
- 国を選択し、Adobe Commerce用Fastly_Cdn モジュールの ブロッキング ガイドで説明されているように、ACLを使用してブロッキングを設定します。
ユーザーエージェントによるトラフィックのブロック
ユーザーエージェントに基づいてブロッキングを確立するには、Fastly設定にカスタム VCL スニペットを追加する必要があります。 これを行うには、次の手順を実行します。
- Commerce Adminで、Stores > Configuration > Advanced > System > Full Page Cacheに移動します。
- 次に、Fastly Configuration > Custom VCL Snippetsです。
- Fastly_Cdn モジュールの カスタム VCL スニペット ガイドの説明に従って、新しいカスタムスニペットを作成します。 次のコードサンプルを例として使用できます。 このサンプルでは、
AhrefsBotユーザーエージェントのトラフィックを許可しません。
name: block_bad_useragents
type: recv
priority: 5
VCL:
if ( req.http.User-Agent ~ "(AhrefsBot)" ) {
error 405 "Not allowed";
}
JA3/JA4/OH署名によるトラフィックのブロック(NewrelicからJA3、JA4、OHFPの値を取得)
-
辞書を作成:Admin > Store > Configuration > System > Full page cache > Fastly configuration > Edge Dictionaryに移動し、次のサンプルブロックを作成します。
code language-none #table ja3_blocklist: table ja3_blocklist { "********************************": "********************************", } #table ja4_blocklist: table filter_bad_ja4 { "************************************": "************************************", } -
次に、VCLを追加して、上記の表に記載されているJA3、JA4をブロックします。
code language-none name: block_traffic_ja3_ja4 type: recv priority: 5 VCL: if (req.restarts == 0 && fastly.ff.visits_this_service == 0) { if(table.contains(ja3_blocklist, tls.client.ja3_md5)){ error 403; } if(table.contains(ja4_blocklist, tls.client.ja4)){ error 403; } } -
OHFPに基づくサンプルのブロック:
code language-none #table ohfp_h2fp_blocklist table ohfp_h2fp_blocklist { "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx":"xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx", } -
次に、VCLを追加して、上記の表に記載されているOHFPをブロックします。
code language-none # Snippet block_ohfp_h2fp name: block_ohfp_h2fp type: recv Priority: 5 if (table.contains(ohfp_h2fp_blocklist, fastly_info.oh_fingerprint)) { error 403 "Forbidden"; }
レート制限(実験的なFastly機能)
Adobe Commerce on cloud infrastructureには、実験的なFastly機能があり、特定のパスとweb クローラーのレート制限を指定できます。 詳しくは、Fastly モジュールのドキュメント を参照してください。
この機能は、実稼動環境で使用する前に、ステージング環境で広範にテストする必要があります。これは、正規のトラフィックをブロックする可能性があるためです。
推奨:robots.txtの更新を検討する
robots.txt ファイルを更新すると、特定の検索エンジン、web クローラー、およびロボットが特定のページをクロールするのを防ぐことができます。 クロールしないページの例としては、検索結果ページ、チェックアウト、お客様情報などがあります。 これらのページをクロールしないようにすることで、生成されるリクエストの数を減らすことができます。
robots.txtを使用する際には、次の2つの重要な考慮事項があります。
- ロボットは
robots.txtを無視できます。 特に、セキュリティ上の脆弱性をウェブ上でスキャンするマルウェアのロボットや、迷惑メール送信者が利用するメールアドレスの収集には注意が必要です。 robots.txtファイルは一般公開されているファイルです。 ロボットが使用したくないサーバーのセクションは誰でも確認できます。
基本的な情報とデフォルトのAdobe Commerce robots.txt設定については、開発者向けドキュメントのSearch Engine Robots記事をご覧ください。
robots.txtに関する一般的な情報と推奨事項については、次を参照してください。
- Google サポートによるrobots.txt ファイルの作成
- /robots.txtについて(robotstxt.org)
開発者やSEOの専門家と協力して、許可したいユーザーエージェントや許可しないユーザーエージェントを決定します。
関連トピックス
- Adobe Commerce on Cloudの製品固有のライセンス条件
- Commerce on Cloud ガイドのリクエストをブロックするための カスタム VCL