Cloudflare向けWallarmコネクタ¶
Cloudflareは、Webサイトやインターネットアプリケーションのセキュリティ、速度、信頼性を強化するために設計された機能(CDN、WAF、DNSサービス、SSL/TLS暗号化など)を提供するセキュリティ兼パフォーマンスサービスです。WallarmはCloudflare上で稼働するAPIを保護するコネクタとして動作できます。
CloudflareのコネクタとしてWallarmを使用するには、Wallarmノードを外部にデプロイし、Wallarmが提供するコードを用いたCloudflare workerを実行して、トラフィックを解析のためにWallarmノードへルーティングする必要があります。
Cloudflareコネクタは、インラインとアウトオブバンドの両方のトラフィックフローをサポートします:
ユースケース¶
アプリケーションへのアクセスをCloudflare経由で提供している場合に本ソリューションの利用を推奨します。
制限事項¶
-
Helmチャートで
LoadBalancer
タイプのWallarmサービスをデプロイする場合、ノードインスタンスのドメインには信頼済みのSSL/TLS証明書が必要です。自己署名証明書はまだサポートしていません。 -
Wallarmルールによるレート制限はサポートしていません。
-
マルチテナンシーはまだサポートしていません。
要件¶
デプロイを進める前に、以下の要件を満たしていることを確認してください:
-
Cloudflareのテクノロジーに関する理解。
-
Cloudflareを経由しているAPIまたはトラフィック。
デプロイ¶
1. Wallarmノードをデプロイする¶
Wallarmノードは、受信トラフィックを検査し、不正なアクティビティを検出し、脅威を緩和するように設定できるWallarmプラットフォームの中核コンポーネントです。
必要な管理レベルに応じて、Wallarmがホストするノードとして、またはお客様のインフラストラクチャ内にデプロイできます。
コネクタ用にWallarmホスト型ノードをデプロイするには、手順に従ってください。
セルフホストノードのデプロイに使用するアーティファクトを選択し、各手順に従ってください:
- ベアメタルまたはVM上のLinuxインフラ向けのAll‑in‑oneインストーラー
- コンテナ化されたデプロイを使用する環境向けのDockerイメージ
- AWSインフラ向けのAWS AMI
- Kubernetesを利用するインフラ向けのHelmチャート
2. Wallarmのworkerコードを取得してデプロイする¶
トラフィックをWallarmノードへルーティングするCloudflare workerを実行するには:
-
Wallarm Console → Security Edge → Connectors → Download code bundleに移動し、プラットフォーム用のコードバンドルをダウンロードします。
セルフホストノードを実行している場合は、sales@wallarm.comに連絡してコードバンドルを入手してください。
-
ダウンロードしたコードを使用してCloudflare workerを作成します。
-
wallarm_node
パラメータにWallarmノードのURLを設定します。 -
非同期(アウトオブバンド)モードを使用する場合は、
wallarm_mode
パラメータをasync
に設定します。 -
必要に応じて、その他のパラメータを変更します。
-
Website → 対象ドメインで、Workers Routes → Add routeに移動します:
- Routeで、解析のためにWallarmへルーティングするパスを指定します(すべてのパスに対しては例:
*.example.com/*
)。 - Workerで、作成したWallarm workerを選択します。
- Routeで、解析のためにWallarmへルーティングするパスを指定します(すべてのパスに対しては例:
テスト¶
デプロイ済みソリューションの機能をテストするには、以下を実行します:
-
APIにテスト用のパストラバーサル攻撃を含むリクエストを送信します:
-
Wallarm Console → AttacksセクションをUS CloudまたはEU Cloudで開き、攻撃が一覧に表示されていることを確認します。
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 。既定: null (html_page がtrue の場合は詳細な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_page がtrue の場合) |
Cloudflare workerのアップグレード¶
デプロイ済みのCloudflare workerを新しいバージョンにアップグレードするには:
-
Wallarm Console → Security Edge → Connectors → Download code bundleに移動し、更新されたWallarm Cloudflareコードバンドルをダウンロードします。
セルフホストノードを実行している場合は、sales@wallarm.comに連絡して更新済みのコードバンドルを入手してください。
-
デプロイ済みのCloudflare workerのコードを、更新済みバンドルに置き換えます。
wallarm_node
、wallarm_mode
などの既存のパラメータ値は保持してください。 -
Deployで更新済みの関数をデプロイします。
Workerのアップグレードでは、特にメジャーバージョン更新時にWallarmノードのアップグレードが必要な場合があります。セルフホストノードのリリースノートとアップグレード手順はNative Nodeの変更履歴を、EdgeノードのアップグレードについてはEdge connectorのアップグレード手順を参照してください。非推奨を回避し将来のアップグレードを容易にするため、定期的なノードの更新を推奨します。