वर्चुअल प्राइवेट नेटवर्क्स (वीपीएन) आपको सार्वजनिक स्थानों से इंटरनेट ब्राउज़ करते समय अपने ऑनलाइन डेटा ट्रांसमिशन को छिपाने और अपनी सुरक्षा बढ़ाने की अनुमति देता है। कई ऑनलाइन सेवा प्रदाता आपके उपयोग के लिए मुफ्त और भुगतान किए गए वीपीएन विकल्प दोनों प्रदान करते हैं। हालांकि, यहां तक ​​कि सबसे अच्छी भुगतान योजना भी अविश्वसनीय या धीमी हो सकती है।

अगर आप केवल अपने मोबाइल कंप्यूटर और अपने घर के कंप्यूटर के बीच अपना स्वयं का वीपीएन बना सकते हैं।

असल में, यह प्रक्रिया आपके विचार से आसान है। आज हम चर्चा करेंगे कि लिनक्स मशीन पर क्लाइंट और सर्वर के बीच एक सुरक्षित कनेक्शन बनाने के लिए आप OpenVPN का उपयोग कैसे कर सकते हैं।

ध्यान रखें कि हम एक रूटिंग कॉन्फ़िगरेशन तैयार करेंगे, न कि ब्रिजिंग एक, जो अधिकांश उपयोग मामलों के लिए ठीक होना चाहिए। विंडोज उपयोगकर्ता एक प्रमाणपत्र प्राधिकरण की स्थापना के अनुभाग से शुरू होने वाले ओपनवीपीएन दस्तावेज को पढ़कर अनुसरण कर सकते हैं। विंडोज़ में इस्तेमाल किए गए कमांड नीचे दिखाए गए समान होंगे।

जिसकी आपको जरूरत है

आपको दो कंप्यूटरों की आवश्यकता होगी - एक सर्वर मशीन है जबकि दूसरा ग्राहक है। सर्वर मशीन डिजिटल होम या लिनोड से आपका होम डेस्कटॉप या लिनक्स उदाहरण हो सकती है। क्लाइंट मशीन वह कंप्यूटर है जिसका आप नियमित रूप से उपयोग कर रहे हैं। चूंकि यह ट्यूटोरियल लिनक्स पर किया जाता है, दोनों कंप्यूटरों को भी लिनक्स चलाने की जरूरत है।

नोट : इस ट्यूटोरियल में, हम उबंटू का उपयोग सर्वर और क्लाइंट मशीन दोनों के लिए हमारे डिस्ट्रो के रूप में करेंगे।

ओपन वीपीएन स्थापित करना

प्रारंभ करने के लिए, आपको अपने सर्वर पर OpenVPN और Easy-RSA इंस्टॉल करने की आवश्यकता है। फिर अपनी क्लाइंट मशीन पर OpenVPN इंस्टॉल करें।

उबंटू पर आपको इस गीथब पेज से आसान-आरएसए इंस्टॉल करना चाहिए। उबंटू में अपने भंडारों में आसान-आरएसए संस्करण 2 शामिल है। गीथब लिंक आसान-आरएसए संस्करण 3 प्रदान करता है, जो इस आलेख में उपयोग किए जाने वाले आदेशों का पालन करता है।

 sudo apt-open openppn गिट क्लोन स्थापित करें https://github.com/OpenVPN/easy-rsa.git 

