Cloudflare利用環境で固定IP制限が使えない問題に対応|EC-CUBEのアクセス制御事例

Cloudflare利用環境で固定IP制限が使えない問題に対応|EC-CUBEのアクセス制御事例BtoB-EC
この記事は約5分で読めます。

会社の固定IPアドレスを許可設定へ登録したのに、会社からのアクセスが拒否される。サンクユーがEC-CUBEベースのサイトへ会員別IP制限を追加した際、この問題を確認しました。

調査では、会社が利用する固定IPv4と、Cloudflare経由でサイトが取得するIPv6の不一致が分かりました。接続環境を調整し、対象環境で固定IPv4の取得とIP制限の正常動作を確認しています。本記事では、顧客情報を伏せ、課題と対応結果を紹介します。

この記事でわかること

  • 登録した固定IPv4と、サイトが取得したIPv6が一致しなかった状況
  • 接続元IPを取得できることと、固定IPv4と一致することの違い
  • 対応結果と、適用するときに確認したいこと

会社からのアクセスでも、登録したIPと一致しなかった

今回の機能は、会員ごとに許可するIPアドレスを登録し、対象の接続元から利用できるようにするものです。仕組みはEC-CUBEの会員アカウントにIP制限を追加するには?複数拠点・設定変更・復旧の設計で紹介しています。

会社の固定IPv4を登録しても、サイトがアクセス元として確認した情報はIPv6でした。登録値と取得値が異なるため、許可条件に一致せず、会社からのアクセスでも利用できない状態でした。

ここで必要だったのは、利用を通すために制限を外すことではなく、接続元の情報が想定と異なる理由を調べることでした。

調査の過程で、今回の環境ではCF-Connecting-IPでも接続元のIPを取得できることを確認しました。公式ドキュメントでは、このヘッダーはCloudflareに接続したクライアントのIPアドレスをオリジンサーバーへ伝えるものと説明されています(Cloudflare公式 HTTP headers)。

ただし、IPアドレスを取得できることと、それが許可一覧に登録した固定IPv4であることは別です。取得される値は、接続方式やCloudflareの設定・経路によって異なります。IPv6で接続した場合、IPv6が取得されることがあります。サイトが接続元として確認する値がIPv6であれば、登録したIPv4とは一致しません。

「接続元IPを取得できた」ことと、「登録した固定IPv4と一致する」ことは、別々に確認します。

EC-CUBEの会員ログインの保護について相談する

「会社から接続しても拒否される」「固定IPを使った制限を追加したい」といった場合は、現在の環境と発生状況をお知らせください。

EC-CUBEのセキュリティ機能について相談する

今回の対応と確認結果

サンクユーのスタッフが接続環境を調査し、Cloudflare側の設定を調整しました。変更後は、ブラウザからのアクセスで会社の固定IPv4を取得できることと、実装したIP制限が正常に動作することを確認しています。

今回の対象環境では、次の条件を維持しています。

  • Cloudflareによるサイトの保護・高速化を維持する。
  • 利用者のパソコンやブラウザの設定変更を不要とする。
  • 会社の固定IPv4を使ったIP制限を運用できるようにする。

これらは、今回確認した環境での結果です。アクセス速度の改善率や、すべての接続環境で同じ結果になることを示すものではありません。

適用するときに確認したいこと

接続構成を変更する場合は、その構成で利用できる接続方法や、利用者・他の機能への影響を、環境ごとに確認します。今回確認したのは、会社の固定IPv4を利用する環境です。IPv6のみで接続する利用者や、別の回線・連携機能への影響は、適用前に別途検証する必要があります。

また、接続元の情報をアクセス制御に使う場合は、その値をどの仕組みで受け取っているかも確認します。ヘッダーなどの値はリクエストの一部のため、想定しない経路から届いた値が判定に混ざらないか、サイトへの到達経路も含めて確認する必要があります。

同じ症状でも、原因はIPv4とIPv6の違いとは限らない

固定IP制限が通らない場合でも、原因がIPv4とIPv6の違いとは限りません。登録内容、利用回線、プロキシや中継サービス、アプリケーションでの取得方法などを確認して切り分けます。

今回の事例は、Cloudflareを利用するすべてのサイトで接続方式を変更すべきという提案ではありません。会社側の利用条件と、サイト側で必要な制御を満たす構成を、個別に検討します。

調査を相談するときに整理しておきたいこと

  • 制限したい対象が、管理画面か会員アカウントか
  • 利用しているCDNやプロキシなどのサービス
  • どの会社・拠点・回線で利用できないか
  • 許可設定のIPと、サイト側で取得したIPの形式
  • いつから発生しているか、直前に環境変更があったか

接続元の実際の値や詳しい構成情報は、公開のコメント欄などへ書き込まず、個別の確認時に共有してください。

よくある質問

CF-Connecting-IPで、必ずIPv4を取得できますか?

取得できるとは限りません。Cloudflare公式ドキュメントでは、このヘッダーはCloudflareに接続したクライアントのIPを伝えるものと説明されています。取得される値は設定や経路にも左右され、IPv6になる場合があります。会社の固定IPv4と一致するかは、実際のアクセスで確認します。

Cloudflareを使っていると、IP制限は使えませんか?

使えないとは限りません。サイトが接続元をどの情報から取得するか、登録した値と一致するかを確認したうえで、構成を検討します。

Cloudflareを使うサイトは、IPv4で接続する構成にすべきですか?

一律に推奨するものではありません。利用者の接続環境と、サイトで必要なアクセス制御の要件を確認して判断します。

EC-CUBEの会員ログインの保護について相談する

サンクユーでは、EC-CUBEの機能追加を、実際の運用条件と合わせて検討します。現在の利用環境と、保護したい情報・困っていることをお知らせください。

EC-CUBEのセキュリティ機能について相談する

あわせて読まれています

投稿者プロフィール

Nakamura
サンクユーのEC-CUBE担当。15年以上にわたりEC-CUBE開発に従事し、2系・3系・4系すべてに精通。難易度の高いカスタマイズや、他社構築サイトの改修・再設計も多数対応しています。

Javaでの業務システム開発を起点に、PHP・Perl・フロントエンド・CMSまで横断的に対応。基幹システム連携や業務フローを踏まえた設計を得意とし、複雑な要件にも柔軟に対応可能です。

ChatGPT CODEXを活用し、開発スピードと品質の両立を実現しています。

お気軽にご相談ください

お気軽にご相談ください

タイトルとURLをコピーしました