【小ネタ】Cloudflare Zero Trustでブロックページをカスタマイズしてみた。

どうもさいちゃんです。本ブログはクラスメソッド DevOps・セキュリティ Advent Calendar 2023の17日目の記事です。今回はCloudflare Zero Trustのポリシーによってページがブロックされた際に表示するカスタムブロックページの作成方法についてご紹介します。
2023.12.17

Cloudflare Zero Trustの主要な機能についての紹介ブログが多くありますが、今回は知っていると役立つ「実はこんな機能もありますよ!」という個人的推し機能を紹介していきたいと思います。

カスタムブロックページの必要性

Cloudflare Zero TrustにはWebページをフィルタリングするためのポリシーがいくつか存在しています。
このポリシーに従って、ページがブロックされた場合、組織のユーザーにはデフォルトのエラーページが返され、Webサイトにアクセスが出来なくなります。

しかし、このエラーページを確認してすぐに「Cloudflareが後ろで動いているからきっとポリシーでブロックされたんだろう。」と納得してくれるユーザーばかりではありません。特に導入して間もない場合には「インターネット接続が機能していないのでは?」と不安になり、情シスに問い合わせがくる場合も考えられます。
こういった対応も、数が多くなってくるとなかなか大変になってきます。

このような対応に割く時間をを出来るだけ減らし、ブロックされたページに関する問い合わせを一括管理するためにカスタムブロックページを作成しておくという方法をご紹介します。

やってみた

前提条件

カスタムブロックページを作成し、ブロックされたドメインのURLとして表示させるには、デバイスにCloudflareの証明書がインストールされている必要があります。

今回作成するブロックページはポリシーの種類(DNS、HTTP)に関係なくユーザがブロックページにアクセスすると表示されるようになります。

カスタムブロックページの作成

Cloudflare Zero Trustのコンソールから、Setting > Custom Pages へと移動します。 

Block pageのContomaizeを選択します。 

すると下記のようなページに移動します。 

左にはカスタマイズ出来る項目が表示され、右側ではカスタムページのプレビューを確認することが出来ます。

カスタマイズできる項目は以下の通りです。

  • Your Organization’s name - 表示させる組織名
  • Logo URL - ブロックページに表示するロゴ画像を追加することが可能です。使用できるファイルの種類は、SVG、PNG、JPEG、GIFとなっています。
  • Header text - ヘッダーテキストをカスタムすることが可能です。
  • Message - 上記テキストの他にメッセージを含めることが可能です。今回は組織のポリシーによってサイトがブロックされた旨を記載しています。
  • Admin email address - ブロックページに関しての問い合わせ先(管理者のメールアドレス)を記載します。
  • Emaile subjedt line - ブロックページに関しての問い合わせメールの件名を指定することが可能です。
  • Background color - ブロックページのカラーを選択可能です。

すべて記入したらSaveしましょう。

確認

では実際にカスタムページが表示されるか確認していきます。

適当にブロックポリシーを作成します。今回はexample.comをブロックします。 

先ほど作成したブロックページが適用されていることを確認します。 

ではexample.comへアクセスしてみます。 

しっかりと先ほど作成したブロックページが表示されました。 ブロックされたサイトのURLと先ほど指定したメッセージが表示されています。

Contact your administratorという部分をクリックすると、自動的に先ほど設定したAdminのメールアドレスに、設定した問い合わせメールの件名で問い合わせができるようになっています。

まとめ

今回はCloudflare Zero Trustでブロックページをカスタムする方法についてご紹介しました。 特に組織の規模が大きい場合や、WARPを導入して間もない場合はユーザーの混乱を防ぐためにもこのブロックページの設定を行うと良いと思います。

Cloudflare Zero Trust個人的推し機能紹介のブログは書いていて楽しかったので、これからもシリーズ化していきたいと考えています。