निर्देशिका में आपने गिथब भंडार को क्लोन किया है, "easyrsa3" निर्देशिका को कॉपी करें जिसमें यह "/ etc / easy-rsa /।" है।

 सुडो एमकेडीर / आदि / आसान-आरएसए सुडो सीपी-आर ./easyrsa3/* / आदि / आसान आरएसए / 

पब्लिक की इंफ्रास्ट्रक्चर (पीकेआई)

ओपनवीपीएन सर्वर और ग्राहकों की पहचान स्थापित करने के लिए एक सार्वजनिक कुंजी इंफ्रास्ट्रक्चर (पीकेआई) का उपयोग करता है ताकि वे अलग-अलग संस्थाएं एक-दूसरे से बात कर सकें। पीकेआई प्रत्येक सर्वर और क्लाइंट के लिए व्यक्तिगत प्रमाणपत्र और निजी कुंजी के साथ एक मास्टर सर्टिफिकेट अथॉरिटी (सीए) का उपयोग करता है।

सीए को सर्वर और क्लाइंट प्रमाण पत्र पर हस्ताक्षर करना होगा। ओपन वीपीएन तब यह देखने के लिए जांच करता है कि सर्वर प्रत्येक क्लाइंट की पहचान को प्रमाणित करता है, और साथ ही, प्रत्येक ग्राहक सर्वर की पहचान की जांच करता है।

यहां सेटअप अधिक जटिल है जो आपको पीपीटीपी-स्टाइल कनेक्शन के लिए मिल सकता है, लेकिन यह उपयोगकर्ताओं को बेहतर सुरक्षा प्रदान करता है और सर्वर आने वाले क्लाइंट कनेक्शन को स्वीकार या अस्वीकार करने की अधिक स्वतंत्रता देता है।

सीए प्रमाण पत्र बनाना

कड़े सुरक्षा के लिए यह अनुशंसा की जाती है कि आपकी सीए मशीन आपके सर्वर से अलग हो। संक्षिप्तता के लिए, यह आलेख दोनों कार्यों के लिए एक ही मशीन का उपयोग करेगा। आपको अपनी स्थिति को समायोजित करने के लिए अपनी फ़ाइल-प्रतिलिपि प्रक्रियाओं को बदलना चाहिए - चाहे वह नेटवर्क स्थानान्तरण के लिए scp का उपयोग कर रहा हो या फ़ाइलों को मैन्युअल रूप से स्थानांतरित करने के लिए यूएसबी कुंजी का उपयोग कर रहा हो।

नोट : यदि आप अपने सीए के रूप में एक अलग कंप्यूटर का उपयोग करते हैं, तो आपको उस मशीन पर आसान-आरएसए इंस्टॉल करना होगा।

1. निर्देशिकाओं को "/ etc / easy-rsa /:" में बदलें

 सीडी / आदि / आसान आरएसए / 

2. यदि आवश्यक हो, तो "/etc/easy-rsa/vars.example" को "/ etc / easy-rsa / vars" पर कॉपी करें। फिर, इसकी सामग्री को संपादित करने के लिए vars खोलें:

 sudo cp ./vars.example ./vars sudo nano ./vars 

3. अपने देश, प्रांत, शहर, संगठन, और ईमेल जैसे विवरण दर्ज करें। प्रत्येक की शुरुआत में "#" को हटाकर यहां दिखाए गए लाइनों को अनदेखा करें।

एक बार संपादन के साथ किए जाने के बाद, (Ctrl + o) सहेजें और बाहर निकलें (Ctrl + x)।

4. अपना नया पीकेआई शुरू करें और सर्टिफिकेट अथॉरिटी कीपैयर जेनरेट करें जिसका उपयोग आप व्यक्तिगत सर्वर और क्लाइंट प्रमाणपत्रों पर हस्ताक्षर करने के लिए करेंगे:

 निर्यात EASYRSA = $ (pwd) sudo ./easyrsa init-pki sudo ./easyrsa build-ca 

Ca.crt फ़ाइल को कॉपी करें जिसे आपने अभी अपनी OpenVPN सर्वर निर्देशिका में बनाया है। आपको चाउन के साथ अपने मालिक और समूह को भी बदलना चाहिए:

 sudo cp /etc/easy-rsa/pki/ca.crt / etc / openvpn / server / sudo chown root: root /etc/openvpn/server/ca.crt 

सर्वर प्रमाणपत्र और निजी कुंजी बनाना

अपनी आसान-आरएसए निर्देशिका में वापस बदलें और सर्वर प्रमाणपत्र और इसकी निजी कुंजी जेनरेट करें:

 सीडी / आदि / आसान-आरएसए सूडो। / ईसाइर्स इनिट-पीकी सुडो। / ईसाइर्स जेन-रिक सर्वरनाम नाम 

आप ऊपर दिए गए आदेश में "सर्वर नाम" को जो भी नाम चाहते हैं उसे बदल सकते हैं। सुनिश्चित करें कि जब आप अपनी नई कुंजी को OpenVPN सर्वर निर्देशिका में कॉपी करते हैं तो उस परिवर्तन को प्रतिबिंबित करें:

 sudo cp /etc/easy-rsa/pki/private/ServerName.key / etc / openvpn / server / 

डिफी-हेलमैन पैरामीटर्स फ़ाइल

ओपनवीपीएन नेटवर्क पर क्रिप्टोग्राफिक कुंजी को सुरक्षित रूप से एक्सचेंज करने के डिफी-हेलमैन (डीएच) कुंजी एक्सचेंज विधि का उपयोग करता है। आप निम्न आदेश के साथ एक डीएच पैरामीटर फ़ाइल बना देंगे:

 sudo openssl dhparam -out /etc/openvpn/server/dh.pem 2048 

अंतिम संख्या, 2048, उस कमांड में फ़ाइल बनाने में उपयोग की जाने वाली बिट्स की संख्या दिखाती है। उदाहरण के लिए, आप 4096 का उपयोग कर सकते हैं, लेकिन फ़ाइल उत्पन्न करने में बहुत अधिक समय लगेगा और सुरक्षा में सुधार नहीं होगा। डिफ़ॉल्ट 2048 है, और यह मान अधिकांश उपयोग मामलों के लिए पर्याप्त है।

हैश-आधारित संदेश प्रमाणीकरण

ओपनवीपीएन एसएसएल / टीएलएस हैंडशेक में भेद्यता के खिलाफ सुरक्षा के लिए हैश-आधारित संदेश प्रमाणीकरण (एचएमएसी) हस्ताक्षर का भी उपयोग करता है। इस आदेश के साथ फ़ाइल बनाएँ:

 sudo openvpn --genkey --secret /etc/openvpn/server/ta.key 

ग्राहक फाइलें

इस बिंदु पर आपने अपने सर्वर के लिए कई फाइलें बनाई होंगी। अब आपके ग्राहकों के लिए फाइलें बनाने का समय है। आप जितनी चाहें उतने ग्राहकों के लिए इस प्रक्रिया को कई बार दोहरा सकते हैं। आप आसानी से क्लाइंट फ़ाइलों को किसी भी कंप्यूटर पर सुरक्षित-आरएसए स्थापित कर सकते हैं।

आसान-आरएसए निर्देशिका दर्ज करें और पीकेआई को फिर से शुरू करें यदि आपने पहले से ऐसा नहीं किया है:

 सीडी / आदि / आसान-आरएसए सुडो ./easyrsa init-pki 

क्लाइंट कुंजी और प्रमाणपत्र बनाएं। यदि आपने पिछले चरण को छोड़ दिया है तो निर्देशिका बदलें।

 सीडी / आदि / आसान-आरएसए सूडो ./easyrsa gen-req क्लाइंटनाम nopass 

यदि आप प्रक्रिया को दोहराते हैं, तो आपको प्रत्येक नए क्लाइंट के लिए पीकेआई शुरू करने की आवश्यकता नहीं है। बस हर बार अद्वितीय होने के लिए "क्लाइंटनाम" को बदलना सुनिश्चित करें।

सर्वर और क्लाइंट प्रमाणपत्र हस्ताक्षर करना

सीए को अब अपने सर्वर और क्लाइंट प्रमाणपत्रों पर हस्ताक्षर करना होगा।

यदि आप अपनी "/ etc / easy-rsa / pki / reqs /" फ़ाइल में देखते हैं, तो आपको सभी अनुरोध (.req) फ़ाइलों को देखना चाहिए आसान-आरएसए पिछले easyrsa gen-req कमांड में बनाया गया है।

इस स्क्रीनशॉट में केवल दो .req फ़ाइलें हैं। यदि आपने पिछले चरण में एक से अधिक क्लाइंट बनाए हैं तो आपका नंबर अलग-अलग होगा।

यदि आपने एक अलग सीए मशीन का उपयोग किया है, तो आपको अब उन .req फ़ाइलों को हस्ताक्षर करने के लिए CA में स्थानांतरित करना होगा। एक बार यह पूरा होने के बाद, आसान-आरएसए निर्देशिका में बदलें और निम्न फ़ाइलों के साथ अपनी फ़ाइलों पर हस्ताक्षर करें, प्रत्येक .req के उचित स्थान और प्रत्येक सर्वर और क्लाइंट का नाम प्रतिबिंबित करना सुनिश्चित करें।

 सीडी / इत्यादि / आसान-आरएसए सुडो ./easyrsa import-req /etc/easy-rsa/pki/reqs/ServerName.req Server1 sudo ./easyrsa import-req /etc/easy-rsa/pki/reqs/ClientName.req क्लाइंट 1 सुडो ./easyrsa साइन-रिक सर्वर सर्वर 1 sudo ./easyrsa साइन-रिक क्लाइंट क्लाइंट 1 

ध्यान दें कि आपको अपने सर्वर और क्लाइंट प्रमाणपत्रों के लिए एक अलग नाम के साथ आसान-आरएसए प्रदान करना होगा। ServerName.req का उपयोग यहां किया जाएगा, उदाहरण के लिए, Server1.crt बनाने के लिए।

अब आपको दो नई फाइलें मिलनी चाहिए - "/etc/easy-rsa/pki/issued/Server1.crt" और "/etc/easy-rsa/pki/issued/Client1.crt" - कि आप उनके संबंधित में स्थानांतरित कर देंगे मशीनें (इस आलेख के अगले खंड में देखी गई)। आप रहने वाले किसी भी .req फ़ाइलों को हटा सकते हैं।

सीआरटी फाइलों के साथ पासिंग

अब हस्ताक्षरित प्रमाणपत्र (प्रत्येक। सीआरटी) अपने मालिकों के लिए काम करने के लिए तैयार हैं। सर्वर फ़ाइल को अपने OpenVPN स्थान पर ले जाएं और क्लाइंट प्रमाणपत्रों के लिए एक नई निर्देशिका बनाएं:

 sudo mv /etc/easy-rsa/pki/issued/Server1.crt / etc / openvpn / server / sudo chown root: root /etc/openvpn/server/Server1.crt sudo mkdir / etc / easy-rsa / pki / हस्ताक्षरित sudo mv /etc/easy-rsa/pki/issued/Client1.crt / etc / easy-rsa / pki / हस्ताक्षरित / 

यहां "... pki / sign /" फ़ोल्डर बनाना आपको कई क्लाइंट प्रमाणपत्र रखने के लिए लेबल वाला स्थान देता है।

साझा सर्वर और क्लाइंट फ़ाइलें

अब आपके पास अपनी "/ etc / openvpn / server /" निर्देशिका में पांच फाइलें होनी चाहिए: ca.crt, dh.pem, Server1.crt, ServerName.key, और ta.key।

आपको क्लाइंट की मशीन पर अपने OpenVPN क्लाइंट फ़ोल्डर में उन दो फ़ाइलों की आवश्यकता होगी। उचित रूप से scp या फ्लैश डिस्क का उपयोग करके उन्हें कॉपी करें। दोनों "/etc/openvpn/server/ca.crt" और "/etc/openvpn/server/ta.key" दोनों को अपने क्लाइंट के "/ etc / openvpn / client /" पर कॉपी करें।

अपने ग्राहक प्रमाण पत्र और उसी स्थान पर कुंजी कॉपी करना सुनिश्चित करें। "/etc/easy-rsa/pki/signed/Client1.crt" और "/etc/easy-rsa/pki/private/ClientName.key" को अपने क्लाइंट के "/ etc / openvpn / client /" पर कॉपी करें। इस प्रक्रिया को दोहराएं आपके द्वारा बनाए गए किसी भी अतिरिक्त क्लाइंट के लिए।

किसी भी ग्राहक के लिए, अब आपके पास "/ etc / openvpn / client:" क्लाइंट 1.crt, ClientName.key, ca.crt, और ta.key में चार फ़ाइलें होनी चाहिए।

सर्वर और क्लाइंट विन्यास फाइलें

वीपीएन शुरू करने से पहले आपका अंतिम चरण सर्वर और क्लाइंट के लिए कॉन्फ़िगरेशन फ़ाइलों को संपादित करना है। सबसे पहले, "डिफ़ॉल्ट server.conf" और "client.conf" फ़ाइलों का पता लगाएं। वे शायद इन स्थानों में से एक में होंगे:

  • "/ Usr / share / OpenVPN / उदाहरण"
  • "/ Usr / share / doc / openvpn / उदाहरण / नमूना-कॉन्फ़िगर-फ़ाइलें /" (उबंटू कॉन्फ़िगरेशन यहां स्थित हैं)

नोट : उबंटू पर आपको "server.conf.gz" फ़ाइल को अनपैक करने की आवश्यकता होगी। संपीड़ित पैकेज से server.conf फ़ाइल प्राप्त करने के लिए gunzip -d ./server.conf.gz का उपयोग करें।

प्रत्येक कॉन्फ़िगरेशन फ़ाइल को अपने संबंधित "/ etc / openvpn / server /" और "/ etc / openvpn / client /" निर्देशिका में कॉपी करें।

Server.conf में निम्नलिखित परिवर्तन करें। सुनिश्चित करें कि आपके ca.crt, Server1.crt, ServerName.key, और dh.pem के नाम और स्थान आपकी कॉन्फ़िगरेशन फ़ाइल में सूचीबद्ध हैं। आपको पूर्ण पथों का उपयोग करने की आवश्यकता हो सकती है - जैसे कि "cert /etc/openvpn/server/Server1.crt" पढ़ता है।

tls-auth... tls-crypt ta.key पढ़ने के लिए लाइन tls-crypt ta.key । फिर, एक पूर्ण पथ आवश्यक हो सकता है।

"उपयोगकर्ता उपयोगकर्ता" और "समूह कोई नहीं" लाइनों से असम्बद्धता (";") को हटा दें।

अपने ग्राहक के लिए आप समान परिवर्तन करेंगे। कॉन्फ़िगरेशन फ़ाइल बनाने के बाद, अपने ca.crt, Client1.crt, ClientName.key, और ta.key के नाम और स्थानों को प्रतिबिंबित करें (tls tls-auth... tls-crypt... से उसी चरण के साथ tls-crypt... ), नाम या आईपी पता और अपने सर्वर के बंदरगाह डालें।

कनेक्ट करने का समय

अब आप अपना सर्वर और क्लाइंट शुरू कर सकते हैं। यदि यह उपर्युक्त सब कुछ योजनाबद्ध रूप से चला गया तो यह एक साधारण मामला है।

सर्वर के साथ शुरू करें:

 openvpn /etc/openvpn/server/server.conf 

और ग्राहक के साथ:

 openvpn /etc/openvpn/client/client.conf 

वीपीएन की सफल रचना क्लाइंट के आउटपुट को अपने आउटपुट के अंत में "प्रारंभिक अनुक्रम पूर्ण" पढ़ती है। आपको अपने उपलब्ध नेटवर्क इंटरफेस में एक नया प्रकार का कनेक्शन भी मिलेगा।

यह स्क्रीनशॉट "tun0" इंटरफ़ेस दिखाता है। ओपनवीपीएन सर्वर ने यही किया। आप अपना पता 10.8.0.1 के रूप में देख सकते हैं और एक सफल कनेक्शन सत्यापित करने के लिए क्लाइंट से उस पते को पिंग कर सकते हैं।

सर्वर के माध्यम से इंटरनेट यातायात राउटिंग

इस बिंदु पर आप शायद अपने रिमोट क्लाइंट से अपने सर्वर के माध्यम से इंटरनेट का उपयोग करना चाहेंगे। ऐसा करने के लिए, आपको पहले अपनी सर्वर कॉन्फ़िगरेशन फ़ाइल को बदलने की आवश्यकता होगी। अपनी सर्वर कॉन्फ़िगरेशन फ़ाइल में लाइन push 'redirect-gateway def1 जोड़ें।

 गूंज "पुश \" रीडायरेक्ट-गेटवे def1 \ "" | sudo tee -a /etc/openvpn/server/server.conf 

आपको क्लाइंट के इंटरनेट यातायात अनुरोधों को सही तरीके से रूट करने के लिए अपने सर्वर को बताने की भी आवश्यकता होगी। यह आदेश आपके Iptables पैकेट फ़िल्टरिंग नियमों को बदल देगा:

 iptables -t nat -A POSTROUTING-10.8.0.0/24 -o eth0 -j MASQUERADE 

यदि आपने अपनी server.conf फ़ाइल में "सर्वर 10.8.0.0 255.255.255.0" पंक्ति नहीं बदली है, तो उस कमांड में आईपी पता काम करना चाहिए। आपको अपने सर्वर के ईथरनेट इंटरफेस से मेल खाने के लिए "eth0" को बदलना होगा। आप पिछले स्क्रीनशॉट से देख सकते हैं कि मेरी मशीन "enp19s0" का उपयोग करती है।

इसके बाद, आप क्लाइंट को DNS सेटिंग्स को धक्का दे सकते हैं। क्लाइंट तक पहुंचने वाला कोई भी पता धक्का दिया जा सकता है। आप इस कमांड को शुरुआती बिंदु के रूप में उपयोग कर सकते हैं:

 गूंज "पुश \" dhcp-option DNS 10.8.0.1 \ "" | sudo tee -a /etc/openvpn/server/server.conf 

अंत में, आप सर्वर पर पैकेट अग्रेषण को निम्नानुसार सक्षम कर सकते हैं:

 गूंज 1 | सुडो टी / proc / sys / net / ipv4 / ip_forward 

अब आप वीपीएन के माध्यम से इंटरनेट तक पहुंचने के लिए अपने क्लाइंट का उपयोग करने में सक्षम होना चाहिए।

निष्कर्ष

मुझे पता है कि यह एक लंबी सड़क रही है। उम्मीद है कि आपको एक वीपीएन बनाने और सुरक्षित तरीके से इंटरनेट से कनेक्ट करने में सफलता मिली है।

यदि कुछ और नहीं है, तो यह एक सुरक्षित डिजिटल सुरंग बनाने के लिए क्या होता है इसके लिए एक अच्छा सीखने का अनुभव रहा होगा। अंत में मुझे शामिल होने के लिए धन्यवाद।