みなさんこんにちは!
デジタル創作サークルUniProjectのあかつきゆいとです。
私のモットーとして、如何に無料でやり切るかというのがあるのですが、今回はCloudflareの無料枠をめいいっぱい使い切ってみました。
セキュリティの構築には十分かと思います。
Cloudflareの無料枠とは1
Cloudflareは無料枠でも結構できることがあります。
- DDoS対策
- SSL証明書
- CDN
- DNS
- etc...
と、結構あることがわかります。
まずはCloudflareにドメインを登録してみる
まずは登録するところから始めましょう。
アカウントは適当に作ってもらって、ドメイン登録から始めます。
ドメインの登録は、Webサイトのところからできます。
Add Domainを押して、ドメインを入力します。
Quick scan for DNS recordsで今設定されているDNSレコードをある程度自動で移行してくれます。
次にプランですが、Freeで十分かと思います。
趣味で使う分にはFreeでいいでしょう。
そうしたら、DNSサーバーをCloudflareのものに設定するよう指示があるので、設定します。
DNSレコードのProxyをONにする
DNSレコードの編集画面に行きます。
そこで、ProxyをONにします。
これだけでDDoSなどをある程度防いでくれます。
これはなぜか?
それは、CloudflareのDNSで返されるA、AAAAレコードがCloudflareのリバースプロキシサーバーになり、Cloudflareのサーバーを介すようになるので、そこである程度攻撃は防いでくれるのです。
逆に、Cloudflareを通してはいけないサーバー(メールサーバーや80番、443番以外を使用するもの)はこの設定をONにしてはなりません。
UnderAttack
これは何か。
CloudflareのProxyのセキュリティレベルです。
最高の設定ですが、何をしてくれるかというと、全てのリクエストにCAPTCHA認証を設けます。
何かのダッシュボードやすでに現在進行形でDDoSを受けている場合などに有効です。
サイト全体に設定する
OverviewのQuickAcctionからサイト全体に設定できます。
また、これは一時的に攻撃から守る際に便利で、ずっと有効化するならば、Security→Settingsからセキュリティレベルで変更できます。
セキュリティタブ
先ほども紹介したUnderAttackモード以外に、Securityタブにはいろいろなものがあります。
ブラウザ整合性チェック
これはBotなどのUserAgentを判別し、ブロックするものです。
安全でない JavaScript ライブラリを置き換える
これはサイトに使用されている脆弱性のあるJavaScriptを勝手に置き換えてくれます。
まぁ、なんとも、優秀ですね。
これが完璧というわけではないので、開発者側ももちろん気をつけましょう。
注意点
あとは、CloudflareのProxyが使えないケースをご紹介します。
これに当てはまる場合は、そのサブドメインはProxyを有効化しないほうがいいでしょう。
HTTP/HTTPS以外を使用する、もしくは80/443以外を使用する場合
CloudflareはHTTPもしくはHTTPSで80か443ポートしか使えません。
なので、他のポートやプロトコルを使用する場合は使用できません。(有料プランなら可能です)
ただし、gRPCは使用可能です。
Networkタブから設定できます。
2階層以上のサブドメイン
CloudflareのプロキシのSSL証明書は無料プランでは1階層のサブドメインまでしか発行できません。
よって、Proxyは有効にするとSSL証明書エラーが発生します。
アップロードが多いサイト
有料プランでアップグレードできますが、一回のアップロード容量の制限は100MBまでです。
ぼくはここでハマりました。
DockerのContainerRegistryなどでは普通に引っかかるので、無効化しましょう。
オリジンサーバーでSSL必須にしない
SSLに無理やりリダイレクトしていると、Cloudflareが80番をプロキシするので、httpsにアクセスしてもhttpsにリダイレクトするループが発生します。
これも結構ハマりました()
SSLも使用可能にしておけば、後でCloudflareが自動判別してオリジンサーバーとCloudflareの間もSSLで暗号化してくれます。
まとめ
状況によりけりですが、CloudflareはDDoSや各種攻撃からある程度守ってくれる優れものです。
無料プランでもこれだけのことができるのはかなり大きいと思います。
ぜひ皆さんも設定してみましょう!