リモートワークの普及などに伴い、外部からサーバーやシステムへアクセスする機会が増加しています。

その結果、従来のVPNや固定IPアドレス制限といった対策では、管理の手間やセキュリティの確保が難しくなっています。この課題を解決する仕組みとして有効なのが「Cloudflare Zero Trust」です。

個人環境や小規模チームでも利用でき、アクセスのたびに認証を行うことで、安全なネットワーク環境を構築できます。

本記事では、Cloudflare Zero Trustの概要や料金プラン、基本的な使い方を解説します。また、Webサイト運営者向けに「WordPress管理画面への不正アクセスを防ぐための導入手順と動作検証」の記録もまとめました。

目次


WordPressテーマ「GLUE」
WordPressテーマ「GLUE」
無料で高機能なWordPressテーマが手に入る。

Cloudflare Zero Trustとは?

Cloudflare Zero Trust

Cloudflare Zero Trustは、すべてのアクセスを疑い、常に検証を行う「ゼロトラスト」の概念に基づいたセキュリティプラットフォームです。

従来のネットワークセキュリティでは、社内ネットワークやVPNなどの「内側」は安全であり、「外側」からの攻撃を防ぐという境界防御の考え方が主流でした。

しかし、クラウドサービスの普及やリモートワークの増加により、守るべき境界が曖昧になっています。

Cloudflare Zero Trustは、「すべての通信を信頼しない(Zero Trust)」という前提に立ち、アクセス元の場所に関わらず、接続のたびに「誰が」「どのデバイスから」「何に」アクセスしようとしているのかを厳格に認証・認可します。

Cloudflare Zero Trust

メリット

  • VPNが不要になる:接続が不安定になりがちな従来のVPNを導入することなく、安全なリモートアクセス環境を構築できる。
  • 強力なアクセス制御:普段利用しているGoogleアカウント等と連携でき、スマホを使った二段階認証を組み合わせた厳格な認証が可能。
  • 低遅延で高速な通信:世界中に配置されたCloudflareの広大なネットワークを利用するため、セキュリティを高めつつ高速で安定した通信を維持できる。
  • 個人や小規模チームは無料で開始できる:基本的な機能は最大50ユーザーまで無料で利用可能なため、コストを抑えて次世代セキュリティを導入できる。

デメリット

  • 初期設定にドメインの知識が必要:導入にあたっては、DNS(※)の管理権限をCloudflareに移行するなどの作業が必要となる。
  • 学習コストがかかる:管理画面は設定項目が多く、必要な設定箇所を学ぶ上での学習コストがかかる。
  • 運用の設計が必要:「どのユーザーに、どのリソースへのアクセスを許可するか」というポリシーを適切に設計・管理しないと、業務に必要なアクセスまで遮断してしまう可能性がある。
  • トラブル時の原因切り分け:万が一接続できないトラブルが発生した際、手元のデバイスの設定が原因なのか、Cloudflare側のポリシー設定が原因なのか、切り分けに慣れが必要な場合がある。
※DNSとは、インターネット上の「電話帳」のような役割を持つシステムです。私たちがWebサイトを見る時、「example.com」のようなドメイン名を入力しますが、コンピュータは「192.168.1.1」のような数字(IPアドレス)で場所を判断しています。DNSは、この「ドメイン名(名前)」と「IPアドレス(電話番号)」を自動で結びつけ、正しいサーバーへ案内してくれます。

Cloudflare Zero Trustの主要機能

Cloudflare Zero Trustは複数のセキュリティコンポーネントで構成されており、それぞれが連携することで強固なアクセス制御を実現しています。

ここでは、導入の起点となる4つの主要機能について解説します。

Cloudflare Access(Webページへのアクセス制限)

特定のWebページ(WordPressの管理画面など)へアクセスできる人を制限し、守るための機能です。

  • 認証画面の設置:設定したURLへアクセスした際、サイトが表示される前に身元確認の画面を挟み込み、関係者以外をブロックする。
  • 選べるログイン方法:Googleアカウント等との連携や、メールに届く1回使い切りのパスワード(ワンタイムピン)を使った認証が選べる。
  • 場所を選ばないセキュリティ:働く場所が変わってIPアドレスが固定できないリモートワーク環境でも、安全かつ確実に関係者だけを通すことができる。

