最近、Cloudflare MeetupでCloudflare Zero Trustがクライアントからインターネットの通信をキャプチャできると聞いて、実際にどういったものか無料版できる範囲で設定を試してみたので、そちらの備忘です。
Cloudflare Zero Trust
「デバイスやロケーションを問わず、すべてのユーザーがすべてのアプリケーションに簡単かつ安全にアクセスできるようにします。」と謳っています。
Cloudflare WARPというクライアントソフトウェアが必要になるので、ダウンロードします。
WARPと聞くと、ターミナルを思い返したり。
Gateway
Firewall PoliciesでCloudflare Zero Trustで接続してくるクライアントの通信を制御するポリシーが設定できます。
Cloudflare Zero TrustとGoogle Workspaceの認証連携
Google Cloud側の設定
最近も同じ要領でAdmin SDK APIを有効化したり、認証情報を取得しました。
Cloudflareは設定画面の右側に手順を記載しているので上から順に従っていく形で設定完了です。
https://astro.midnight480.com/posts/aws-appfabric-gws/#Google Cloud側での設定
ここまで設定すれば、あとはドメインのユーザであれば認証のたびに自動で追加されていくので楽です。
私は、検証の目的でデバイスにユーザを個別で割り当てたかったので、Google Cloud Identity Freeで増殖して利用しています。IDとしては、そのドメインのユーザであればよいので普通に認証が通ってCloudflare Zero Trustが使えます。
デバイスの設定
導入するデバイスによって少し進め方が変わります。
なお、一般ユーザ向けに配布しているWARPからTeamへログインすることで、
WARPという表示からZero Trustに変わります。
iPad&iOS
初めて開く画面があり少し戸惑いましたが以下の手順で完了しました。
設定 > 一般 > VPNとデバイス管理 でCloudflare for Teams ECC Certificate Authority をインストール
設定 > 一般 > 情報 > 証明書信頼設定 で Cloudflare for Teams ECC Certificate Authority を信頼
Andoroid
アプリをインストールすると証明書の信頼確認が促されるポップアップが表示されたので承認して完了でした。
Windows
WARPをインストールするときに証明書なども自動で設定されるのですぐにすんなりと接続できました。
macOS
最初に接続できなくて、手動手順を行いましたが、接続できなかった原因はそちらではなかったので、おそらくWARPインストール時に問題なく設置されていると思います。
macOSで接続できなかった原因
ウィルス対策ソフト(ESET)が原因でした。
ESETはmacOS BigSurあたりから内部プロキシとして通信をキャプチャするような仕組みになりました。
自身で設定ができる方はいいとは思いますが、自分はできなかったのでESETを一時的に通信の対話モードへ切り替えて、WARPの接続を起動して通信を発生させて、追加させる対応を実施しました。
Gatewayの設定
Google Workspaceはドライブなどは基本的にGoogleが内部でウィルススキャンなどをするので除外しつつ、その他にもTwitterやFacebookといったサービスも通信を検査除外しました。
このあたりはFirewall をGUIで設定したことがある人には抵抗のないところです。
DEX
DEX(Digital Experience Monitoring)で、クライアントからインターネットの経路などが見えるようになるとのことでWaitlistに登録しました。
さいごに
Cloudflare Zero Trustの設定自体は難しくもなかったです。
しばらく個人で運用してみようと思います。0ドルなので。
会社側にも良さそうで、カスタムの費用が気になります。
また、Egress(クライアント→Cloudflare→その先)も、
Dedicated egress IPsも設定できるようなので、
リモートワークかつ外部サービスに固定のIPアドレスが必要な環境としては使えそうです。
あと、海外からのアクセスになりすますときとかもユーザ単位で一時的に設定できそう。