द्वारा डेनिस नुतिउ
मेरा रास्पबेरी, OpenVPN सर्वर के रूप में सेवारत
नमस्ते सभी!
इस संक्षिप्त लेख में मैं समझाऊंगा कि रास्पबेरी PI पर OpenVPN के साथ अपना खुद का VPN (वर्चुअल प्राइवेट नेटवर्क) सर्वर कैसे सेटअप करें। सर्वर सेटअप करने के बाद, हम अपने ट्रैफ़िक को छिपाने के लिए एक ऑबफस्केशन सर्वर सेटअप करेंगे जो दर्शाता है कि हम VPN का उपयोग कर रहे हैं। यह हमें सेंसरशिप के कुछ रूपों से बचने में मदद करेगा।
VPN का उपयोग क्यों करें?
सबसे पहले, आइए बात करते हैं कि आप VPN सर्वर का उपयोग क्यों करना चाह सकते हैं:
- मैन-इन-द-मिडल हमलों से बचें। यदि आपके स्थानीय नेटवर्क पर कोई दुर्भावनापूर्ण उपयोगकर्ता है — यहां तक कि आपका रूममेट भी — वह व्यक्ति आपके अनएन्क्रिप्टेड ट्रैफ़िक की निगरानी करने और उससे छेड़छाड़ करने में सक्षम है।
- अपनी इंटरनेट गतिविधि को अपने ISP (इंटरनेट सर्विस प्रोवाइडर) या विश्वविद्यालय से छुपाएं, मेरे मामले में।
- सेवाओं को अनब्लॉक करें। मेरा विश्वविद्यालय सभी UDP (यूजर डेटाग्राम प्रोटोकॉल) पैकेट्स को ब्लॉक करता है। इसका मतलब है कि मैं UDP के माध्यम से संचार करने वाले किसी भी एप्लिकेशन का उपयोग नहीं कर सकता। मैं अपने ईमेल क्लाइंट का उपयोग नहीं कर सकता, गेम नहीं खेल सकता, या यहां तक कि Git का उपयोग भी नहीं कर सकता!
मैंने रास्पबेरी पाई का उपयोग करके अपने होम इंटरनेट पर एक VPN सेटअप करने का फैसला किया। इस तरह मैं विश्वविद्यालय में रहते हुए अपने होम नेटवर्क से जुड़ सकता हूं। यदि आपको किसी अन्य देश में VPN सर्वर की आवश्यकता है, तो आप DigitalOcean से $5/माह का वर्चुअल प्राइवेट सर्वर खरीद सकते हैं। आप $10 की छूट पाने के लिए मेरा रेफरल लिंक उपयोग कर सकते हैं — यह दो महीने का मुफ्त VPN है। लेकिन अगर आप नहीं चाहते तो आपको इसका उपयोग करने की आवश्यकता नहीं है।
OpenVPN इंस्टॉल करना
यह चरण वास्तव में आसान है, क्योंकि हम इसे आपके लिए करने के लिए एक शेल स्क्रिप्ट का उपयोग करेंगे। तो आपको बस "नेक्स्ट" दबाना होगा और खत्म करना होगा।
इंस्टॉलेशन में लंबा समय लगेगा, आपके द्वारा चुने गए की-साइज़ के आधार पर। मेरे रास्पबेरी पाई 3 मॉडल B पर, इसमें लगभग 3 घंटे लगे।
कृपया इस रिपॉजिटरी पर जाएं और फिर निर्देशों का पालन करें:
Angristan/OpenVPN-install
_OpenVPN-install - Debian, Ubuntu, Fedora CentOS, और Arch Linux पर अपना खुद का OpenVPN सर्वर सेट अप करें_github.com
यदि आप अपने सर्वर का IP पता नहीं जानते हैं, तो बस 0.0.0.0 डालें। मैंने पोर्ट के लिए 443 और प्रोटोकॉल के लिए TCP (ट्रांसमिशन कंट्रोल प्रोटोकॉल) चुना है।
नोट: यह बहुत महत्वपूर्ण है क्योंकि मेरा विश्वविद्यालय केवल TCP/80 और TCP/443 पोर्ट्स की अनुमति देता है, बाकी बहुत ज्यादा ब्लॉक हैं। साथ ही Obfsproxy केवल TCP के साथ काम करता है, इसलिए सुनिश्चित करें कि आपने TCP चुना है!
स्क्रिप्ट समाप्त होने के बाद, आपको एक .ovpn फ़ाइल मिलेगी। इसे अपने पसंदीदा VPN क्लाइंट में इम्पोर्ट किया जा सकता है, और सब कुछ बॉक्स से बाहर काम करना चाहिए।
कनेक्शन का परीक्षण
.ovpn फ़ाइल को अपने VPN क्लाइंट में इम्पोर्ट करें और ip 0.0.0.0 को अपने रास्पबेरी PI के स्थानीय ip में बदलें। आपके नेटवर्क कॉन्फ़िगरेशन के आधार पर यह 192.168.*.* फॉर्म का हो सकता है।
नोट: यह केवल तभी काम करेगा जब आप उसी वाईफाई से जुड़े हों जिससे पाई जुड़ा है।
Viscosity सफलतापूर्वक मेरे VPN सर्वर से जुड़ा हुआ।
मैंने अपने राउटर को कॉन्फ़िगर किया है ताकि पाई को हमेशा एक रिजर्व्ड IP पता मिले। यदि आप ऐसा ही कुछ करना चाहते हैं तो आपको अपनी राउटर सेटिंग्स देखनी पड़ सकती हैं।
यदि कनेक्शन सफल होता है, तो बधाई हो, अब आपके पास एक VPN सर्वर है! लेकिन, आप इसे बाहर से एक्सेस नहीं कर सकते… अभी तक।
यदि आप केवल ऑबफस्केशन प्रॉक्सी के बिना एक OpenVPN सर्वर चाहते हैं, तो आप पोर्ट फ़ॉरवर्डिंग पर जा सकते हैं।
ऑबफस्केशन प्रॉक्सी इंस्टॉल
Obfs4 एक स्क्रैम्बलिंग प्रॉक्सी है। यह आपके इंटरनेट ट्रैफ़िक को शोर जैसा दिखाता है। कोई जो आपके ट्रैफ़िक पर नज़र रखता है, वह वास्तव में नहीं जान पाएगा कि आप क्या कर रहे हैं, और यह आपको एक्टिव प्रोबिंग हमलों से बचाएगा जिनका उपयोग चीन का ग्रेट फ़ायरवॉल करता है।
नोट: यह विधि काम नहीं करेगी यदि आपका विरोधी केवल व्हाइटलिस्टेड ट्रैफ़िक की अनुमति देता है :(
आइए अब प्रॉक्सी सर्वर इंस्टॉल करें।
- आवश्यक पैकेज इंस्टॉल करें:
apt-get update && apt-get install obfs4proxy
- एक डायरेक्टरी बनाएं जो कॉन्फ़िगरेशन को होल्ड करेगी।
sudo mkdir -p /var/lib/tor/pt_state/obfs4
- कॉन्फ़िगरेशन फ़ाइल बनाएं।
sudo nano /var/lib/tor/pt_state/obfs4/obfs4.config
कॉन्फ़िगरेशन फ़ाइल में, आप निम्नलिखित चीजें पेस्ट करेंगे:
TOR_PT_MANAGED_TRANSPORT_VER=1
TOR_PT_STATE_LOCATION=/var/lib/tor/pt_state/obfs4
TOR_PT_SERVER_TRANSPORTS=obfs4
TOR_PT_SERVER_BINDADDR=obfs4-0.0.0.0:444
TOR_PT_ORPORT=127.0.0.1:443
TOR_PT_SERVER_BINDADDR वह पता है जिस पर प्रॉक्सी नए कनेक्शन के लिए सुनेगा। मेरे मामले में यह 0.0.0.0:444 है — 444 क्यों और 443 नहीं? खैर, क्योंकि मैं OpenVPN सर्वर कॉन्फ़िगरेशन को बदलना नहीं चाहता जो वर्तमान में 443 पर सुन रहा है। साथ ही, मैं बाद में पोर्ट फ़ॉरवर्डिंग का उपयोग करके इस पते को 443 पर मैप करूंगा।
TOR_PT_ORPORT को OpenVPN सर्वर की ओर इशारा करना चाहिए। मेरे मामले में, मेरा सर्वर 127.0.0.1:443 पर चलता है।
- एक SystemD सर्विस फ़ाइल बनाएं।
sudo nano /etc/systemd/system/obfs4proxy.service
फिर इसमें निम्नलिखित सामग्री पेस्ट करें:
[Unit]
Description=Obfsproxy Server
[Service]
EnvironmentFile=/var/lib/tor/pt_state/obfs4/obfs4.config
ExecStart=/usr/bin/obfs4proxy -enableLogging true -logLevelStr INFO
[Install]
WantedBy=multi-user.target
- ऑबफस्केशन प्रॉक्सी शुरू करें।
अब, सुनिश्चित करें कि OpenVPN चल रहा है और प्रॉक्सी शुरू करने और इसे बूट पर शुरू करने में सक्षम करने के लिए निम्न कमांड चलाएं।
sudo systemctl start obfs4proxy
sudo systemctl enable obfs4proxy
- सर्ट KEY सेव करें
सर्विस शुरू होने के बाद, निम्न कमांड चलाएं और सर्ट KEY सेव करें।
cat /var/lib/tor/pt_state/obfs4/obfs4_bridgeline.txt
कुंजी Bridge obfs4 <IP ADDRESS>:<PORT> <FIN**GER**PRINT> cert=KEY iat-mode=0 के रूप में है। जब आप VPN से कनेक्ट करेंगे तो आपको इसकी आवश्यकता होगी।
- कनेक्शन का परीक्षण।
अपने VPN क्लाइंट को खोलें और 443 से 444 पर IP बदलें ताकि OpenVPN सर्वर के बजाय प्रॉक्सी से कनेक्ट हो सके।
उसके बाद, अपने OpenVPN क्लाइंट में प्लगेबल ट्रांसपोर्ट विकल्प ढूंढें और देखें कि क्या यह obfs4 का समर्थन करता है।
Viscosity obfs2, obfs3, obfs4 और ScrambleSuit जैसे विभिन्न ऑबफस्केशन मेथड्स का समर्थन करता है
यदि सब कुछ काम करता है, तो आप पूरी तरह तैयार हैं! बधाई हो! बाहर की दुनिया से इस VPN का उपयोग करने से पहले केवल कुछ और चीजों को ट्वीक करना बाकी है।
पोर्ट फ़ॉरवर्डिंग
बाहरी दुनिया से OpenVPN सर्वर तक पहुंचने के लिए हमें पोर्ट्स को अनब्लॉक करने की आवश्यकता है, क्योंकि वे सबसे अधिक संभावना ब्लॉक हैं। जैसा कि आपको याद है, मैंने अपने पाई के IP पते को अपने राउटर पर रिजर्व किया है ताकि यह हमेशा 192.168.1.125 रहे ताकि यह न बदले अगर पाई डिस्कनेक्ट होता है या राउटर रीबूट होता है।
इस तरह मैंने अपनी पोर्ट फ़ॉरवर्डिंग टेबल में निम्नलिखित नियम परिभाषित किए हैं:
TL-WR841N की पोर्ट फ़ॉरवर्डिंग सेटिंग्स पेज।
बाहरी पोर्ट 443 ऑबफस्केशन के सर्वर पोर्ट 444 की ओर इशारा करेगा। यदि आपके पास ऑबफस्केशन सर्वर नहीं है, तो 443->443 छोड़ दें।
पोर्ट 25 पाई के SSH पोर्ट 22 की ओर इशारा करेगा। यह केवल मेरी सुविधा के लिए है।
यदि मैं ऑबफस्केशन प्रॉक्सी के बिना सीधे OpenVPN सर्वर तक पहुंचना चाहता हूं, तो मैंने एक नियम 444->443 बनाया है।
सर्विस पोर्ट बाहरी पोर्ट है जिसका उपयोग आपके पब्लिक IP पते के साथ किया जाएगा। अपना पब्लिक IP खोजने के लिए, whatsmyip.com जैसी सेवा का उपयोग करें।
आंतरिक पोर्ट आंतरिक पोर्ट है। इसका उपयोग केवल तभी किया जा सकता है जब आप नेटवर्क से जुड़े हों।
_नोट: पहला नियम कह रहा है PUBLIC_IP:443 से सभी कनेक्शन को 192.168.1.125:444 पर रीडायरेक्ट करें_
परीक्षण
- अपना पब्लिक IP ढूंढें और .ovpn फ़ाइल में या VPN क्लाइंट में अपने पुराने IP को पब्लिक IP से बदलें।
- VPN से कनेक्ट करें।
बस इतना ही।
डायनामिक DNS
अधिकांश मामलों में, आपका IP बदल जाएगा क्योंकि यह एक डायनामिक IP है। इसे दूर करने का एक तरीका पाई पर एक छोटा प्रोग्राम बनाना है जो आपके IP को सेव करता है और आपको हर दिन या तो ईमेल भेजता है। आप IP को Firebase जैसे ऑनलाइन डेटाबेस में भी स्टोर कर सकते हैं।
मेरे राउटर में डायनामिक DNS सेटिंग है। इस तरह मैं NoIP जैसे सर्विस प्रोवाइडर का उपयोग कर सकता हूं और example.no-ip.com जैसा डोमेन प्राप्त कर सकता हूं जो हमेशा मेरे पब्लिक IP पते की ओर इशारा करेगा।
TL-WR841N DDNS सेटिंग्स पेज
अन्य संसाधन:
- A Childs Garden Of Pluggable Transports
- Viscosity-Obsfurcation/
- https://www.pluggabletransports.info/transports/
यदि आपके कोई प्रश्न हैं तो मुझे ट्विटर पर हिट करें।
मुफ्त में कोड करना सीखें। freeCodeCamp के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर के रूप में नौकरी पाने में मदद की है। शुरू करें