👏
自宅のサーバーの ssh と code-server に Cloudflare for Teams で安全にアクセスする
自宅サーバーで稼働している ssh と code-server にアクセスするため、 Cloudflrad for Teams を利用してみました。ポート開放不要で Google 認証を利用して安全にアクセスできます。
cloudflared を利用して、トンネルを作成します。ドキュメントにある通り、パッケージをインストールします。
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
dpkg -i cloudflared-linux-amd64.deb
設定はチュートリアルを参考に実施します。
最初に、ログインしトンネルを作成します。
cloudflared tunnel login
cloudflared tunnel create example
設定ファイルで必要となる ID を確認します。
cloudflared tunnel list
tunnel と credentials-file の ID の部分を確認した結果に置き換えます。
# ~/.cloudflared/config.yml
tunnel: 6ff42ae2-765d-4adf-8112-31c55c1551ef
credentials-file: /root/.cloudflared/6ff42ae2-765d-4adf-8112-31c55c1551ef.json
ingress:
- hostname: ssh.example.com
service: ssh://localhost:22
- hostname: code-server.example.com
service: http://localhost:8080
- service: http_status:404
設定ファイルに記載したドメインのCNAMEを以下の様に設定します。
6ff42ae2-765d-4adf-8112-31c55c1551ef.cfargotunnel.com
トンネルを開始するとアクセスできるようになります。
cloudflared tunnel run example
デーモンとして稼働させるには、以下のコマンドを実行すると systemd で稼働できるようになります。
sudo cloudflared --config /home/example/.cloudflared/config.yml service install
Discussion