Cloudflare Tunnel(安全な通信経路の確立)

社内ネットワークやローカル環境で稼働しているサービスを、外部のインターネットへ安全に公開するための機能です。

通常、外部からサーバーへアクセスさせるには、ルーターのポート開放やグローバルIPアドレスが必要ですが、セキュリティ上のリスクが生じます。

Cloudflare Tunnelを利用すると、サーバー側からCloudflareに向けて安全な専用のトンネル(抜け道)を作ります。

そのため、外部からの入り口をすべて閉ざした状態のままでも、特定のURLを経由して安全にアクセスできるようになります。

Cloudflare Gateway(危険なサイトからの防御)

パソコンやスマホからインターネットを利用する際に、危険なサイトへ繋がらないよう通信を守ってくれる機能です。

  • 危険なサイトのブロック: 詐欺(フィッシング)サイトや、ウイルスが仕込まれたサイトへのアクセスを自動的に防ぐ。
  • 特定サイトの閲覧制限: チームのルールに合わせて、業務に不要なWebサイト(ギャンブルなど)を見られないように制限することも簡単にできる。

Cloudflare One Agent / Client(専用クライアントアプリ)

スマートフォンやPCなどにインストールして使用する、専用のクライアントアプリです。

Cloudflare One Agent

端末からのすべてのインターネット通信を暗号化し、最寄りのCloudflareネットワークへ安全に経由させます。

以前は「1.1.1.1 + WARP」というアプリでZero Trustが利用できましたが、現在は法人やチーム向けアプリの「Cloudflare One Agent(スマホ用)」「Cloudflare One Client(PC用)」へと移行されています。

従来の「1.1.1.1 + WARP」は、個人向けのプライバシー・DNS保護アプリとして引き続き提供されています。

Cloudflare Zero Trustの料金

Cloudflareには、Webサイトの表示高速化や基本セキュリティを担う「Cloudflare本体」と、別サービスとしてアクセス制限に特化した「Cloudflare Zero Trust」があります。

Cloudflare本体の無料プランを契約しても、自動的にZero Trustが使えるわけではありません。Zero Trustを利用するには、別途Zero Trust側の利用開始手続き(無料プランの選択と支払い情報の登録)が必要です。

ただし、個人や小規模なサイトであれば、本体とZero Trustのどちらも「無料プラン」を選択し、費用をかけずに組み合わせて利用することが可能です。

Cloudflare本体の料金プラン(無料版あり)

プラン名 料金 対象 主な機能・特徴
Free(無料) 月額0ドル 個人サイト
小規模メディア
・基本的な表示高速化(CDN)
・AIボットのアクセス制限
Pro 月額20ドル 本格的なサイト
中規模メディア
・画像最適化による更なる高速化
・高度なWAF(Web攻撃からの防御)
Business 月額200ドル 中〜大規模サイト ・100%の稼働率保証
・優先カスタマーサポート
Enterprise 要見積もり 大企業
大規模な法人
・年中無休の専任サポート
・きめ細かいアクセス制御と監視

出典:アプリケーションサービスプラン | Cloudflare

WordPressの管理画面を保護する目的であれば、まずは「Cloudflare本体(無料プラン)」と「Zero Trust(無料プラン)」の組み合わせで十分に強力なセキュリティを構築できます。

Zero Trustを利用するために、Cloudflare本体の有料プランを契約する必要はありません。

Zero Trustの料金プラン(無料版あり)

プラン名 料金 対象ユーザー規模 主な違い(機能・制限)
Free(無料) 月額0ドル 最大50ユーザーまで ・基本的なゼロトラスト機能
・ログの保存期間は最大24時間
・稼働率保証なし
Pay-as-you-go 1ユーザーあたり
月額7ドル(年払い)
50ユーザー以上 ・ユーザー数無制限
・ログの保存期間が最大30日に延長
・100%の稼働率保証
・メール/チャットサポート対応
Enterprise カスタム(要見積もり) 全従業員 ・6ヶ月間のログ保存
・外部セキュリティ監視システムとの連携
・クラウドサービスの安全管理
・ウイルス感染を防ぐ
・特殊なブラウザ機能の追加
・電話を含む年中無休の専任サポート

