1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare Tunnel + Cloudflare One clientでOpenVPN相当のことができる

1
Last updated at Posted at 2026-09-06

前回までのあらすじ:

クラウドに出島を作る5Gルータも入れるとあの手この手で OpenVPN の延命を図るも非情なドトール Wifi の BAN によって怒髪天を突く筆者!OpenVPN に見切りをつけて代替を探し始めるも Cloudflare Zero Trust(Tunnel+Access) がいまいちフィットせずそこはかとないチ◯ポ◯感に苛まれつつ事態は展開する!

・・・何言ってんの?

Cloudflare Zero Trust(Tunnel+Access) の限界

前回の Cloudflare Zero Trust(Tunnel+Access) は、あくまでオンプレミスの Web アプリケーションについてインターネットからの安全なアクセスを可能とするもの。また Cloudflare Access はWebアプリケーションなら何でもラッピングしてセキュリティを確保できるようなものではなく、カバー範囲には限界があった(詳細は前回記事を参照)。

この Cloudflare Access を使うことによるもどかしさは、Cloudflare Access を捨てて相当部分をアプリケーション独自で作ってしまえば解消する。例えば認証とセッション管理部分を独自に作って、普通の Web アプリケーションにしてしまえば、Cloudflare Access 由来の諸々の不便はかなり改善できる。この場合でも Cloudflare が提供するソースのGeoIPフィルタリングや Bot protection, Search engine protection は利用することができる。

ただし独自で作るわけなのでどうしてもプログラムやシステムの知識が必要であるし1 FQDN を知っていれば認証前のページやエンドポイントにはたどり着けてしまうので、不正アクセスの不安はどうしても残る(WAFポン付けでセキュリティ侵害がゼロになるなら現状ここまで騒ぎにはなっていないはずなのだ)。実際私も自作 SPA を修正してこの構成で使っているが、WAFで極力はたき落としてはいるものの、アクセスログを見ているとぽつぽつ攻撃の前段階のようなクローラーのアクセスが見え 2 、それほど多くはないもののうーんとなってしまっている。個人にとって常時ある程度のテンションを保つことを求められる環境はきついよね・・・。

Webアプリケーション以外をどうするか?

また使うアプリケーションが全部Webアプリケーションというわけではない。例えばメールの場合、いまどき多くの人は Gmail などホスティングサービスを使っているのだろうが、私は古い人間なので未だに自宅でDovecotを動かして大量のメールを抱え込んでIMAPで見ている。3

このようなアプリケーションには Cloudflare Access は何もできない。

で、Cloudflare Tunnel + Cloudflare One Client ですよ

Cloudflare One Client is 何

Cloudflare One Client についてざっくり知るには以下のページの動画を見る。

Cloudflare One - Non-HTTP applications

Screenshot From 2026-08-31 22-34-31.png

上の画像の "Device Agent" が Cloudflare One Client になる。

すごくざっくり言うと、「Cloudflare One Client は Cloudflare がマネージドサービスとして提供している VPN のクライアント」ということになる。

VPN プロトコルは、サービス開始当初は WireGuard であったが 2026年9月時点のデフォルトは MASQUE になっている。(後述)

Cloudflare One Clientは Windows, macOS, Linux, iOS, Android、ChromeOS 用のクライアントがあり、デバイス上で Cloudflare への暗号化トンネルとローカルプロキシを動作させる。

つまり OpenVPN のアクセスクライアントとほぼ同等のことができるようになる。

料金はCloudflare Tunnelとあわせて50ユーザまでなら無料4。やっべえクラウドに出島作ってる場合じゃねえ!!

歴史的な経緯と製品名の変遷(読み飛ばしてOK)

あえて読む

