見出し画像

Cloudflareの無料VPNで外から自宅のPCにつないでみる

ProxmoxとPhotoPrismで作った写真サーバに外出先からでもセキュアにアクセスできるようにしたいと思っていろいろ調べました。
最初はコンテナでVPNルータを作ろうと思いましたが、自宅のv6プラス回線では制限が多そうなのでどうしようかと思ったところ、Cloudflareの無料サービスでできそうなことを知って試してみることにしました。


参考

Cloudflareのサービスは最近Web画面の構成が変わったのか、過去の記事を調べても画面遷移が記事と違っていたりしてよく分からないというトラブルが多かったです。

Cloudflareの契約

個人用途で外出先から自宅のプライベートサーバにアクセスするだけならZero Trust & SASEのFree Planで十分そうです。
無料でもクレジットカードの登録は必須な点は注意です。

設定したこと

自宅サーバのサービスにちゃんとドメインを付けて一般公開するならドメイン契約が必要ですが、個人で使うだけなら不要です。

トンネルの作成

Cloudflareのメニュー→Zero Trust→Networks→Tunnels→Create a tunnel
でトンネルを作成します。

  • tunnel type: cloudflared

  • tunnel name: 適当に

次にサーバにデーモン (cloudflared) の設定をします。
画面の指示に従ってツールをインストールして認証用のコマンドを実行すればOKです。
cloudflaredはPhotoPrismのコンテナにインストールしてもいいのですが、個別に管理したいのでcloudflared専用のコンテナを作ってインストールしました。
やはりこういうときにコンテナは便利ですね。
一般公開はしないので残りのパラメータは下記のように設定しました。

  • Public Hostname: なし

  • Private Network

    • CIDR: 自宅のLANのセグメント

トンネル作成後にStatusがHEALTHYになればOKです。

Access Groupの作成

自宅サーバにアクセスを許可するグループを作成します。
Cloudflareのメニュー→Zero Trust→Access→Access Groups→Add a Group

  • Group Name: 適当に

  • Define group criteria

    • Selector: Emails

    • Value: ログインに使いたいメールアドレス

アクセス許可の設定

トンネルにアクセスするためのルールを設定します。
Cloudflareのメニュー→Zero Trust→Settings→WARP Client→Device enrollmentの"Manage"→Add a rule

  • Rule name: 適当に

  • Assign a group: 上記で作ったグループを指定

Split Tunnelsの設定

デフォルトのままではトンネルに繋いでもプライベートIPアドレスにはアクセスできないので設定を変更します。
Cloudflareのメニュー→Zero Trust→Settings→WARP Client→Device settings→Default→Split Tunnels→"Include IPs and domains" を選択

設定はこれで完了です。
終わってみれば簡単だけど調べるのが難しかった…

アクセス方法

クライアントにはWARPクライアントをインストールする必要があります。
今回はiPhoneで試すのでAppStoreからインストールしました。
WARPで検索しても出てくるアプリが "1.1.1.1: Faster Internet" となってて非常に分かりづらいです。
インストールしたらログインしてメールに届くワンタイムパスワードを入力すれば認証されます。
WARPのスイッチをオンにしてVPNに繋がったら5G回線からでもめでたくPhotoPrismのローカルIPアドレスにアクセスできました!

所感

自分でVPNルータを立てなくても無料でVPNが使えてしまうのは非常に便利です。
ただしCloudflareは一般向けサービスではないので、用語や画面操作が難しかったです。
特に最近はWebのUIが変わったのか、少し前の手順では手順の画面に辿り着けず苦労しました。
クライアントアプリも名前が変わったのか分かりづらいです。
使いこなせれば他にもいろいろできそうなので、調べてみようと思います。

この記事が気に入ったらサポートをしてみませんか?