Cloudlfare Zero TrustをIncludeルールで使ってみる

Cloudlfare Zero TrustをIncludeルールで使ってみる
Photo by stephan hinni / Unsplash

おうちサーバーやLAN外でのNASへのアクセスなどでとても便利なCloudflareのZero Trust。私も自宅のNASにLAN外からアクセスする際に利用しています。特に日本はIPv6の環境が複雑なため、契約によっては固定IPを利用できなかったりします。

光コラボは契約してはいけない - Qiita
自分に起こった地獄VPNのパフォーマンスが出ない!VPNの条件は以下の通りです。同一市内の自宅と実家のVPN自宅はNTT光コラボ、実家はauひかりtracerouteで経路を調べたところ下記…

インターネットで見つけた、光コラボの不便さにぶちぎれている記事

また、そもそもポートを開放することによるセキュリティ上のリスクも考慮する必要があります。VPNによって通信を暗号化することはできますが、VPN通信の中身を信頼してしまう仕組みはあまりいいアイデアだとは思えません。

とはいえ、自宅のNAS程度にすべての通信をZero Trustで運用するのは現実的ではないというか、あまりメリットもありません。特定の通信だけCloudflareを介せばいいです。Cloudflareではそうしたルールを設定できます。

ExcludeからIncludeへ

Zero Trustの初期設定では特定の通信以外はすべてZero Trustで通信を行うExcludeになっています。そんな大げさなことはやらなくていいので、特定の通信だけをZero TrustするIncludeに変更しましょう。

では、いったいどの通信をIncludeすればいいのでしょうか。私はSMBを使うために利用していますので、そのドキュメントを参考にしてみます。

SMB
The Server Message Block (SMB) protocol allows users to read, write, and access shared resources on a network. Due to security risks, firewalls and ISPs usually block public connections to an SMB file share. With Cloudflare Tunnel, you can provide secure and simple SMB access to users outside of your network.

ドキュメントによるとどうやら以下ドメインをIncludeすることで最低限動くようです。

If you are using Include mode, add your private network's IP/CIDR range to the list. Your list should also include the domains necessary for Cloudflare Zero Trust functionality.
  1. Cloudflare Zero TrustがCloudflareと通信するためのドメイン
  2. Cloudflareを介して通信したいドメイン
  3. (Browser Isoletion機能を使うならedge.browser.run

自宅にいる際、つまりLAN内にいる際はわざわざCloudflareを経由しないで直接接続したいのでPrivete IPはIncludeしないことにしました。また、Cloudflareと通信するためのIncludeはドメインでもIPでもできますが、パット見たときにわかりやすいのでドメインで設定をすることにします。

実際に設定をしてみよう

さて、実際に設定をしてみましょう。追加する項目は次の通りです。

  1. <your-team-name>.cloudflareaccess.com
  2. Cloudflareを介して通信したいドメイン
  3. (Browser Isolation機能を使うならedge.browser.run

Zero Trust > 設定 > WARP クライアント > デバイスの設定 セクションにあるプロファイル > 編集 > スプリットトンネル > 「IPとドメインを含める」

これで、Includeルールを利用することになります。さて、次にIncludeルールを編集しましょう。

Zero Trust > 設定 > WARP クライアント > デバイスの設定 セクションにあるプロファイル > 編集 > スプリットトンネル > 「管理」ボタン

先ほどの画面を横に見ると「管理」ボタンがあります。ボタンをクリックすることで、「スプリット トンネルの管理(含む)」という画面が出てきますので、そこでルールを追加します。


これで、Includeルールでの運用に切り替え完了です。ZTNAを本気で全通信に適用するのは個人レベルではちょっと大げさに思うので、Includeルールを使ってみました。写真や動画が趣味で、NASを使っている人なんかの参考になれば幸いです。

Read more

TailscaleのSubnet Routesを消す

SynologyのNASにTailscaleを導入し、便利に使っている。 TailscaleにはSubnet routersという機能がある。 これは、Tailscaleネットワークに接続されたデバイスが、そのデバイスが接続されているローカルネットワーク(サブネット)全体へのアクセスを他のTailscaleデバイスに提供できる機能だ。つまり、Subnet routerとして設定されたデバイスを経由することで、Tailscaleネットワーク上の他のデバイスから、そのローカルネットワーク内の機器にアクセスできるようになる。 Subnet routers · Tailscale DocsUse subnet routers to give devices outside your local network access to services within specific subnets. Extend your private network with Tailscale.Tailscale 便利そうだなと思って設定をしてみたものの、結局使うことがなかった。 公式ドキュメント

By Sakashita Yasunobu

Boids

群れに指揮者はいない 鳥の群れは、誰かが指示を出しているわけではない。魚の群れも同じ。それぞれが周囲を見て、少しだけ動く。その繰り返しが、全体として秩序ある動きを生む。 これを1986年にCraig Reynoldsがコードで再現した。名前は Boids(bird + oid)。個体に与えるルールは3つだけ。 1. Separation ── 近すぎたら離れる 2. Alignment ── 周囲と同じ方向を向く 3. Cohesion ── 群れの中心に寄る これだけで、群れは群れらしく動く。 なぜ作ったか 群れの動きは、見ていて飽きない。 * 単純なルールから複雑な動きが生まれる ── 創発(emergence)の典型例。設計していないのに、設計したかのように見える。 * 自分のブログに置きたかった ── 静的なページに、動くものがあると空気が変わる。 * Web Components で作りたかった ── どこにでも持っていける部品として。 設計の話 見えないときは止める 画面外でアニメーションを回し続けるのは無駄。Inte

By Sakashita Yasunobu

Days Elapsed

一年を「面」で見る 一年は365日。数字で見ると多いけど、並べてみると案外少ない。 12ヶ月を並べて、過去を塗りつぶして、今日を光らせる。それだけのカレンダーを作った。進捗バーが「一次元」なら、これは「二次元」の進捗表示。 Year Progress一年は50週ちょっとしかない 2026年を週で数えると、52週とちょっと。 カレンダーで見ると長そうなのに、週で数えると急に短くなる。そんな感覚を形にしたくて、このページの上の方に進捗バーを置いた。 やっていることは単純で、「今年が何%進んだか」をリアルタイムで表示しているだけ。 なぜ作ったか 理由は3つある。 1. 時間を「量」として見たかった ── イベントや予定ではなく、単純に「どれだけ経ったか」を数値で見たかった。 2. 目に見える形にしたかった ── 抽象的な「一年」を、動く数字に落とすとどう感じるか試したかった。 3. 自分の場所に置きたかった ── 誰かのツールを借りるのではなく、自分のブログに自分で作ったものを置きたかった。 実装の話 せっかく作るなら、

By Sakashita Yasunobu