🛡️
Cloudflare Zero Trust 経由でEC2にSSH接続する
以下の記事を参考に構築した際、調べた各コンポーネントの情報やはまったポイントを整理する。
今回構築するインフラ構成
WARPとは
Cloudflare Networkと接続してくれるサービス。内部的にはWireGuardによってVPN接続をしている。
WARPのSSL証明書について
- Windows, macOS, Linux devices には自動で証明書がインストールされる。
- インストールされた証明書の確認方法はこちら(macOSの場合)
- モバイルWARPクライアントを使用する場合は手動でインストールする必要がある。
認証方法設定について
- zero trustの設定画面からどの認証方法を許可するか選ぶ(今回はGoogleのみ)
- WARPクライアントのpreferenceから設定を行う必要がある。
Cloudflare Tunnelとは
接続先からのアウトバウンド接続によって通信を可能にするコンポーネント。
接続先は、Public Network, Private Networkタブから接続したいネットワークをCIDR指定する。
以下のような接続用コマンドが表示されるのでこれをEC2上で実行するだけ。
今回は Fedora がベースになっている Amazon Linux 2023 で実行したかったのでRedHat向けコマンドを実行した。
EC2との接続方法2種類
- cloudflared
- WARP Connector
cloudflared はアウトバウンドトラフィックのみ。WARP Connectorなら双方向通信可能。
今回のようなVPNを置き換える場合はcloudflaredがベストプラクティス。(参照)
Tunnel capacityについて
-
VPNとは違い設定するポート数によって、トラフィック量の制限を調整できる。
-
今回使うことはなかったがVPNとの違いとして面白いと思った。
Tunnel capacity for cloudflared · Replace your VPN · Learning paths
はまったポイント
WARPが起動できない
-
CF_HOST_UNREACHABLE_CHECK エラーがずっと出ていた。
-
試したこと
-
下記記事を読み込んで、Split Tunnel設定にWARP tunnelから除外するドメインやIPアドレスを除外してみた。
-
-
解決した方法
- Firewall policies の Block Malware 設定を解除した。
- おそらく設定が厳しすぎたのだと思う。
-
もろもろ設定完了後の接続手順
- WARPクライアントをConnectedにする。
- sshでEC2のprivate ipを指定して接続。
これだけ。
Discussion