導入
Cloudflareは、ウェブサイトの逆プロキシとして機能し、コンテンツ配信ネットワーク(CDN)および分散DNSサービスを提供する企業です。Cloudflareの無料および有料サービスは、ウェブサイトのセキュリティ、スピード、可用性をさまざまな方法で向上させるために使用できます。
このチュートリアルでは、Cloudflareの無料ティアサービスを使用して、継続的なHTTPベースの分散型サービス拒否(DDoS)攻撃からウェブサーバーを保護する方法について学びます。これは、「攻撃を受けていますモード」を有効にすることで実現できます。このセキュリティモードでは、接続の正当性を検証するために中間ページを表示し、それをウェブサーバーに渡す前に接続を処理します。
前提条件
このチュートリアルでは、以下が必要です:
- A web server
- A registered domain that points to your web server
- ドメインを発行したドメイン登録業者のコントロールパネルへのアクセス
続行する前にCloudflareアカウントにサインアップする必要があります。
注意:このチュートリアルでは、Cloudflareの名前サーバーの使用が必要です。
ステップ1 – Cloudflareを使用するためのドメインの設定
Cloudflareの機能を使用する前に、ドメインをCloudflareのDNSに設定する必要があります。
まだログインしていない場合は、Cloudflareにログインしてください。
ウェブサイトを追加し、DNSレコードをスキャンする
ログインすると、Cloudflareで始めるページに移動します。ここで、ウェブサイトをCloudflareに追加するために、ページの上部にあるサイトを追加ボタンをクリックする必要があります:
Cloudflareを使用するドメイン名を入力し、サイトを追加ボタンをクリックします。次に、次のようなページに移動するはずです:
このチュートリアルでは、無料プランオプションを選択します。追加のCloudflare機能が必要なため、異なるプランを支払いたい場合は、自由に行ってください。その後、続行ボタンをクリックします。
次のページでは、サイトのDNSレコードスキャンの結果が表示されます。Cloudflareがドメインへのリクエストを解決するために使用する既存のDNSレコードがすべて存在していることを確認してください。この例では、ドメインとしてflippeddev.com
を使用しました。
注意: ウェブサーバーを指すAおよびCNAMEレコードについて、ステータス列はオレンジの雲と矢印が通っている表示にする必要があります。これにより、トラフィックがサーバーに到達する前にCloudflareの逆プロキシを経由します。
ネームサーバーの変更
次のページには削除する必要のあるネームサーバーと追加する必要のあるCloudflareネームサーバーが表示されます。以下はそのページの例です。
ドメインのネームサーバーを変更するには、ドメインレジストラのコントロールパネルにログインし、Cloudflareが提示したDNSの変更を行う必要があります。たとえば、GoogleやNameCheapなどのレジストラを通じてドメインを購入した場合、該当するレジストラのコントロールパネルにログインして変更を行う必要があります。
プロセスは特定のドメインレジストラに基づいて異なります。わからない場合は、一般的なドメインレジストラからDigitalOceanのネームサーバーを指す方法に記載されている手順と類似していますが、DigitalOceanの代わりにCloudflareのネームサーバーを使用します。
この例では、ドメインはDigitalOceanのネームサーバーを使用しており、それをCloudflareのDNSに更新する必要があります。
名前サーバーを変更し終えたら、続行ボタンをクリックしてください。名前サーバーの切り替えに最大で24時間かかる場合がありますが、通常は数分で完了します。
名前サーバーの更新を待つ
名前サーバーの更新には予測できない時間がかかるため、次にこのページが表示されることがあります:
保留ステータスは、Cloudflare が指定した名前サーバー(例:olga.ns.Cloudflare.com
および rob.ns.Cloudflare.com
)への更新を待っていることを意味します。ドメインの名前サーバーを変更した場合、必要なのは待つだけで、後で アクティブステータスを確認することです。 名前サーバーを再チェック ボタンをクリックするか、Cloudflare ダッシュボードに移動すると、名前サーバーが更新されているかどうかを確認します。
Cloudflare がアクティブ
名前サーバーが更新されると、ドメインは Cloudflare の DNS を使用していることが表示され、アクティブステータスが表示されます。
これは、Cloudflareがウェブサイトのリバースプロキシとして機能し、登録した価格帯に応じて利用可能な機能にアクセスできることを意味します。このチュートリアルでは、私たちが使用しているように、無料の価格帯を使用している場合、サイトのセキュリティ、速度、可用性を向上させるいくつかの機能にアクセスできます。
このチュートリアルではすべての機能をカバーしませんが、CDN、SSL、静的コンテンツのキャッシング、ファイアウォール(トラフィックがサーバーに到達する前)、トラフィック解析ツールなどが含まれます。
また、ドメインのすぐ下にある設定の要約には、現在のセキュリティレベル(デフォルトでは中程度)とその他の情報が表示されます。
続行する前に、Cloudflareを最大限に活用するために、このガイドに従ってください:すべてのCloudflareユーザーにおすすめの最初のステップ。これは、Cloudflareが許可することが望ましいサービスからの正当な接続を許可し、WebサーバーのログにCloudflareのリバースプロキシIPアドレスではなく、元の訪問者のIPアドレスが表示されるようにするために重要です。
設定が完了したら、CloudflareファイアウォールのI’m Under Attack Mode設定を見てみましょう。
ステップ2 – I’m Under Attack Modeを有効にする
デフォルトでは、CloudflareのファイアウォールセキュリティはMediumに設定されています。これにより、中程度の脅威と評価された訪問者には、サイトに続く前にチャレンジページが表示されます。ただし、サイトがDDoS攻撃の標的にされている場合、サイトを稼働させ続けるにはそれだけでは不十分かもしれません。この場合、I’m Under Attack Modeが適切な場合があります。
このモードを有効にすると、ウェブサイトへのすべての訪問者が、ブラウザのチェックを実行し、約5秒間訪問者を遅延させるインタースティシャルページが表示されます。それは次のようになります:
チェックが合格した場合、訪問者はウェブサイトに通過することが許可されます。悪意のある訪問者がサイトに接続するのを防止し、遅延させることの組み合わせは、しばしばDDoS攻撃中でもサイトを稼働させ続けるのに十分です。
注意:サイトへの訪問者は、インタースティシャルページを通過するためにJavaScriptとCookieを有効にする必要があります。これが受け入れられない場合は、代わりに「High」ファイアウォールセキュリティ設定を使用することを検討してください。
I’m Under Attack Modeを有効にするのは、サイトがDDoS攻撃の被害に遭っている場合にのみ行うことを忘れないでください。それ以外の場合は、通常のユーザーが理由なくウェブサイトにアクセスするのを遅延させないようにオフにする必要があります。
I’m Under Attack Modeを有効にする方法
「I’m Under Attackモード」を有効にするには、簡単な方法はCloudflareの概要ページ(デフォルトページ)に移動し、右のサイドバーでオンに切り替えることです:
セキュリティ設定はすぐに「I’m Under Attack」ステータスに切り替わります。これにより、サイトへの訪問者は前述のCloudflareの中間ページが表示されます。
「I’m Under Attackモード」の無効化方法
「I’m Under Attackモード」はDDoS攻撃の緊急時にのみ使用するべきですので、攻撃を受けていない場合は無効にしてください。そのためには、Cloudflareの概要ページに移動し、それをオフにします。すると、以下のようなモーダルが表示されます:
次に、切り替えたいセキュリティレベルを選択します。デフォルトで一般的に推奨されるモードは「Medium」です。Mediumに切り替わると、サイトは再び「アクティブ」なステータスに戻り、DDoS保護ページは無効になります。
まとめ
現在、ウェブサイトがCloudflareを使用しているため、HTTPベースのDDoS攻撃から簡単に保護するための別のツールがあります。また、Cloudflareが提供するさまざまなツールもあり、無料のSSL証明書などの設定に興味があるかもしれません。そのため、オプションを探索し、あなたにとって役立つものを見つけることをお勧めします。
Cloudflareを使用してサイトを保護する方法については、当社のHow To Host a Website Using Cloudflare and Nginx on Ubuntu 22.04チュートリアルで詳細を学ぶことができます。