出典:Zero TrustとSASEのプラン | Cloudflare

Cloudflare Zero Trustの料金プランは、「Freeプラン(無料)」「従量課金制」「契約プラン」の3種類があります。

Cloudflare Zero Trustは、プランによって「使える基本機能」に大きな差がありません。個人や小規模チームであれば、Freeプランの範囲内で十分に運用が可能です。

アクセス制限(Cloudflare Access)」や「安全なトンネル接続(Cloudflare Tunnel)」といった主要機能は、無料プランでもすべて利用できます。

有料プランとの主な違いは、「51人以上のユーザー数」「トラブル時のサポート体制」「ログの長期保存と詳細な分析(サービス品質保証など)」の3点です。

そのため、個人ブログの管理や、数人規模のチームでのサイト運営であれば、無料枠を維持したまま強固なセキュリティを導入できます。

ただし、無料プランであっても、初期設定時にクレジットカードまたはPayPalの支払い情報登録が必要です。これはボットによる不正利用やスパムの防止を目的としたCloudflare側の仕様です。

登録自体は必須となりますが、50ユーザー以下の無料枠を超えない限り、勝手に課金されることはありません。

基本的な始め方・初期設定の手順

Cloudflare Zero Trustを使い始めるための基本手順を解説します。ここでは、アカウント作成からZero Trustの専用ダッシュボードにアクセスするまでの流れを整理しています。

Cloudflareのアカウント作成とドメイン登録

Zero Trustの機能を利用する前に、まずはベースとなるCloudflareのアカウントとドメイン設定が必要です。

はじめに、以下のリンクからCloudflareの公式サイトにアクセスし、画面上の「無料で始める」をクリックします。

Cloudflare公式サイト

メールアドレスやパスワードなど必要情報を入力し、アカウントを作成します。

Cloudflareのアカウント設定1

ダッシュボードの「ドメイン」>「概要」>「ドメインを追加」から、保護したいWordPressが稼働しているドメイン名を入力します。

Cloudflareのアカウント設定2

利用したいCloudflareの料金プラン内にある「プランを選択」をクリックします。

Cloudflareのアカウント設定3

Cloudflareが現在登録されている既存のDNS設定(IPアドレスなど)を自動スキャンして読み込みます。内容に問題がなければ「アクティベーションに進む」をクリックします。

Cloudflareのアカウント設定4

画面の指示に従い、利用しているドメインのネームサーバーを、Cloudflareが指定するものに変更します。画面上に表示されたCloudflareのネームサーバーをコピーします。

Cloudflareのアカウント設定5

ご利用のドメインサービスのネームサーバー設定画面で、あらかじめ設定していたドメインのネームサーバーを削除し、Cloudflareのネームサーバーを追加・保存します。

Cloudflareのアカウント設定6

その後、ネームサーバーの変更が反映されるまで待ちます(数分〜数時間程度)。

Zero Trustの有効化とチーム名の決定

ドメインの登録が完了したら、Zero Trustの機能を有効にします。ダッシュボードの左側から「Zero Trust」をクリックします。

Cloudflare Zero Trustの設定1

