Cloudflare Zero TrustでSSHを保護する
Cloudflare Zero TrustでSSHを保護する 背景 サーバにSSHでアクセスするには、通常22番ポートをインターネットに公開する必要がある。しかし公開されたSSHポートは常に攻撃の標的になる。 Cloudflare Zero Trustを使えば、SSHポートを閉じたまま、認証済みのユーザーだけがSSH接続できる環境を構築できる。 Zero Trustとは 従来のセキュリティモデルでは「社内ネットワーク内は信頼する」という前提があった。Zero Trustはこの前提を捨て、全てのアクセスを検証するモデル。 【従来】 インターネット → ファイアウォール → 社内(信頼済み) ※ 一度入れば自由にアクセス可能 【Zero Trust】 インターネット → Cloudflare(認証・認可) → サーバ ※ 毎回アクセスを検証する ※ 認証されていなければ接続不可 仕組み SSHの場合、Cloudflare TunnelとAccess機能を組み合わせる。 開発者のPC └── ssh コマンド └── cloudflared(ProxyCommand) └── Cloudflare(Access認証) └── Tunnel └── サーバのSSHデーモン SSHコマンドを実行すると、cloudflaredがプロキシとして動作 Cloudflare Accessが認証を要求(ブラウザでメール認証) 認証成功後、Tunnel経由でサーバのSSHに接続 サーバ側のSSHポートは閉じたまま 前提条件 Cloudflare Tunnelが設定済みであること(Cloudflare Tunnelの設定方法を参照) ローカルPCにcloudflaredがインストール済みであること 手順 1. Tunnel IngressにSSHを追加 Cloudflare APIでSSHのルーティングを追加する: ...