Bluemix
SoftLayer
ibmcloud

IBM Cloud Internet Services (CIS)を使ってみた(オーダー・初期設定)

はじめに

Cloudflare社とのパートナーシップにより、IBM CloudからCloudflareのインターネット関連サービス(DNS/DDoS防御/WAF/グローバルロードバランシング等)をオーダーし、利用できるようになりました。IBM Cloud Internet Services (CIS)というサービス名での提供となります。

https://www.ibm.com/blogs/cloud-computing/2018/03/security-performance-ibm-cloudflare/

https://console.bluemix.net/catalog/services/internet-services

https://console.bluemix.net/docs/infrastructure/cis/about.html#about-ibm-cloud-internet-services

現在、Free Early Accessとして、2018年5月末までCISの機能を無料で利用可能ですので、早速試してみました。

オーダー

下記のStep 1の手順となります。
https://console.bluemix.net/docs/infrastructure/cis/getting-started.html

IBM Cloudカタログのネットワークカテゴリに、Internet Servicesがあるので、ここからオーダーします。

image.png

image.png

2018年5月末まで、Early AccessとしてCISの機能を無料で利用可能です!

image.png

作成を押下すると、数分のうちに、ダッシュボード上でInternet Servicesが利用可能になります。(無料のEarly Accessでは、1アカウントにつき、1つのみオーダーできます)

image.png

ドメイン追加

まず、CISに自身が保有するドメインを追加します。追加するドメインは事前にレジストラに登録して、保有しておく必要があります。IBM Cloud経由でもドメインを登録可能です。

ドメイン追加の手順は下記のStep 2の内容となります。(無料のEarly Accessでは、1つのドメインのみ追加できます)
https://console.bluemix.net/docs/infrastructure/cis/getting-started.html

image.png

次のStep 3が終わるまで、ドメインはpendingの状態となります。

image.png

レジストラのNSレコードをCISのものに変更

ドメインを登録すると、CISで使うためのNSレコードが提供されますので、自身のドメインのNSレコードとして登録します。下記のStep 3の内容となります。
https://console.bluemix.net/docs/infrastructure/cis/getting-started.html

image.png

この作業は、自身のドメインを登録しているレジストラ(またはDNSプロバイダ)の管理画面での作業となります。
今回は、IBM Cloud IaaSを通して取得したドメインのため、管理ポータル画面でNSレコードを変更します。(もし外部レジストラでドメイン取得している場合は、そちらの管理画面での作業となります。)

image.png

image.png

image.png

NSレコードの変更が反映されると、CIS側のドメインのステータスがActiveに変わります。
最大で24時間程度かかると書いてありましたが、今回は1時間程度で反映されました。

image.png

次に、CISのサービスを有効にするため、Service Modeを、Defense Modeにします。

image.png

image.png

ここでPause Serviceを選ぶと、CISの機能はバイパスされる状態になります。

image.png

CISのDNSに自ドメインを設定

CISのDNSに、自身のドメインのレコードを登録します。下記のStep 4の内容となります。
https://console.bluemix.net/docs/infrastructure/cis/getting-started.html

今回、オリジンは、別の記事で作成したIBM Cloud Load Balancer(と、その配下の実際のウェブサーバー)としたので、CNAMEとして、ロードバランサーのFQDNを設定しました。もちろんIBM Cloud Load Balancerを使わない構成も可能で、その場合は、普通にウェブサーバーのグローバルIPをAレコードとして登録します。

image.png

この時点で、自ドメインの名前解決先はCISのIPアドレスになります。

$ nslookup www.tama0921.com
Server:     x.x.x.x
Address:    x.x.x.x#53

Non-authoritative answer:
Name:   www.tama0921.com
Address: 104.20.30.221
Name:   www.tama0921.com
Address: 104.20.29.221

$ 

上記IPアドレスのwhois情報を見ると、CloudflareのIPアドレスとして登録されています。
image.png

ブラウザからアクセスしてみる

ブラウザからアクセスすると、アクセスの最初の1〜2秒だけ、下記の画面が出るようになります。
CloudflareのDDoSプロテクションを経由していることが分かります。

image.png

その後すぐに、バックエンドのウェブサーバーのコンテンツが表示されます。

image.png

ウェブサーバーのログでX-Forwarded-Forを記録するよう設定することで、下記の様に、エンドユーザーから、Cloudflare、IBM Cloud Load Balancerを経由してアクセスが来ていることが確認できます。

219.xx.xx.147, 103.xx.xx.239 10.xx.xx.86 - - [14/Apr/2018:13:13:44 -0500] "GET / HTTP/1.1" 304 - "http://www.tama0921.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Firefox/52.0"

ちなみに、オリジンサーバー側の設定をミスってエラーになった時は、下記のような画面となりました。CIS(Cloudflare)までは問題なく、オリジンに問題があることが分かります。
image.png

以上で、自身のドメインにCIS経由でアクセスできるようになりました。

これまで、DDoS防御やWAFの機能を自前で用意しようとすると、技術的な難易度も高く、機器のコストや設定のための工数も、高額になっていたと思います。このように非常に簡単に、自身のウェブサーバーのセキュリティを高められるのはクラウドサービスの魅力の1つと思います。

下記に、CISのTLSオプションについて書きました。
https://qiita.com/y_tama/items/f6bddda9630052902e25