👏

自宅のサーバーの ssh と code-server に Cloudflare for Teams で安全にアクセスする

2021/08/09に公開

自宅サーバーで稼働している 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