4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IBM CIS(Cloud Internet Services)でカスタムのエラーページを作成する

Posted at

#1. はじめに

IBM CIS(Cloud Internet Services)ではエラーページはデフォルトで準備されています。例えば以下はIP Blockをされた時のエラーページです。

image.png

でも、エラーページを個別に用意したいということもありますよね?最近、CISにエラーページをカスタムで作成する機能が実装されたので、この記事でご紹介いたします。なお、

  • この機能はStandard/Enterpriseの両方のプランで利用可能です。
  • ドキュメント(コマンド解説?)はこちらです。

#2. ibmcloudコマンドラインの導入・更新

CISのPluginとしてv1.4.0で動作確認しています。
(本機能はv1.4.0から実装された機能です)

# ibmcloud update

# ibmcloud plugin install cis

# ibmcloud plugin list
インストール済みプラグインをリストしています...

プラグイン名                       バージョン   状況
cloud-internet-services            1.4.0

# ibmcloud cis |grep custom
     custom-page-update           Update a specific custom page.
     custom-page                  Retrieve a specific custom page.
     custom-pages                 Retrieve a list of currently existing custom pages.

# ibmcloud cis custom-page-update -help
名前:
   cloud-internet-services custom-page-update - Update a specific custom page.

使用法:
   ibmcloud cis custom-page-update PAGE_ID PAGE_URL [-d --domain DNS_DOMAIN_ID] [-i, --instance INSTANCE_NAME] [--output FORMAT]

引数:
   PAGE_ID The name of the Custom Page type. 有効な値: "basic_challenge", "country_challenge", "ip_block", "ratelimit_block", "serve_stale_content", "under_attack", "waf_block", "waf_challenge", "1000_errors", "500_errors".
   PAGE_URL A URL that is associated with the Custom Page. E.g. "http://www.example.com/example.html". Value "default" means to use the default page.

オプション:
   -d value, --domain value    DNS ドメイン ID。
   -i value, --instance value  インスタンス名。 設定しない場合、'ibmcloud cis instance-set INSTANCE' によって指定されるコンテキスト・インスタンスが使用されます。
   --output value              出力フォーマットを指定します。現時点では JSON のみがサポートされます。

#3. エラーページの作成
エラー発生時に表示するエラーページを作成しておきます。今回は以下を利用することにします。
http://<My CIS Domain>/ipblock.html

#4. カスタムエラーページの設定

カスタムエラーページを作成するためには、Instance名やドメインIDが必要です。以下のコマンドで確認してください。

# ibmcloud cis instances
サービス 'internet-svcs' のサービス・インスタンスを検索中...
OK
名前                        ID                                                                                                                     ロケーション   状態     サービス名
CIS-Enterprise-Usage1       crn:v1:bluemix:public:internet-svcs:global:a/039dbe6794084c7cb514a276dd2345da:cf4d8b04-b49e-4bf0-a99d-9303bba2cd90::   global         active   internet-svcs

# ibmcloud cis instance-set "CIS-Enterprise-Usage1"
コンテキスト・インスタンスを 'CIS-Enterprise-Usage1' に設定中...
OK
コンテキスト・サービス・インスタンスは正常に設定されました。

# ibmcloud cis domains
サービス・インスタンス 'CIS-Enterprise-Usage1' のドメインをリスト中...
OK
ID                                 名前                   状況         一時停止
a4135402d38fff24e32ef13c82c1ab4a   <My CIS Domain>       アクティブ   false

上記の情報を元に、カスタムエラーページを設定します。

# ibmcloud cis custom-page-update "ip_block" http://<My CIS Domain>/ipblock.html -d a4135402d38fff24e32ef13c82c1ab4a
Updating custom-page '{{.PageId}}' for domain '{{.Domain}}' ...
OK

ID                     ip_block
状態                   customized
説明                   IP or IP range block
URL                    http://<My CIS Domain>/ipblock.html
Preview Default Page   http://cloudflarepreview.com/preview-cpage?act=preview&target=block:ip-ban
Required Tokens        該当なし
作成日                 2019-04-18T01:39:33.766116Z
変更日                 2019-04-18T01:39:33.766116Z

以下のコマンドでも、状態defaultからcustomizedに変更され、URLとして指定したアドレスが定義されていることがわかります。

# ibmcloud cis custom-pages
(途中抜粋)
ID                     country_challenge
状態                   default
説明                   Country Challenge
URL                    該当なし
Preview Default Page   http://cloudflarepreview.com/preview-cpage?act=preview&target=block:country-captcha
Required Tokens        ::CAPTCHA_BOX::
作成日                 該当なし
変更日                 該当なし

ID                     ip_block
状態                   customized
説明                   IP or IP range block
URL                    http://<My CIS Domain>/ipblock.html
Preview Default Page   http://cloudflarepreview.com/preview-cpage?act=preview&target=block:ip-ban
Required Tokens        該当なし
作成日                 2019-04-18T01:39:33.766116Z
変更日                 2019-04-18T01:39:33.766116Z

(途中抜粋)

#5. エラーページの確認
わざとIP Firewallで引っかかるようにしてアクセスしてみると・・・ちゃんと表示されました。
image.png

元に戻す方法

エラーページのURLの代わりに、defaultというキーワードを使えば元に戻せます。

# ibmcloud cis custom-page-update "ip_block" default -d a4135402d38fff24e32ef13c82c1ab4a
Updating custom-page '{{.PageId}}' for domain '{{.Domain}}' ...
OK

ID                     ip_block
状態                   default
説明                   IP or IP range block
URL                    該当なし
Preview Default Page   http://cloudflarepreview.com/preview-cpage?act=preview&target=block:ip-ban
Required Tokens        該当なし
作成日                 2019-04-18T01:39:33.766116Z
変更日                 2019-04-18T01:57:54.303901Z
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?