Cloudflare は変化の早い企業であるせいか、似た名前で違う機能のサービスをリリースしたりリブランディングで同じものに複数の名前があったりと混乱しがち。幸いにも Cloudflare は積極的に blog などで情報を公開してくれてる(し、今のところ過去の記事もそのまま残してくれている)ので、記録も兼ねて調べた限りの歴史的経緯を書き残しておく。

  • 2018年4月: Cloudflare が "1.1.1.1" という Public DNS サービスをリリース5
    • Google が提供する Public DNS サービス "Google Public DNS(通称 8.8.8.8)" の提供開始は 2009年12月6。このころプロバイダのDNSが遅いなどの理由でこの手のクッソ速い Public DNS が流行っていたと記憶している
    • 同月、後の Cloudflare Tunnel となる Argo Tunnel がリリースされている7
  • 2019年9月: 1.1.1.1 がバカウケした勢いで "1.1.1.1 with WARP" というサービスを提供開始8。"1.1.1.1" と名前が付いているのになぜか DNS とは全然関係ない WireGuard のマネージド VPN サービス
    • かつて Google も "Google One VPN" を提供していたが2024年6月に提供終了している9
    • 特筆しておくべきこととして、これに先立つ2019年3月の時点で BoringTun という Rust 製ユーザースペース WireGuard 実装を独自で開発している。それまで WireGuard 本家が tun を含んだカーネルモジュールを提供していた状況であえてユーザースペースに閉じた実装を作ることでクロスプラットフォームへの道を開いた10。例えば Android の場合 AndroidOS の VpnService と連動することで、ユーザー空間で tun デバイスとして振る舞うことができる
    • 現在のWARP(Cloudflare One client)は WireGuard ではなく MASQUE という QUIC ベースの暗号化プロトコルがデフォルトで選択されるようになっている11。これは主に FIPS 準拠の暗号スイートをサポートするため。FIPS 準拠は主に政府系機関へ導入する場合必須になる。2026年9月現在 WireGuard も選択可能ではあるが、おそらく今後 WARP over WireGuard 構成はゆるやかに sunset していくのではないかと推測している
      • ちなみに WireGuard 本家は2026年9月現在 FIPS に準拠していない12このへんを見るとそのあたりの事情が垣間見えておもしろい ( "too much DJB cryptography" とか "The number of footguns in IPsec is really high" とか言いたい放題だな(笑))。残念ながら、時代の変化についていけてない感があるね・・・
  • 2020年10月: WARP を含む複数の Cloudflare サービスを Cloudflare One という(主に企業向けの)ソリューションパッケージにブランディング13
  • 2021年4月: Argo Tunnel が Cloudflare Tunnel にリブランドされる14
  • 2024年3月: WARP が MASQUE をサポート11
  • 2026年2月: WARP Client が Cloudflare One Client にリブランドされる15

こうして見てみると、あんまりおおっぴらには言えない怪しい用途に使われがちな個人向けVPNサービスとして始まったものを、製品ラインナップを整理し法人公共需要を取り込み売上が伴うサービスとして持続性を確保しつつ職人芸的属人的なテクノロジースタックをオープンスタンダードベースにモダナイズし、「Pixel のオマケ化」しても生き残れなかった Google One VPN、有象無象の怪しい用途ロンダリングサービスに堕ちてしまった独立系各種 VPN サービス、法人向けオンリー (の割には技術的にイケてないし維持に必要以上のコストがかかる骨董品)Palo Alto(SSL or IPsec)Cisco(DTLS or IPsec) とは一線を画しつつ現在まで個人向けサービスを存続させている Cloudflare の舵取りのうまさが見えてくるが、それはまた別のお話。

まとめると製品名のマッピングは以下のようになる。

じゃあ設定すっぺ

概要

現状の構成は以下のような感じ

設定するのは大きく2つ、cloudflared と Cloudflare One client になる。

cloudflaredは(主にユーザの自宅の中に配置して)Cloudflare Tunnel を終端し、NAT のように振る舞って LAN 内の各種リソースに到達する。

Cloudflare One client は上でも書いた通り、外出先のデバイスにインストールして、そのデバイス内の(LAN向け)通信を WARP tunnel にカプセリングして Cloudflare に向けて送出し、その反対も行う。

