CloudflareのDNSがサイバー攻撃からサーバーを守ってくれる仕組み
DNSサービスは色々あるし、なんなら自前サーバーでDNS運用することもできます。
ただ、僕は最近はCloudflareのDNSを使うことが多いです。。
理由は、CloudflareのDNSサービスを使うと単に名前解決するだけではなく、オリジンサーバーへのサイバー攻撃を遮断して守ってくれるからです。
通常、DNSはクライアントからの問い合わせに対してIPアドレス等を返すだけであり、そこにオリジンサーバーを守る仕組みはあんまり無いです。
ではCloudflareのDNSは何が違うかというと、問い合わせに対して返すIPアドレスがオリジンサーバー(Webサーバー)のIPアドレスではなく、Cloudflare自身のエッジロケーションのIPアドレスになるのです。
言葉だとわかりにくいので画像で見てみます。
まずは通常のDNSのトラフィックの流れです。CloudflareでもDNSのレコード菅頼画面で「プロキシ」をOFFにすると同じ動きになります。
これは特に珍しくもない、普通のDNSのフローですよね。
次にCloudflare DNSサービスで「プロキシ」をONにした場合です。
この絵の通り、「プロキシ」をONにすると、ユーザー(ブラウザ)とオリジンサーバーの間に、Cloudflareのエッジロケーションが介在するようになります。
これによってオリジンサーバーはサイバー攻撃のトラフィックから守られるわけですね。
しかもDNSの名前取得自体は有料ですが、このプロキシ機能は無料で使えます。
ちなみにこのブログも CloudflareのDNSを使っており、プロキシは有効になってます。
設定はCloudflare DNSの管理画面でプロキシをONにするだけ
上のように、Cloudflareの管理画面で対象レコードのプロキシをONにするだけで本機能が有効になります。
オリジン側にSSL/TLS証明書は必要?
必要です。オリジン側はオリジン側でLets Encryptoでも何でもいいので証明書を作ってSSL/TLSを有効にしないと、Cloudflare → オリジンサーバー 間のトラフィックが暗号化されません。
注意点:オリジンサーバーへの直接攻撃は防げない
注意点として、FQDNでのアクセスは前段でCloudflareエッジが守ってくれますが、グローバルIPアドレスを使ったオリジンへの直接攻撃は防げません。
なのでオリジンサーバーはサーバーやサーバーを立てているクラウドの機能を使って、Cloudflare以外からのアクセスを遮断するなど対策が必要です。
CloudflareからオリジンにアクセスするIPアドレスは以下のサイトで公開されています。
IP Ranges
IPv4
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
104.16.0.0/13
104.24.0.0/14
108.162.192.0/18
131.0.72.0/22
141.101.64.0/18
162.158.0.0/15
172.64.0.0/13
173.245.48.0/20
188.114.96.0/20
190.93.240.0/20
197.234.240.0/22
198.41.128.0/17
IPv6
2400:cb00::/32
2606:4700::/32
2803:f800::/32
2405:b500::/32
2405:8100::/32
2a06:98c0::/29
2c0f:f248::/32
オリジン側の設定で上記以外のIPアドレスは遮断しておけば、個人ユースには十分なセキュリティレベルとなります。
ちなみにこのブログを運用しているサーバーは ConoHa VPS で稼働していますので、ConoHaのセキュリティグループでサーバーへのアクセスをCloudflare以外は遮断する設定にしています。
追加の注意点
もう2つ注意点として、
- Cloudflareのアクセス元IPアドレスは1年に一回くらい一部が入れ替えになるようなので、たまにチェックすることが必要になります。
- Cloudflare DNSの登録とオリジン側のセキュリティ設定はIPv4/IPv6の両方を行う必要があります。IPv4だけ設定してるとIPv6でオリジンに直でアクセスされます。
Cloudflareは本当にセンスの良いサービスだと思います。これからも成長していってほしい。
コメント
まだコメントはありません。