CloudFlare Zero Trustでngrokの代わりにSSHする Raspberry Pi 4編
cloudflaredのインストール
sudo apt install curl lsb-release
curl -L https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/cloudflare-archive-keyring.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt update
sudo apt install cloudflared
cloudflareにログイン
sudo cloudflared tunnel login
cert.pemの移動
sudo mv /home/{user}/.cloudflared/cert.pem /etc/cloudflared/cert.pem
tunnelの作成
sudo cloudflared tunnel create {TunnelName}
認証用のjsonファイルが書かれるのでファイルパスを保存しとく
例: /etc/cloudflared/{UUID}.json
config.ymlの作成
sudo vi /etc/cloudflared/config.yml
tunnel: {TunnelName}
credentials-file: /etc/cloudflared/{UUID}.json
ingress:
- hostname: {HostName}
service: ssh://localhost:22
- service: http_status:404
tunnelとDNSの紐付け
sudo cloudflared tunnel route dns {TunnelName} {HostName}
サービスに登録
sudo cloudflared service install
sudo systemctl enable --now cloudflared
sudo systemctl status cloudflared -l
SSHクライアント側(MacでBrewを使う場合)でのcloudflareのインストール
※ tunnel作成するとインストールコマンド教えてくれる
$ brew install cloudflare/cloudflare/cloudflared
ssh設定
$ cloudflared access ssh-config --hostname {HostName}
host書き込み
vi ~/.ssh/config
Host {HostName}
ProxyCommand /opt/homebrew/bin/cloudflared access ssh --hostname %h