また Cloudflare Tunnel で公開した Web アプリを外出先デバイスの Web ブラウザで利用することも特に問題なくできるし、同一デバイスの中で Cloudflare One client 経由の通信と共存させることもできる。

cloudflared, Cloudflare One client の設定はほとんど全て Cloudflareダッシュボード で行う。詳細は後述する。

cloudflared

cloudflared を自宅LAN内のPCにインストールする。サポートしているOSはLinux, Windows, MacOSがあるが、私は Ubuntu 26.04 を使っている。

Cloudflareダッシュボードを開いて、[Protect & Connect] - [Zero Trust] を選択

[Networks] - [Tunnels & Mesh] を選択

[Create a Tunnel] をクリック

"Select Cloudflared" を選択(スクリーンショット

Tunnel の名前をつけて [Save Tunnel] (スクリーンショット

PCのOS(ここではDebian)、アーキテクチャ(ここでは64bit)を選択。画面の案内にしたがって、cloudflared をPCにインストールする

コマンドの詳細
# Add cloudflare gpg key
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-public-v2.gpg | sudo tee /usr/share/keyrings/cloudflare-public-v2.gpg >/dev/null

# Add this repo to your apt repositories
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-public-v2.gpg] https://pkg.cloudflare.com/cloudflared any main' | sudo tee /etc/apt/sources.list.d/cloudflared.list

# install cloudflared
sudo apt-get update && sudo apt-get install cloudflared

# After you have installed cloudflared on your machine, you can install a service to automatically run your tunnel whenever your machine starts:
sudo cloudflared service install <connector token>

cloudflared service install が成功すると cloudflared が動作し Cloudflare と接続する。ステータスが Connected に更新されていることを確認して、 [Next] をクリックする。 (スクリーンショット

画面から CIDR routes タブを選択する (スクリーンショット

DNSとIMAPのトラヒックだけ Cloudflare Tunnel 経由で LAN に誘導したいが、このウィザード画面では1つしかCIDRを指定することができないので、とりあえず DNS だけ登録する。(スクリーンショット

ここでやろうと思えばLAN全体(この例では 172.16.0.0/24)を許可することもできなくないが、意図しないWARP経由のアクセスを防ぐ意味でおすすめしない。

元の画面に戻ってくると、設定が反映されている。改めてトンネル(この例では My Home)をクリックする (スクリーンショット

CIDR routes を選択する (スクリーンショット

[+Add CIDR route]をクリック (スクリーンショット

IMAPのIPアドレスを設定する (スクリーンショット

元の画面に戻ってくるので、DNS と IMAP の2つのIPアドレス(CIDR)があればOK (スクリーンショット

Cloudflare One client

続けて Cloudflare One client の設定をする。Cloudflareダッシュボード から、[Protect & connect] - [Zero Trust] - [Team & Resources] - [Devices] を選択する (スクリーンショット

[Add a device] をクリック (スクリーンショット

デバイスのOSを選択。ここでは Android を選択した。"I have already downloaded the latest version of the client" にチェックを入れて、[Continue] をクリック (スクリーンショット

Enrollment policyは新規作成、approved user emailsに1つ以上のメールアドレスを追加する。ここでのメールアドレスは Cloudflare One client ユーザがログイン時に認証コードを確認するメールアドレスになるので、すぐに見ることができるメールアドレスにしたほうがいい (スクリーンショット

Service Mode は "Both Traffic and DNS (recommended)" を選択。WARPのトラヒックを監査したい場合は "Install CA to system certificate store" にチェックを入れる (スクリーンショット

Routing は "Include mode" を選択し、ルーティングする CIDR を指定する。 (スクリーンショット

ここでやろうと思えばLAN全体(この例では 172.16.0.0/24)を許可することもできなくないが、意図しないWARP経由のアクセスを防ぐ意味でおすすめしない。

ここで先程追加したIPアドレス以外のアドレスを追加する (スクリーンショット

これでウィザードでの設定はいったん完了 (スクリーンショット

デバイスに Cloudflare One client をインストールして起動する (スクリーンショット

組織名には Cloudflare Team name を入れる。Cloudflare Team name は Cloudflare One トップ画面(Cloudflareダッシュボードから [Protect & Connect] - [Zero Trust] でたどることができる)(スクリーンショット)(スクリーンショット

Device profile を作成するときに指定した認証用メールアドレスを入力して [Send login code] をタップすると、指定したメールアドレスに認証コードが送信される。もちろん Device profile 上の登録したメールアドレスと一致している必要がある。 (スクリーンショット

認証コードが送られたメールを確認して認証コードを入れるとアクティベーションが完了し、プロファイルがダウンロードされて、使用可能な状態になる (スクリーンショット

この状態でもすでに利用可能なのだが (たぶんCloudflare側のバグで) プロトコルが WireGuard になっているのでそれを MASQUE に変更する

メニューの [Teams & Resources] - [Devices] - [Device Profiles] を選択する (スクリーンショット

[Edit profile settings] をクリック (スクリーンショット

"Device Tunneling protocol" を WireGuard から MASQUE に変更して [Save profile]。警告に書いてあるとおり、デバイス側に反映されるまでに最大24時間かかる。 (スクリーンショット

で、どうなん?(お気持ち表明)

いやー今のところとてもいい感じです!

いいところ

  • マネージドサービスなのでサーバ側気にしなくていい
  • cloudflared, Cloudflare One client 側に設定が分散しないのがいい。ダッシュボードで設定すれば自動的に反映される、逆にcloudflared, Cloudflare One client側に(たとえ管理者であっても)ゴチャゴチャやらせないのが責任分解的にしっくりくる
  • プロトコル的にも最先端感があり、ぶっちぎった感があって気持ちがいいっす
  • まだやってないけどなんなら常時 ON にしっぱなしでもいいのかも

イマイチだったところ

  • Cloudflareそのもの、ドキュメントやダッシュボードの設定が散らばってて慣れるのに少し時間がかかる

終わりです

これで終わりであってくれーたのむー

脚注

  1. 特に認証認可セッション管理関連はアプリケーションの中でも特にナーバスなところなので可能であれば自前は避けたい、と思う人は少なからずいると思う。Cloudflare Access がある理由の1つでもある

  2. ログを見る限りではWordpressの脆弱性を探るクローラーがたまにくる。Wordpressのサイトを公開するのは怖いね・・・

  3. 実は昔Gmailに移行しようと試みたことがあるが、10,000通ほどインポートした時点でGmail側が取り込まなくなってしまった。私は過去全てのメール(約85万通、40GBほど)を保持しているし、今後も保持し続けたいので 10,000通程度で音をあげられては困るのよね

  4. 料金ページではFree planは "50 user limit" とざっくり書かれているだけ。どういう手法で接続しようが1 userとカウントされるのではないかと思われる。ちなみに Cloudflare Tunnel は "Application connector software"、Cloudflare One Client は "Device client (agent) software" に該当する(気がする)。気になる人はこの記事を鵜呑みせず Cloudflare に問い合わせよう!

  5. https://en.wikipedia.org/wiki/1.1.1.1

  6. https://en.wikipedia.org/wiki/Google_Public_DNS

  7. https://blog.cloudflare.com/argo-tunnel/

  8. https://blog.cloudflare.com/1111-warp-better-vpn/

  9. https://k-tai.watch.impress.co.jp/docs/news/1584594.html

  10. https://www.phoronix.com/news/CloudFlare-BoringTun-WireGuard

  11. https://blog.cloudflare.com/zero-trust-warp-with-a-masque/ 2

  12. https://learn.microsoft.com/ja-jp/azure/aks/container-network-security-wireguard-encryption-concepts#considerations--limitations

  13. https://blog.cloudflare.com/cloudflare-one/

  14. https://blog.cloudflare.com/tunnel-for-everyone/

  15. https://community.cloudflare.com/t/cloudflare-one-in-2026-product-name-updates/891403

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?