Cloudflare Under Attack Modeを試す。
今日はCloudflareの対DDoS攻撃対策サービスの一つであるUnder Attack Modeを試します。
Under Attack Mode とは
CloudflareでDNS Proxyモードで運用されているWebサイトに対して、Layer7のDDoS軽減策を提供するものです。アクセスを元判別し、ブラウザかどうかを判断し、正しいリクエスト元からのアクセスのみWebサイトを表示されます。
このモードは、WebサイトがDDoS攻撃を受けていることが疑われるときに緊急用にオンにする物であり、常時使うことをお勧めしていないことに注意してください。設定方法は非常に単純で緊急時にトグルをオンにするのみです。トグルは各ゾーンのOverview画面の右側にあります。

オンにするとウェブサイトへアクセスを行った際に、アクセス元を判別する機能が有効化されたサイトが表示され、ブラウザからのアクセスであると判断された場合のみ、目的のウェブサイトへ遷移します。デフォルトではこの画面はCloudflare内部でホスティングされており、何か専用のHTMLを準備する必要はありません。ただしそのサイトをカスタマイズすることも可能で、その手順は後述します。
トグルをオンにするとUnder Attack Modeが有効化されます。そうするとアクセスした際に一瞬以下が表示されます。

Turnstileと同じものが表示され、自動認証モード(TurnstileでいうManagedモード)として、ブラウザから正しくアクセスを行って入れば自動でウェブサイトへ遷移します。
仮にアクセスしたブラウザが出力するHTTPヘッダーなどが異常だった場合を見てみます。ModHeaderというChromeプラグインを使ってHTTPヘッダを書き換えます。

そうすると以下のエラー画面に遷移します。

判別画面のカスタマイズ
アクセス元を判別するHTML画面は、デフォルトではCloudflareでホスティングされています。一瞬しか表示されませんが、ユーザーの目には留まるため、そのデザインが気になる場合もあります。その場合以下の手順でカスタマイズが可能です。
まずオリジンのサイトに以下のHTMLを作成します。名前は何でもいいですがcustompage.htmlとしておきましょう。
<html>
<head>this is the test custome page fo under attack</head>
<body>
::::CAPTCHA_BOX::::
</body>
</html>
Cloudflare経由で見られるかを確認しておきます。

このHTMLは100Byte以上である必要があります。
<head>this is the test custome page fo under attack</head>
として無駄にバイト数を増やしました。
::::CAPTCHA_BOX::::
はCloudflareの予約関数みたいなもので、CAPCHATとなりますが、ほとんどの場合CAPTCHAを表示させない例の機能が動作します。

Management Consoleのトップ画面、左ペインのManage Accountをクリックし、Configurationをさらにクリックします。


そしてCustome Pagesをクリックします。

Custome Pagesボタンを押します。

先ほどのURLを入力しPublishを押します。
その後Previewを押します。

あとは普通にアクセスすればカスタムページが表示されます。
Discussion