अब जाकर Cloudflare Zero Trust टनल समझ आया
(david.coffee)- Cloudflare Zero Trust और Warp का उपयोग करके NAT·फ़ायरवॉल समस्याओं के बिना private network को कनेक्ट करने और service access को नियंत्रित करने वाली संरचना का वर्णन
- Argo टनल के माध्यम से private network या local service को public domain पर expose किया जा सकता है, या केवल Warp कनेक्शन के समय ही access होने वाला private network बनाया जा सकता है
- Tailscale P2P-आधारित होने के कारण तेज़ है, लेकिन NAT environment में इसकी सीमाएँ हैं, जबकि Cloudflare सभी ट्रैफ़िक को edge network के ज़रिये route करके स्थिर कनेक्शन देता है
- Cloudflared टनल बनाने का काम करता है, Warp Client network access और policy application संभालता है, और Tunnels·Routes·Targets के ज़रिये traffic flow और access control को कॉन्फ़िगर किया जाता है
- ईमेल·GitHub login आदि के आधार पर बारीक Access Policy सेट करके, Warp कनेक्शन की स्थिति के अनुसार login प्रक्रिया को छोड़ने या सीमित करने वाला secure network environment बनाया जा सकता है
Cloudflare Zero Trust और Warp का अवलोकन
- Tailscale में NAT traversal fail होने के कारण Cloudflare Zero Trust + Warp सीखना शुरू किया
- Zero Trust टनल के माध्यम से private network कनेक्ट करना, service publish करना, private IP network बनाना, local service को अस्थायी रूप से public करना जैसी कई सुविधाओं का उपयोग किया जा सकता है
- NAT समस्या के बिना सभी ट्रैफ़िक Cloudflare network के ज़रिये भेजे जाते हैं, और granular access policies के माध्यम से user·bot·server के बीच access control संभव है
- SSH access के समय public port खोले बिना Zero Trust authentication आधारित login का समर्थन
Cloudflare Zero Trust vs Tailscale
- Tailscale NAT·फ़ायरवॉल को bypass करके P2P connection की कोशिश करता है, और संभव न होने पर relay server का उपयोग करता है
- Cloudflare में Warp-to-Warp को छोड़कर बाकी सभी ट्रैफ़िक Cloudflare edge server के माध्यम से भेजे जाते हैं, इसलिए NAT समस्या नहीं होती, लेकिन थोड़ा latency बढ़ता है
Cloudflared और Warp में अंतर
- Warp Client: client को Cloudflare network से कनेक्ट करने और policy लागू करने का टूल
- मुख्य रूप से client पर चलता है, लेकिन server पर भी उपयोग किया जा सकता है
- Warp-to-Warp routing के ज़रिये P2P connection का समर्थन
- Cloudflared: टनल बनाकर उसे Zero Trust network में जोड़ने का टूल
- server पर चलकर network entry point प्रदान करता है
cloudflared accessकमांड से दूसरे Zero Trust resources से कनेक्ट किया जा सकता है- one-time test के लिए टनल भी बनाई जा सकती है
Tunnels, Routes, Targets संरचना
- Tunnels:
cloudflaredके ज़रिये deploy किए जाने वाले traffic exit point- उदाहरण: home network (192.168.1.1/24) में हमेशा चालू रहने वाली डिवाइस पर install
- config file (
/etc/cloudflared/config.yml) में request आने पर routing target तय किया जाता है - उदाहरण:
gitlab.widgetcorp.tech→localhost:80,gitlab-ssh→localhost:22
- Public exposure उदाहरण:
homeassistant.mydomain.com→192.168.1.3पर route- Cloudflare DNS में
CNAMEको tunnel address पर सेट करने से Warp के बिना भी access संभव
- Routes: किस tunnel को किस specific IP range पर traffic भेजना है, यह परिभाषित करता है
- उदाहरण: पूरा
192.168.1.1/24या single IP192.168.1.3/32 - Warp connected होने पर उस IP के लिए request Cloudflare network के ज़रिये tunnel तक पहुँचती है
- मौजूद न होने वाला virtual IP (जैसे 10.128.1.1) भी route किया जा सकता है
- उदाहरण: पूरा
- Targets: सुरक्षित किए जाने वाले infrastructure unit को परिभाषित करता है
- उदाहरण:
homeassistant.mydomain.com→192.168.1.3/32 - target पर access policy लागू करके केवल specific user को access दिया जा सकता है
- उदाहरण:
Access Policies: access control
- tunnel, route और target कॉन्फ़िगर करने के बाद Access Policy से access permissions सेट की जाती हैं
- policy components
- Include: access allow करने की शर्तें (OR)
- Require: वे शर्तें जो अनिवार्य रूप से पूरी होनी चाहिए (AND)
- Action: Allow / Deny / Bypass / Service Auth
- उदाहरण 1 – ईमेल-आधारित access control
- केवल specific email address को access की अनुमति
- GitHub login method के ज़रिये authentication को सीमित किया जा सकता है
- उदाहरण 2 – Warp कनेक्शन पर login skip
- Gateway selector का उपयोग करके Zero Trust Warp connected होने पर login screen को skip किया जा सकता है
- Warp disconnected होने पर GitHub login आवश्यक
Warp client deployment और registration
- Settings → Warp Client में registration policy सेट करना
- GitHub authentication और केवल specific email के लिए registration allow
- WARP authentication ID सेट करने पर Gateway selector का उपयोग संभव
- Profile Settings में client behavior परिभाषित करना
- protocol (MASQUE/WireGuard), service mode, routing exclusion IP आदि सेटिंग
- Cloudflare CA auto-install, unique CGNAT IP allocation, device status check (Device Posture) भी सेट किए जा सकते हैं
- Warp client login के बाद Zero Trust network connection पूरा
- इसके बाद
192.168.1.3के लिए request tunnel के ज़रिये route होती है
- इसके बाद
निर्माण परिणाम का सारांश
- GitHub और email-आधारित login policy से Warp client registration
- private network के भीतर का tunnel
homeassistant.mydomain.comrequest को192.168.1.3तक भेजता है 192.168.1.3ट्रैफ़िक केवल Warp connected होने पर ही tunnel के ज़रिये access किया जा सकता है- DNS-आधारित public access और Warp-आधारित private access, दोनों तरीके उपलब्ध
- Warp connected होने पर login skip, disconnected होने पर GitHub authentication आवश्यक
अतिरिक्त रूप से शामिल नहीं किए गए विषय
- Warp-to-Warp routing
- Zero Trust के भीतर केवल internal उपयोग के लिए private IP बनाना
- SSH authentication policy configuration
- Self-Hosted के अलावा अन्य application types
मूल लेख में अतिरिक्त जानकारी नहीं है
1 टिप्पणियां
Hacker News राय
Cloudflare TLS termination point के रूप में काम करता है, इसलिए व्यक्तिगत उपयोग के लिए यह कम अनुकूल है
Tailscale Funnel इस्तेमाल करने पर certificate सीधे मेरे endpoint पर install होता है, लेकिन Cloudflare बीच में traffic को decrypt करके फिर से encrypt करता है
WARP की personal network privacy का स्तर कितना है, यह ठीक से नहीं जानता, लेकिन internet tunneling में privacy में गिरावट बड़ी लगती है
साथ ही P2P connection + relay fallback संरचना third-party relay के बिना भी काम कर सकती है, इसलिए यह कहीं ज़्यादा बेहतर लगती है
यह दोस्त की machine को WebRTC-based exit node की तरह इस्तेमाल करता है, और TURN/relay server के बिना सिर्फ P2P को support करता है
NAT environment के हिसाब से connection success rate कम हो सकती है, लेकिन traffic किसी third-party server से नहीं गुजरता, इसलिए privacy assurance पक्की है
Caddy से भी कुछ ऐसा बनाया जा सकता है, लेकिन फिर भी port forwarding चाहिए
end-to-end encryption और 100 से अधिक PoP के ज़रिए performance और reliability देना इसकी खासियत है
इसमें केवल participating peers ही endpoint expose करते हैं, इसलिए security और privacy के लिहाज़ से यह फायदेमंद है
इसे खुद host कर सकते हैं या official service इस्तेमाल कर सकते हैं
मैं घर और personal use के लिए Netbird इस्तेमाल कर रहा हूँ
इसे Synology NAS, परिवार के सभी laptop·desktop·mobile पर install किया है, और Tmux environment में remote desktop की तरह इस्तेमाल करना सुविधाजनक है
“सारा traffic Cloudflare network से होकर गुजरता है” यह पढ़कर मैंने आगे पढ़ना बंद कर दिया
Hyprspace ने मेरे सामने आए हर NAT को पार किया है, और बड़े कॉर्पोरेट infrastructure के बिना भी अच्छी तरह काम करता है
यह लेख सचमुच एक बेहतरीन configuration guide जैसा लगा
Cloudflare इसे document करके official guide के रूप में इस्तेमाल करे तो अच्छा होगा
मैंने एक पोस्ट पढ़ी जिसमें कहा गया था कि NAT environment में Tailscale जब P2P connection स्थापित नहीं कर पाया तो झुंझलाकर Cloudflare Zero Trust + Warp सीखा गया
लेकिन Cloudflare तो शुरुआत से P2P की कोशिश ही नहीं करता, और आखिरकार मामला Cloudflare trust model पर शिफ्ट होने का है
प्रेरणा समझना मुश्किल है, लेकिन लेख खुद अच्छी तरह व्यवस्थित है
हमारी कंपनी भी पूरी तरह remote है, और Tailscale से Cloudflare पर जाने के बाद performance बेहतर हुई
अगर बनी रहती है तो trust model का फर्क बहुत बड़ा नहीं है, लेकिन Cloudflare की ताकत relay performance है, इसलिए speed के मामले में यह फायदेमंद है
फिर भी Tailscale की NAT hole punching क्षमता बेहतरीन है, इसलिए जहाँ संभव हो मैं direct connection को पसंद करता हूँ
निजी services को expose करने के लिए मैं tuns.sh इस्तेमाल कर रहा हूँ
यह SSH tunnel आधारित है, इसलिए बिना install किए तुरंत इस्तेमाल किया जा सकता है, यही बात मुझे पसंद है
लेख और comments दोनों उपयोगी थे
बस article की image टूटी हुई है और 404 error दे रही है — जैसे: targets-config-screen.png
CF के gold issue पर आखिरकार आलोचना देख कर अच्छा लगा
मुझे लगता है Zero Trust model की समस्याओं की ओर इशारा करने वाली ऐसी चर्चा ज़रूरी है
मुफ्त Cloudflare account से Plex server नहीं चला पाना एक घातक कमी है
संबंधित terms यहाँ देखे जा सकते हैं
मैं IPv6 के आधार पर Emby और Jellyfin दोस्तों के साथ अच्छी तरह इस्तेमाल कर रहा हूँ
साधारण web traffic के मुकाबले एक फिल्म से ही सैकड़ों गुना bandwidth cost आती है
मेरी girlfriend के work laptop पर Tailscale install नहीं हो सकता था, इसलिए यह तरीका काम आया
Cloudflare का इस्तेमाल कहीं vendor lock-in तो नहीं, यह सवाल है
कम-से-कम Tailscale में ऐसी निर्भरता नहीं लगती
मुझे लगा था कि यह open source project है, पर ऐसा नहीं था