CloudflareのCDNにはDDoS対策が適用されますが、本当にCDNを利用するだけで良いのでしょうか?
DDoS攻撃の方法には下記の3種類があります。
1.DNSサーバに対する攻撃
これはURLで大量のデータを送り付ける攻撃です。
CloudflareのCDNの設定方法には[フルセットアップ]と[CNAMEセットアップ]があります。
[フルセットアップ]
CoudflareのDNSサーバにCDNを設定する方法なので、[DNSに対するDDoS攻撃]に対応できます。
[CNAMEセットアップ]
この機能は[Business]または[Enterprise]版の機能なので、無料版にはありません。
設定方法は
・Cloudflare側でCDNの受け皿を作成する。
・現在利用している権威DNSサーバにCloudflareのCDNをCNAMEで指定する。
これによりCDN機能だけをCloudflareに任せる方法です。
よってCloudflareのDNSを利用していないので[DNSに対するDDoS攻撃]には対応できません。
CDNが上記のどちらでセットアップされているか?は下記の方法で確認できます。
①サイトのURLを[IPアドレス検索]で検索すると、ISPに[Cloudflare]が表示されれば、CloudflareのCDNが利用されている事がわかります。
②次にサイトのURLを[DNS情報検索]で検索すると、設定されているレコードが表示されます。
ここに表示されている[A]や[AAAA]レコードは総てCloudflareのIPアドレスです。
次に[CNAME]レコードを調べます。
・[CNAME]レコードがなければ[フルセットアップ]です。
・[CNAME]レコードが[サイトのURL.cdn.cloudflare.net]で定義されていれば[CNAMEセットアップ]です。
メモ
官公庁や都道府県市町村のHPでもCDNはかなり普及してきています。
その中にCloudflareも利用されていますが、残念ながら総てがCNAME接続でした。
この接続方法はDNSサーバに対するDDoS対策がありません。
[利用しているCDN]のサンプルサイトで[防衛省]と[ウクライナ国総省]の違いを確認して下さい。
CDNは自分で設定するのが一番確実ですが、Cloudflareのパートナーを利用する場合は注意が必要です。
2.グローバルIPに対する攻撃
これはグローバルIPで大量のデータを送り付ける攻撃です。
[フルセットアップ]も[CNAMEセットアップ]もCDNから返されるグローバルIPは、CloudflareのIPアドレスなのでDDoS対策ができます。
3.オリジンIPに対する攻撃
これはオリジンIPで大量のデータを送り付ける攻撃です。
これが一番厄介な攻撃です。
CloudflareのCDNを利用するとWebサーバの[オリジンIP]は外部からは判りません。
しかし世の中には[Shodan]や[Censys]等のツールがあり、これらを利用するとインターネット上にある色々な情報からオリジンIPを探すこともできます。
私のケースでは過去に使っていたSSL証明書からオリジンIPを知りえる事が可能である事が判りました。
そこでオリジンIPが判ったとしてもDDoS攻撃を受けなくする対策が必要になります。
①CloudflareとWebサーバ間の通信のIPアドレスを限定する方法
CloudflareのDNSにWebサーバをIPv4(Aレコード)又はIPv6(AAAAレコード)で登録するとCloudflareとWebサーバ間はCloudflareのIPアドレスで会話しています。
そこでファイアウオールにCloudflareで利用するIPアドレスだけ通信を許可する方法でDDoS攻撃をブロックできます。
Cloudflareが利用するIPアドレスは[https://www.cloudflare.com/ja-jp/ips/]で公開されています。
但し、この方法は変更履歴から判るようにIPアドレスは変わるので定期メンテが必要になります。
しかしEnterprise版を利用している場合はこの通信に利用するIPアドレスをユーザ固有のものに限定する事ができます。
よってEnterprise版の場合は、このIPアドレスをファイアウオールに設定する事でDDoS攻撃をブロックできます。
②CloudflareとWebサーバ間の通信をCloudflareトンネルで接続する方法
Cloudflareトンネルによる接続はポート番号の80/443を利用しません。
よってファイアウオールに80/443をブロックする設定でDDoS攻撃をブロックできます。
この方法は無償版でも利用できるので私はこの方法を利用しています。
ご参考
私のWebサーバはCloudflareのCDNを[フルセットアップ]で利用し、CloudflareとWebサーバ間はトンネル接続としています。
尚、ファイアウオールの設定は80/443だけでなく、総てのポート番号をブロックしています。
設定方法と確認方法は[ポートのブロック]を確認して下さい。
その結果、DDoS攻撃だけでなく総ての悪意がある攻撃を行えない様にしています。
そうなると他の社内リソースにもインターネットからアクセスできなくなると思われますが、そこに登場するのがCloudflareのゼロトラストです。
これを利用し社内のローカルネットワークをゼロトラストにトンネル接続する事により、何処からでも社内リソースにアクセスするできる様にしています。
またWAFはCloudflareのデフォルトルールで守り、WordPressの管理者モードのブロックはWAFのカスタマイズではなく、これもCloudflareのゼロトラストのアクセスルールでブロックしています。