コンテンツにスキップ

Cloudflare向けWallarmコネクタ

Cloudflareは、Webサイトやインターネットアプリケーションのセキュリティ、速度、信頼性を強化するために設計された機能(CDN、WAF、DNSサービス、SSL/TLS暗号化など)を提供するセキュリティ兼パフォーマンスサービスです。WallarmはCloudflare上で稼働するAPIを保護するコネクタとして動作できます。

CloudflareのコネクタとしてWallarmを使用するには、Wallarmノードを外部にデプロイし、Wallarmが提供するコードを用いたCloudflare workerを実行して、トラフィックを解析のためにWallarmノードへルーティングする必要があります。

Cloudflareコネクタは、インラインアウトオブバンドの両方のトラフィックフローをサポートします:

Wallarmが不正なアクティビティをブロックするように設定されている場合:

CloudflareとWallarm - インライン構成

CloudflareとWallarm - アウトオブバンド構成

ユースケース

アプリケーションへのアクセスをCloudflare経由で提供している場合に本ソリューションの利用を推奨します。

制限事項

  • HelmチャートLoadBalancerタイプのWallarmサービスをデプロイする場合、ノードインスタンスのドメインには信頼済みのSSL/TLS証明書が必要です。自己署名証明書はまだサポートしていません。

  • Wallarmルールによるレート制限はサポートしていません。

  • マルチテナンシーはまだサポートしていません。

要件

デプロイを進める前に、以下の要件を満たしていることを確認してください:

  • Cloudflareのテクノロジーに関する理解。

  • Cloudflareを経由しているAPIまたはトラフィック。

デプロイ

1. Wallarmノードをデプロイする

Wallarmノードは、受信トラフィックを検査し、不正なアクティビティを検出し、脅威を緩和するように設定できるWallarmプラットフォームの中核コンポーネントです。

必要な管理レベルに応じて、Wallarmがホストするノードとして、またはお客様のインフラストラクチャ内にデプロイできます。

コネクタ用にWallarmホスト型ノードをデプロイするには、手順に従ってください。

セルフホストノードのデプロイに使用するアーティファクトを選択し、各手順に従ってください:

2. Wallarmのworkerコードを取得してデプロイする

トラフィックをWallarmノードへルーティングするCloudflare workerを実行するには:

  1. Wallarm Console → Security EdgeConnectorsDownload code bundleに移動し、プラットフォーム用のコードバンドルをダウンロードします。

    セルフホストノードを実行している場合は、sales@wallarm.comに連絡してコードバンドルを入手してください。

  2. ダウンロードしたコードを使用してCloudflare workerを作成します。

  3. wallarm_nodeパラメータにWallarmノードのURLを設定します。

  4. 非同期(アウトオブバンド)モードを使用する場合は、wallarm_modeパラメータをasyncに設定します。

  5. 必要に応じて、その他のパラメータを変更します。

    Cloudflare worker

  6. Website → 対象ドメインで、Workers RoutesAdd routeに移動します:

    • Routeで、解析のためにWallarmへルーティングするパスを指定します(すべてのパスに対しては例: *.example.com/*)。
    • Workerで、作成したWallarm workerを選択します。

    Cloudflareのルート追加

テスト

デプロイ済みソリューションの機能をテストするには、以下を実行します:

  1. APIにテスト用のパストラバーサル攻撃を含むリクエストを送信します:

    curl http://<YOUR_APP_IP_OR_DOMAIN>/etc/passwd
    
  2. Wallarm Console → AttacksセクションをUS CloudまたはEU Cloudで開き、攻撃が一覧に表示されていることを確認します。

    インターフェースのAttacks

    Wallarmノードのモードがblockingに設定され、トラフィックがインラインで流れている場合は、このリクエストもブロックされます。

設定オプション

workerコードでは、以下のパラメータを指定できます:

パラメータ 説明 必須か
wallarm_node お使いのWallarmノードインスタンスのアドレスを設定します。 はい
wallarm_mode トラフィック処理モードを決定します。inline(既定)はトラフィックをWallarmノードで直接処理します。asyncはトラフィックのコピーを、元のフローに影響を与えずに解析します。 いいえ
wallarm_send_rsp_body スキーマディスカバリーおよびブルートフォースなどの高度な攻撃検出のためにレスポンスボディの解析を有効にします。既定: true(有効)。 いいえ
wallarm_response_body_limit ノードが解析できるレスポンスボディサイズ(バイト)の上限です。既定は0x4000です。 いいえ
wallarm_block_page.custom_path
(Workerバージョン1.0.1+)
ノードからのHTTP 403応答で返すカスタムブロッキングページのURL。例: https://example.com/block-page.html
既定: nullhtml_pagetrueの場合は詳細なWallarm提供のエラーページを使用)。
いいえ
wallarm_block_page.html_page
(Workerバージョン1.0.1+)
不正リクエスト向けのカスタムHTMLブロッキングページを有効にします。既定: false(単純なHTTP 403を返します)。 いいえ
wallarm_block_page.support_email
(Workerバージョン1.0.1+)
問題報告用としてブロッキングページに表示するメールアドレス。既定: support@mycorp.com はい(html_pagetrueの場合)
Wallarm提供のエラーページを表示

HTTP 403応答で返されるWallarm提供のエラーページは次のとおりです:

Wallarmのブロッキングページ

Cloudflare workerのアップグレード

デプロイ済みのCloudflare workerを新しいバージョンにアップグレードするには:

  1. Wallarm Console → Security EdgeConnectorsDownload code bundleに移動し、更新されたWallarm Cloudflareコードバンドルをダウンロードします。

    セルフホストノードを実行している場合は、sales@wallarm.comに連絡して更新済みのコードバンドルを入手してください。

  2. デプロイ済みのCloudflare workerのコードを、更新済みバンドルに置き換えます。

    wallarm_nodewallarm_modeなどの既存のパラメータ値は保持してください。

  3. Deployで更新済みの関数をデプロイします。

Workerのアップグレードでは、特にメジャーバージョン更新時にWallarmノードのアップグレードが必要な場合があります。セルフホストノードのリリースノートとアップグレード手順はNative Nodeの変更履歴を、EdgeノードのアップグレードについてはEdge connectorのアップグレード手順を参照してください。非推奨を回避し将来のアップグレードを容易にするため、定期的なノードの更新を推奨します。