Cloudflare Zerotrustについて
本人のナレッジメモも含まれます。
2023/4/15
Connectorのセットアップを作成済みです。
DNSでセキュリティーの部分も作成済み。
サービス概要
-
サービス概要は以下の通りです。
Cloudflare Zerotrustは、Cloudflare社が提供するZerotrustサービスです。
Cloudflare AccessとCloudflare Gatewayという大きく二つのコンポーネントに分かれています。
Cloudflare Access : 主にZTNA(Zerotrust Network Access)を実現するソリューション
Cloudflare Gateway : 主にSWG(Secure Web Gateway)を実現するソリューション
今回は無償版のCloudflare Zerotrust(50名までは無償/サポートなし)を利用しています。 -
基本的な考え方のまとめ
Cloudflare Zerotrustは、アクセス先(オンプレ)にCloudflaredというアプリで実装します。
Cloudflaredは、Ubuntu、CentOS、Windowsなどで稼働可能です。
Cloudflaredは、ARM版でも稼働します。(AWSのGraviton(c6g.mediumでも問題なく稼働))
CloudflaredはConnectorとして動くので、内部アクセスはNAT(稼働するサーバのIP)になります。
CloudflaredのスケールアウトはConnectorを増やすことで対応可能です。
TCP/UDP/ICMPをカバーします。(ICMPは2023年3月に利用可能になりました)
ConnectorはDNS、HTTPS、QUICを利用します。(プロトコル関係は後述)
トンネル接続の場合はQUICが必須です。
他ソリューションだと、ZscalerのZPAに近いです。
端末側にはCloudflareのWarp Clientを利用します。(プロトコル関係は後述) -
プロトコル関係のまとめ
Cloudflaredのプロトコル関係はこちら
https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/do-more-with-tunnels/ports-and-ips/
Warp Clientのプロトコル関係はこちら
https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/deployment/firewall/ -
導入する前に考慮すること
既存のVPNとの置き換えの場合は、デバイス固有のIPという概念がなくなります(ConnectorでNATされます。)
WarpClientもモバイル側にPPPアダプタの様な動きをしますが、上記の通り接続先からは見えなくなりますのでご注意ください。
モバイル側のアドレスをオンプレミス環境で特定したい場合は、後述するMagic WANを利用すると実現可能となります。 -
TIPS
Magic WANを入れるとISP Shared(100.96.0.0/16)のアドレスになるが固定が可能です。
Cloudflareのポータルで、端末単位でISP Sharedのアドレスが付与されます。
端末情報はCloudflareのポータルからこんな感じで見えます。
準備するもの
-
適当なドメイン(.comとか.netとか.infoとか何でもOKです。)
CloudflareはDNSサービス自体も無償で利用できるので、適当にドメインをとって権限DNSをCloudflareに設定します。
DNSレジストラとしての機能もありますので、Cloudflareでドメインを取るのも可能です。
私は、複数ドメイン持っているので、レジストラは既存を使って、権限DNSだけCloudflareに設定しました。 -
クレジットカード
登録時にクレジットカードの入力を求められます。無償版の機能だけ使っておけば課金されません。 -
Team名を決めておく
zerotrustを接続するときの名前を決めておきます。(ユニークである必要があります)
あとからでも変更が可能です。Zerotrustセットアップ時に必要。
Cloudflareのサービス概要はこちらです。(Webページの抜粋)
オリジナルのリンクはこちら
50ユーザまでは、コミュニティーサポートですが無償なのは素晴らしい。
https://www.cloudflare.com/ja-jp/plans/zero-trust-services/
ドキュメントが非常に充実してます。(英語です)
https://developers.cloudflare.com/cloudflare-one/
無償版でできること
CloudflareのZerotrustですが、無償版(Freeプラン)でほとんどの機能が利用可能です。
サポートが受けれない(コミュニティーサポート)ので、サポートが必要であれば有料プランをお勧めします。
契約プランはリセラー専用プランとなります。
セットアップの流れ
セットアップの大きな流れは以下となります。
-
アカウント作成(クレジットカード要)
-
ドメイン登録(ドメイン要)
-
ゼロトラストセットアップ(エンロール設定、WARPポリシー、FWポリシー、SSL解読対象外設定、ID登録など)
設定するところは割とたくさんありますが、概念だけ分かれば対応可能です。 -
コネクタ(Cloudflared)の導入
WebのUIから設定を作って流し込む方法が一番簡単ですが、冗長構成やVRFを組む場合はCLIからのセットアップが必須です。
GUI+流し込みで対応もできます。簡単なガイドはこちらで。
①Tunnelsをクリック
②Create a tunnelをクリック
③トンネル名を入れる。
④OSを選んで、画面の指示に従います。(黒い部分はセットアップキーです)
⑤Connectorがセットアップされます。
⑥このコネクタ(Cloudflared)が処理するサブネットを入力します。
これで、セットアップは完了です。
Public Hostnameを設定すると、外部ホストを内部に公開できますが、本書では省略します。 -
WARP Client導入
ダウンロードしてモバイルで利用するPCに導入します。
何も設定しなければ、無償版のCloudflareとして利用可能(赤い画面)
ゼロトラストを設定すると青い画面に遷移します。(同じアプリが遷移します)
-
利用開始
DNSによるセキュリティー対策&コンテンツフィルタ
少しだけゼロトラストからは外れますが・・・。
Cloudflare ZerotrustはDNSによるコンテンツフィルタも利用可能です。
IPの登録が必要ですが、たとえば自宅が固定IPの場合ですと固定IPを登録して、DHCPで配布するDNSの設定をCloudflareに向けることで、セキュリティー対策が可能となります。対象のサイトのQueryでCloudflareのCDNにRedirectしてブロック画面を表示しているようです。無償でここまでできるのは本当にありがたいです!。
- DNS Location設定
- DNSは以下のように払い出されます。
マスクしていますが、こちらのDNSをDHCPで配布すればコンテンツフィルタが利用できます。(SSL解読はできない)
- DNSのセキュリティーポリシーはこんな感じで設定しておきます。
- アダルトサイトでブロックを確認します。
DNSのRedirectで実現していますが、たとえば自宅のテレビとかのブラウザでProxy設定したり、Warpを入れれないなどのシーンで効果を発揮します。(そもそも自宅にProxyは立てないって・・・) - CloudflareのポータルでDNSのブロックログが残されます。
今後の予定
今後の予定はこのあたりをまとめていきます。
- ドメイン登録まとめ
- ゼロトラストセットアップ
エンロールポリシー
デバイスポリシー
ネットワーク設定
プロファイル設定
ポリシー管理 - Cloudflared導入
- WARP Client導入(このあたりは他の方も書いてそう・・・)
少しづつまとめていきます。
最後までご覧頂きありがとうございます。
お役立ちリンク集
ドキュメント(英語です)
https://developers.cloudflare.com/cloudflare-one/
リポジトリ(本番環境で動かすならバージョンアップを考慮する必要あり)
https://pkg.cloudflare.com/index.html