
क्लाउड में एक निजी VPN सेट अप करें
Algo VPN, Ansible स्क्रिप्ट का एक सेट है जो व्यक्तिगत WireGuard और IPsec VPN की स्थापना को सरल बनाता है। यह उपलब्ध सबसे सुरक्षित डिफ़ॉल्ट सेटिंग्स का उपयोग करता है और सामान्य क्लाउड प्रदाताओं के साथ काम करता है।
अधिक जानकारी के लिए हमारी रिलीज़ घोषणा देखें।
Algo सर्वर चालू करने का सबसे आसान तरीका है इसे अपनी स्थानीय प्रणाली पर या Google Cloud Shell से चलाना और इसे आपके लिए क्लाउड में एक नया वर्चुअल मशीन सेट करने देना।
किसी क्लाउड होस्टिंग प्रदाता पर खाता सेटअप करें। Algo DigitalOcean (सबसे उपयोगकर्ता-अनुकूल), Amazon Lightsail, Amazon EC2, Vultr, Microsoft Azure, Google Compute Engine, Scaleway, DreamCompute, Linode, अन्य OpenStack-आधारित क्लाउड होस्टिंग, CloudStack-आधारित क्लाउड होस्टिंग, या Hetzner Cloud का समर्थन करता है।
Algo की एक प्रति प्राप्त करें। Algo स्क्रिप्ट आपकी स्थानीय प्रणाली से चलाई जाएंगी। एक प्रति प्राप्त करने के दो तरीके हैं:
ZIP फ़ाइल डाउनलोड करें। फ़ाइल को अनज़िप करके algo-master नामक एक निर्देशिका बनाएं जिसमें Algo स्क्रिप्ट हों।
Algo स्क्रिप्ट युक्त algo नामक निर्देशिका बनाने के लिए git clone का उपयोग करें:
git clone https://github.com/trailofbits/algo.git
अपने कॉन्फ़िगरेशन विकल्प सेट करें। config.cfg को अपने पसंदीदा टेक्स्ट एडिटर में खोलें। users सूची में उन उपयोगकर्ताओं को निर्दिष्ट करें जिन्हें आप बनाना चाहते हैं। VPN से कनेक्ट करने की योजना वाले प्रत्येक डिवाइस के लिए एक अद्वितीय उपयोगकर्ता बनाएं। आपको तैनाती से पहले अन्य विकल्पों की भी समीक्षा करनी चाहिए, क्योंकि बाद में उनके बारे में अपना विचार बदलना ।
बस इतना ही! अब आप अपने VPN से कनेक्ट करने के लिए क्लाइंट्स सेट कर सकते हैं। नीचे VPN क्लाइंट्स कॉन्फ़िगर करें पर जाएं।
"# Congratulations! #"
"# Your Algo server is running. #"
"# Config files and certificates are in the ./configs/ directory. #"
"# Go to https://whoer.net/ after connecting #"
"# and ensure that all your traffic passes through the VPN. #"
"# Local DNS resolver 172.16.0.1 #"
"# The p12 and SSH keys password for new users is XXXXXXXX #"
"# The CA key password is XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX #"
"# Shell access: ssh -F configs/<server_ip>/ssh_config <hostname> #"
उपयोगकर्ताओं को आवश्यक प्रमाणपत्र और कॉन्फ़िगरेशन फ़ाइलें configs निर्देशिका में रखी जाती हैं। इन फ़ाइलों को सुरक्षित रखना सुनिश्चित करें, क्योंकि कई में निजी कुंजियाँ होती हैं। सभी फ़ाइलें आपके नए Algo VPN सर्वर के IP पते के नाम वाली एक उपनिर्देशिका में सहेजी जाती हैं।
IPsec उपयोगकर्ताओं के लिए महत्वपूर्ण: यदि आप बाद में उपयोगकर्ताओं को जोड़ना या हटाना चाहते हैं, तो सर्वर तैनाती के दौरान Do you want to retain the keys (PKI)? संकेत पर yes चुनना होगा। यह उपयोगकर्ता प्रबंधन के लिए आवश्यक प्रमाणपत्र प्राधिकरण को संरक्षित रखता है।
Apple डिवाइसों पर VPN सेवाएँ प्रदान करने के लिए WireGuard का उपयोग किया जाता है। Algo config.cfg में परिभाषित प्रत्येक उपयोगकर्ता के लिए एक WireGuard कॉन्फ़िगरेशन फ़ाइल, wireguard/<username>.conf, और एक QR कोड, wireguard/<username>.png, जनरेट करता है।
iOS पर, iOS App Store से WireGuard ऐप इंस्टॉल करें। फिर, QR कोड स्कैन करने या कॉन्फ़िगरेशन फ़ाइल को डिवाइस पर AirDrop करने के लिए WireGuard ऐप का उपयोग करें।
macOS पर, Mac App Store से WireGuard ऐप इंस्टॉल करें। ऐप चलाने पर WireGuard मेनू बार में दिखाई देगा। WireGuard आइकन पर क्लिक करें, Import tunnel(s) from file... चुनें, फिर उपयुक्त WireGuard कॉन्फ़िगरेशन फ़ाइल चुनें।
iOS या macOS दोनों में, आप WireGuard ऐप में टनल कॉन्फ़िगरेशन संपादित करके "Connect on Demand" सक्षम कर सकते हैं और/या कुछ विश्वसनीय Wi-Fi नेटवर्क (जैसे आपका घर या कार्यालय) को बाहर कर सकते हैं। (Algo यह आपके लिए स्वचालित रूप से नहीं कर सकता।)
यदि आप Apple डिवाइसों पर अंतर्निहित IPsec VPN का उपयोग करना पसंद करते हैं, या "Connect on Demand" या बहिष्कृत Wi-Fi नेटवर्क स्वचालित रूप से कॉन्फ़िगर करने की आवश्यकता है, तो विस्तृत कॉन्फ़िगरेशन निर्देशों के लिए Apple IPsec क्लाइंट सेटअप गाइड देखें।
Android पर VPN सेवाएँ प्रदान करने के लिए WireGuard का उपयोग किया जाता है। WireGuard VPN Client इंस्टॉल करें। संबंधित wireguard/<name>.conf फ़ाइल को अपने डिवाइस पर आयात करें, फिर इसके साथ एक नया कनेक्शन सेट करें। विस्तृत इंस्टॉलेशन और कॉन्फ़िगरेशन निर्देशों के लिए Android सेटअप गाइड देखें।
Windows पर VPN सेवाएँ प्रदान करने के लिए WireGuard का उपयोग किया जाता है। Algo config.cfg में परिभाषित प्रत्येक उपयोगकर्ता के लिए एक WireGuard कॉन्फ़िगरेशन फ़ाइल, wireguard/<username>.conf, जनरेट करता है।
WireGuard VPN Client इंस्टॉल करें। जनरेट की गई wireguard/<username>.conf फ़ाइल को अपने डिवाइस पर आयात करें, फिर इसके साथ एक नया कनेक्शन सेट करें। अधिक विस्तृत चरण-दर-चरण मार्गदर्शन और समस्या निवारण के लिए Windows सेटअप निर्देश देखें।
Linux क्लाइंट WireGuard या IPsec दोनों में से किसी का भी उपयोग कर सकते हैं:
WireGuard: WireGuard Linux क्लाइंट्स के साथ बहुत अच्छा काम करता है। Ubuntu और अन्य डिस्ट्रीब्यूशन पर WireGuard कॉन्फ़िगर करने के चरण-दर-चरण निर्देशों के लिए Linux WireGuard सेटअप गाइड देखें।
IPsec: strongSwan IPsec क्लाइंट्स (OpenWrt, Ubuntu Server, और अन्य डिस्ट्रीब्यूशन सहित) के लिए, विस्तृत कॉन्फ़िगरेशन निर्देशों हेतु Linux IPsec सेटअप गाइड देखें।
WireGuard का उपयोग करने वाले OpenWrt राउटरों के लिए, राउटर-विशिष्ट कॉन्फ़िगरेशन निर्देश हेतु OpenWrt WireGuard सेटअप गाइड देखें।
ऊपर शामिल नहीं किए गए डिवाइसों या मैन्युअल कॉन्फ़िगरेशन के लिए, आपको विशिष्ट प्रमाणपत्र और कॉन्फ़िगरेशन फ़ाइलों की आवश्यकता होगी। आपको जिन फ़ाइलों की आवश्यकता है वे आपके डिवाइस प्लेटफ़ॉर्म और VPN प्रोटोकॉल (WireGuard या IPsec) पर निर्भर करती हैं।
यदि आपने वैकल्पिक SSH टनलिंग भूमिका चालू की है, तो config.cfg में प्रत्येक उपयोगकर्ता के लिए स्थानीय उपयोगकर्ता खाते बनाए जाएंगे, और उनके लिए SSH authorized_key फ़ाइलें configs निर्देशिका (user.pem) में होंगी। SSH उपयोगकर्ता खातों में शेल एक्सेस नहीं होता, वे पासवर्ड से प्रमाणित नहीं हो सकते, और उनके पास केवल सीमित टनलिंग विकल्प होते हैं (जैसे, ssh -N आवश्यक है)। यह सुनिश्चित करता है कि SSH उपयोगकर्ताओं के पास टनल सेट करने के लिए आवश्यक न्यूनतम एक्सेस हो और वे Algo सर्वर पर कोई अन्य कार्य नहीं कर सकें।
अपना SSH टनल शुरू करने के लिए नीचे दिए गए उदाहरण कमांड का उपयोग करें, <user> और <ip> को अपने स्वयं के मानों से बदलें। टनल सेट हो जाने के बाद, आप किसी ब्राउज़र या अन्य एप्लिकेशन को 127.0.0.1:1080 को SOCKS प्रॉक्सी के रूप में उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं ताकि ट्रैफ़िक Algo सर्वर के माध्यम से रूट हो सके:
ssh -D 127.0.0.1:1080 -f -q -C -N <user>@algo -i configs/<ip>/ssh-tunnel/<user>.pem -F configs/<ip>/ssh_config
आपका Algo सर्वर प्रशासनिक उद्देश्यों के लिए केवल-कुंजी SSH एक्सेस हेतु कॉन्फ़िगर किया गया है। Terminal ऐप खोलें, cd करके उस algo-master निर्देशिका में जाएं जहां आपने मूल रूप से Algo डाउनलोड किया था, और फिर सफलता संदेश पर सूचीबद्ध कमांड का उपयोग करें:
ssh -F configs/<ip>/ssh_config <hostname>
जहां <ip> आपके Algo सर्वर का IP पता है। यदि आप नियमित रूप से सर्वर में लॉग इन करते हैं, तो अपनी Algo SSH कुंजी को स्वचालित रूप से लोड करना उपयोगी होगा। इसे स्थायी रूप से अपने शेल वातावरण में जोड़ने के लिए ~/.bash_profile के नीचे निम्नलिखित स्निपेट जोड़ें:
ssh-add ~/.ssh/algo > /dev/null 2>&1
वैकल्पिक रूप से, आप निर्मित किसी भी Algo सर्वर के लिए जनरेट किए गए कॉन्फ़िगरेशन को अपनी SSH कॉन्फ़िग में शामिल करना चुन सकते हैं। इस निर्देश को शीर्ष पर शामिल करने के लिए ~/.ssh/config फ़ाइल संपादित करें:
Include <algodirectory>/configs/*/ssh_config
जहां <algodirectory> वह निर्देशिका है जहां आपने Algo को क्लोन किया था।
Algo प्रारंभिक तैनाती के बाद आपके VPN सर्वर में उपयोगकर्ताओं को जोड़ना या हटाना आसान बनाता है।
IPsec उपयोगकर्ताओं के लिए: प्रारंभिक सर्वर तैनाती के दौरान आपने Do you want to retain the keys (PKI)? संकेत पर yes चुना होना चाहिए। यह उपयोगकर्ता प्रबंधन के लिए आवश्यक प्रमाणपत्र प्राधिकरण को संरक्षित रखता है। आपको तैनाती के दौरान दिखाए गए p12 और CA कुंजी पासवर्ड भी सहेज लेने चाहिए, क्योंकि वे केवल एक बार प्रदर्शित होते हैं।
उपयोगकर्ताओं को जोड़ने या हटाने के लिए, पहले अपनी config.cfg फ़ाइल में users सूची संपादित करें। आवश्यकतानुसार नए उपयोगकर्ता नाम जोड़ें या मौजूदा हटाएं। फिर अपने टर्मिनल में algo निर्देशिका पर जाएं और चलाएं:
macOS/Linux:
./algo update-users
Windows:
.\algo.ps1 update-users
प्रक्रिया पूरी होने के बाद, किसी भी नए उपयोगकर्ता के लिए configs निर्देशिका में नई कॉन्फ़िगरेशन फ़ाइलें जनरेट की जाएंगी। Algo VPN सर्वर को केवल config.cfg फ़ाइल में सूचीबद्ध उपयोगकर्ताओं को शामिल करने के लिए अपडेट किया जाएगा। हटाए गए उपयोगकर्ता अब कनेक्ट नहीं कर पाएंगे, और नए उपयोगकर्ताओं के पास उपयोग के लिए तैयार नए प्रमाणपत्र और कॉन्फ़िगरेशन फ़ाइलें होंगी।
Algo गोपनीयता के प्रति एक व्यावहारिक दृष्टिकोण अपनाता है। डिफ़ॉल्ट रूप से, हम सुरक्षा और समस्या निवारण के लिए पर्याप्त जानकारी बनाए रखते हुए लॉगिंग को न्यूनतम करते हैं।
डिफ़ॉल्ट रूप से क्या लॉग किया जाता है:
sudo wg के माध्यम से दृश्यमान - अंतिम एंडपॉइंट और हैंडशेक समय दिखाता है)गोपनीयता को config.cfg में दो मुख्य सेटिंग्स द्वारा नियंत्रित किया जाता है:
strongswan_log_level: -1 - StrongSwan कनेक्शन लॉगिंग को नियंत्रित करता है (-1 = अक्षम, 2 = डीबग)privacy_enhancements_enabled: true - लॉग रोटेशन, इतिहास साफ़ करने, लॉग फ़िल्टरिंग और सफाई के लिए मास्टर स्विचसमस्या निवारण के दौरान पूर्ण डीबगिंग सक्षम करने के लिए, strongswan_log_level: 2 और privacy_enhancements_enabled: false दोनों सेट करें। यह विस्तृत कनेक्शन लॉग कैप्चर करेगा और सभी गोपनीयता सुविधाओं को अक्षम कर देगा। डीबगिंग के बाद इन परिवर्तनों को वापस करना याद रखें।
तैनाती के बाद, अपनी गोपनीयता सेटिंग्स सत्यापित करें:
ssh -F configs/<server_ip>/ssh_config <hostname>
sudo /usr/local/bin/privacy-monitor.sh
किसी भी VPN समाधान के साथ पूर्ण गोपनीयता असंभव है। आपका क्लाउड प्रदाता आपके सर्वर कॉन्फ़िगरेशन की परवाह किए बिना नेटवर्क ट्रैफ़िक मेटाडेटा देखता और लॉग करता है। और निश्चित रूप से, आपका ISP जानता है कि आप एक VPN सर्वर से कनेक्ट कर रहे हैं, भले ही वे यह न देख सकें कि आप उसके माध्यम से क्या कर रहे हैं।
गोपनीयता के उच्चतम स्तर के लिए, अपने Algo सर्वरों को डिस्पोजेबल मानें। जब आवश्यकता हो तो एक नया इंस्टेंस बनाएं, इसे अपने विशिष्ट उद्देश्य के लिए उपयोग करें, फिर इसे पूरी तरह से नष्ट कर दें। क्लाउड इंफ्रास्ट्रक्चर की क्षणभंगुर प्रकृति एक गोपनीयता सुविधा हो सकती है यदि आप इसका जानबूझकर उपयोग करते हैं।
यदि आपने सभी दस्तावेज़ पढ़ लिए हैं और आगे भी प्रश्न हैं, तो नई चर्चा शुरू करें।
मैं लंबे समय से VPN सेवाओं की दयनीय स्थिति के बारे में बोलता रहा हूँ, शायद अब इस विषय पर एक उचित वार्ता देने का समय आ गया है। TL;DR: Algo का उपयोग करें।
-- Kenn White
VPN प्रदाता/ऐप चुनने से पहले, कुछ शोध अवश्य करें https://research.csiro.au/ng/wp-content/uploads/sites/106/2016/08/paper-1.pdf ... – या Algo पर विचार करें
-- The Register
Algo वास्तव में आसान और सुरक्षित है।
-- the grugq
मैंने Algo VPN के साथ खेला, जो स्क्रिप्ट का एक सेट है जो आपको बहुत ही कम समय में क्लाउड में VPN स्थापित करने देता है, भले ही आप डेवलपमेंट के बारे में अधिक न जानते हों। मुझे कहना होगा कि Trail of Bits का दृष्टिकोण काफी प्रभावशाली था।
-- Romain Dillet के लिए TechCrunch
यदि आप किसी अनाम, यादृच्छिक VPN प्रदाता को पैसे देने में असहज महसूस करते हैं, तो यह सबसे अच्छा समाधान है।
-- Thorin Klosowski के लिए Lifehacker
निम्नलिखित के बारे में जानकारी के लिए हमारा Development Guide देखें:
सभी दान निरंतर विकास का समर्थन करते हैं। धन्यवाद!
Algo AGPLv3 के तहत लाइसेंस प्राप्त और वितरित है। यदि आप Algo पर आधारित क्लोज्ड-सोर्स संशोधन या सेवा वितरित करना चाहते हैं, तो कृपया एक अपवाद खरीदने पर विचार करें। उपरोक्त विधियों की तरह, यह निरंतर विकास में सहायता करेगा।
तैनाती शुरू करें। अपने टर्मिनल पर लौटें। Algo निर्देशिका में, अपने प्लेटफ़ॉर्म के लिए उपयुक्त स्क्रिप्ट चलाएं:
macOS/Linux:
./algo
Windows:
.\algo.ps1
पहली बार जब आप स्क्रिप्ट चलाते हैं, तो यह स्वचालित रूप से आवश्यक Python वातावरण (Python 3.11+) इंस्टॉल करेगी। बाद के रनों में, यह तुरंत शुरू हो जाती है और सभी प्लेटफ़ॉर्म (macOS, Linux, WSL के माध्यम से Windows) पर काम करती है। Windows PowerShell स्क्रिप्ट आवश्यकता पड़ने पर स्वचालित रूप से WSL का उपयोग करती है, क्योंकि Ansible को Unix-जैसे वातावरण की आवश्यकता होती है। कई वैकल्पिक सुविधाएँ उपलब्ध हैं, जिनमें से कोई भी पूर्ण रूप से कार्यशील VPN सर्वर के लिए आवश्यक नहीं है। इन वैकल्पिक सुविधाओं का वर्णन तैनाती दस्तावेज़ में किया गया है।