初期設定画面が表示されるので、「チーム名(Team Name)」を決定します。チーム名は、ユーザーがログインする際のURL(https://[チーム名].cloudflareaccess.com)の一部になります。

Cloudflare Zero Trustの設定2

プランの選択と支払い情報の登録

続いて、Zero Trust専用のプランを選択します。Zero Trustの画面から「請求の管理」をクリックします。

Cloudflare Zero Trustの設定3

PayPalやクレジットカードなどの支払い情報を選択または入力します。

Cloudflare Zero Trustの設定4

さらに住所と同意項目にチェックを入れて「有効化」をクリックします。

※「このカードに対し、無料枠を超える使用量を毎月課金することを Cloudflare に許可します…」と表記がありますが、登録ユーザー数が51人を超えない限り課金されません。

Cloudflare Zero Trustの設定5

右上の「Zero Trustに続行」をクリックすると、元の画面に遷移します。

Cloudflare Zero Trustの設定6

以上で初期設定は完了です。このZero Trustダッシュボード上から、認証ルールなどの具体的なセキュリティ設定を行っていきます。

WordPressの保護にCloudflare Accessが有効な理由

WordPressでのCloudflare Accessの設定の前に、何故この保護方法が有効なのかを解説します。

WordPressのログインページや管理画面(wp-login.phpwp-admin)は、悪意のあるプログラムによる総当たり攻撃(ブルートフォース攻撃)の標的になりやすい部分です。

従来の対策としてはIPアドレス制限やBasic認証が一般的ですが、以下の課題があります。

  • IPアドレス制限の課題:スマートフォンなどのモバイル回線や、外出先のカフェなど、IPアドレスが頻繁に変わる環境からはアクセスできなくなる。
  • Basic認証の課題:パスワードの入力漏れや漏洩のリスクがあり、根本的な防御にはなりにくい。

Cloudflare Accessを導入すると、設定したURLにアクセスする前にCloudflare側でユーザー認証が行われます。

認証を通過しない限り、WordPressのログイン画面自体が表示されないため、不正なアクセスをサーバーに到達する前に遮断できます。

WordPressログイン保護プラグインとの違いと併用

比較項目 ログイン保護プラグイン Cloudflare Zero Trust
動作する場所 WordPress(サーバー)の内部 WordPress(サーバー)の手前
防御のタイミング 不正アクセスのサーバー到達後 不正アクセスのサーバー到達前
サーバーへの負荷 不正アクセスの負荷がかかる サーバー到達前に遮断し、負荷をかけない
主な対策・機能 ログインURLの変更、画像認証など 事前認証(ワンタイムピンなど)

WordPressのセキュリティ対策として、「SiteGuard WP Plugin」などログイン保護プラグインを導入しているケースは多いかと思います。

Cloudflare Zero Trustとこれらのプラグインは、どちらも不正アクセスを防ぐためのものですが、防御する「場所」が異なります。

まず、ログイン保護プラグインは、WordPress(サーバー)の内部で動作します。

管理画面のURLを変更したり、ログイン画面に画像認証(キャプチャ)を追加したりして、サーバーに到達したアクセスを制御します。

一方でCloudflare Zero Trustは、WordPress(サーバー)の手前で動作します。

ユーザーがサーバーに到達するより前の段階で認証を行うため、悪意のあるボットや不正アクセスをサーバーに近づけない(負荷をかけない)という特徴があります。

そのため、すでにログイン保護プラグインを導入している場合は、そのまま有効にした状態でCloudflare Zero Trustを設定して問題ありません。

併用するメリット

  • 多層防御の実現:Cloudflareの設定ミス等でZero Trustを突破された場合でも、プラグインが第二の壁として機能する。
  • 機能の補完:Cloudflareは「サーバー到達前のアクセス遮断」に特化している。プラグインの「ログイン履歴の記録」「パスワード強度の強制」「ファイル改ざん検知」などの機能でセキュリティが補完される。

併用するデメリット

  • 機能の競合によるエラー:サーバーやプラグインのIP制限機能などが、CloudflareのIPを「不正なアクセス」と誤認し、エラーの原因になる。併用時はIP制限などをオフにする調整が必要。
  • 管理の手間:設定の確認や、トラブル発生時の原因切り分けを、CloudflareのダッシュボードとWordPressの管理画面の両方で行う必要がある。
  • ログイン時の手間の増加:対象ユーザーは「Cloudflareの認証ページ」を通過した後、さらに「WordPressのログインページ」でログインする必要があり、ログイン手順が増える。

WordPressの管理画面をゼロトラスト化する手順

ここからは、実際にCloudflare Zero Trustの機能(Cloudflare Access)を用いて、WordPressの管理画面を保護する設定手順と、その動作検証の記録を残しました。

サーバーやプラグイン側のIP制限をOFFにする

Cloudflare Zero Trustの設定を始める前に、サーバー(.htaccessなど)やセキュリティプラグインで設定している「管理画面のIP制限」をOFFにします。

先に解除する理由としては、Cloudflareを経由すると、サーバー側には訪問者のIPアドレスではなく「CloudflareのIPアドレス」が伝わります。

既存のIP制限を有効にしたままにすると、Cloudflareからのアクセスが不正とみなされ、404エラーやログイン不可の不具合が発生します。

筆者もはじめにこの設定OFFをせず、Cloudflare Accessを導入したところ、ダッシュボード内の操作時に404エラーが発生しました。

IPブロックによる404エラー

Zero Trustの設定を行う前に、以下の機能が無効になっているか確認してください。

  • セキュリティプラグインの「IP制限」や「ホワイトリスト機能」
  • レンタルサーバーの管理画面にある「アクセス制限機能」

エックスサーバーの場合は、「WordPressセキュリティ設定」>「国外アクセス制限(国外のIPアドレス制限)」>「ダッシュボード アクセス制限(wp-admin、wp-login.phpへの国外からのアクセスを制限)」が該当します。

エックスサーバーのIPブロック機能

Cloudflare Zero Trust自体が強力なアクセス制限として機能するため、プラグインやサーバー側のIP制限と併用する必要はありません。

Accessポリシー(許可リスト)の作成

Accessポリシーは、設定したドア(検問所)を通れる「許可リスト」を決める機能です。「誰に」「どのような条件で」アクセスを許可するかを指定します。

設定するには、CloudflareのZero Trustのページにアクセスした状態で、左側の「ポリシー」>「ポリシーを追加する」の順にクリックします。

Cloudflare Accessのポリシー設定1

ポリシールールの「セレクターは…」から、導入のハードルが低い「メール(メールアドレスでのワンタイムピン認証)」を選択し、許可するメンバーのメールアドレスを入力します。

入力欄左下の「+ 含めるを追加 (OR)」をクリックすると、許可するメールアドレスの入力欄を増やすことができます。

Cloudflare Accessのポリシー設定2

画面右側では、以下の項目を設定します。

  • ポリシー名:ポリシー名は外部公開されないため、「管理者アクセス許可」などわかりやすい名称で問題なし。
  • アクション:今回は「(アクセスの)許可」を選択。
  • ポリシーセッション期間:一度認証した後、対象ユーザーが再度認証するまでの期間を設定できる。後述するアプリケーション設定でも期間を選択できるが、こちらで設定した期間が優先される。15分〜1ヶ月まで設定可能。

※ログインの手間を減らしたい場合は1週間や1ヶ月がおすすめ。

Cloudflare Accessのポリシー設定3

スクロールして最下部にある「ポリシーを保存」をクリックします。

Accessアプリケーション(保護設定)の手順

続いて、Zero Trustダッシュボードから、対象のURLを保護するルールを作成します。

Zero Trustダッシュボードの左メニューから「Access コントロール」>「アプリケーション」を開き、「アプリケーションを追加する」をクリックします。

Cloudflare Accessのアプリケーション設定1

「セルフホストとプライベート」タグを選択し、「セルフホストとプライベートで続行」をクリックします。

Cloudflare Accessのアプリケーション設定2

「アプリケーションの詳細」タブが選択されていることを確認し、任意で「+パブリックホスト名を追加」すると、指定できるページの入力欄を増やすことができます。

ただし、1アプリケーションあたり最大5個までしか登録できません。複数のドメインやパスを登録したい場合は、別途アプリケーションを新規作成する必要があります。

Cloudflare Accessのアプリケーション設定3

その後、入力欄に以下のような項目を入力します。

  • サブドメイン(任意):必要に応じて入力(空欄でも可)
  • ドメイン(必須):登録済みのドメインを選択
  • パス(※):末尾のスラッシュ(/)は入れずに、wp-login.php(ログインページ)、wp-admin (管理画面)、ログイン保護プラグインで変更したログインURLのスラッグなどを入力

※WordPressのテスト環境・社内ポータル等の非公開サイト全体に設定したい場合は、パスの入力は不要

スクロールして、「Accessポリシー」>「既存のポリシーを追加」から、作成したポリシーを選択します。

Cloudflare Accessのアプリケーション設定4

さらにスクロールすると、セッション期間を選択できます。前述したAccessポリシー側で期間を設定している場合はそちらが優先されますが、同じ期間に設定しておくと安心して運用できると思います。

Cloudflare Accessのアプリケーション設定5

その後、最下部の「保存」をクリックして完了です。

Cloudflare Accessの動作検証

設定完了後、意図した通りに動作するか検証を行いました。

動作検証1:未認証デバイスからのアクセス挙動

これまで使用していなかった別のブラウザ(シークレットウィンドウ)から、WordPressのログインURL(ドメイン/wp-login.php)にアクセスします。

すると、WordPressのログイン画面は表示されず、Cloudflareの認証画面(メールアドレス入力欄など)に自動的にリダイレクトされました。

Cloudflare Accessを導入したWordPressの検証1

メールアドレスを入力して送信し、受信メール内のコードを入力したら、アクセス制限しているページ(今回はログインページ)が開きました。

Cloudflare Accessを導入したWordPressの検証2

これにより、悪意のあるボットなどがWordPressのログイン画面に直接アクセスすることは不可能になります。

動作検証2:スマートフォン(外部回線)からのアクセス

モバイルデータ通信を利用し、直接スマートフォンからWordPressの管理画面へアクセスします。すると、IPアドレスが異なる環境からのアクセスでも、Cloudflareの認証画面が表示されました。

Cloudflare Accessを導入したWordPressの検証3

これで、メール認証を通過すれば問題なくログインできることを確認できました。

このように、Cloudflare Accessを活用することで、利便性を損なうことなく強固なアクセス制御を実現できます。

よくある質問(FAQ)

Q. セキュリティプラグインと併用したら404エラーが出ました。

A. サーバーやプラグイン側の「IP制限機能」が原因の可能性が高いです。

Cloudflareを経由すると、アクセス元のIPアドレスがCloudflareのものに変わります。そのため、プラグインやレンタルサーバー側で設定しているIP制限に引っかかり、404エラーとして弾かれてしまいます。

Cloudflare Zero Trustの設定を行う前に、既存のIP制限機能はOFFにしてください。

Q. WordPressのセキュリティプラグインは外したほうが良いですか?

A. 機能を分けて「併用」するのがおすすめです。

Cloudflare Zero Trustは「入り口での防御」に非常に強力ですが、ログイン履歴の記録や、ファイルの改ざん検知といった機能はありません。

入り口のアクセス制限はCloudflareに任せ、内部の監視はプラグインに任せる(プラグイン側のIP制限はOFFにする)という多層防御の形にすると、より安全なサイト運営が可能です。

Q. Cloudflare Accessのセッション期間はどれくらいがおすすめですか?

A. ログイン認証の手間を減らしたい場合は「1ヶ月」、セキュリティ重視の場合は「24時間」を選ぶのがおすすめです。

なお、設定箇所が「アプリケーション側」と「ポリシー側」の2つありますが、ポリシー側が優先されます。

Q. どのようなサイトでも同じ設定で大丈夫ですか?

A. サイトの運用形態によって、適した設定範囲が異なります。以下を目安にしてください。

  • テスト環境・社内ポータル等の非公開サイト:サイト全体(ドメイン全体)に設定して、関係者以外へのアクセスを完全に遮断。
  • ECサイト・会員制サイト:管理画面(wp-admin)のみ。Cloudflareの認証も発生すると、購入者や会員の利便性が大きく下がる。
  • 複数人で運営するメディア:管理画面(wp-admin)とログインページ(wp-login.php)の両方に設定。投稿者のCloudflare認証の回数を減らすため、セッション期間は長めの設定がおすすめ。

まとめ

Cloudflare Zero TrustとWordPressのセキュリティプラグインを組み合わせることで、管理画面への不正アクセスを防ぐ多層防御が完成します。

導入する際は、機能の競合によるログインエラーを避けるため、事前にサーバーやプラグインのIP制限を解除しておきましょう。

複数人での運営や社内ポータルなど、それぞれの運用形態に合わせた設定を取り入れ、安全なサイト運営に役立ててください。

自分のサイトで"記事"が売れる
WordPressテーマ
WordPressテーマ「PANDORA」
レイアウト自由自在なブログ・メディアを構築。
WordPressテーマ「VOYAGE」
読まれるメディアで記事を販売しよう。
WordPressテーマ「HARVES」
ネットショップで記事も販売できる。
WordPressテーマ「BLAZE」
モノ・サービスを売り続けるサイト。