आपके OpenVPN सेटअप में वह config.json किस प्रोग्राम का है?
config.json नाम की फ़ाइल OpenVPN के बजाय किसी GUI, डेमन या किसी एक्सपोर्ट फ़ॉर्मैट की हो सकती है। कुंजियाँ संपादित या बदलने से पहले पार्सर खोजें।
आपको config.json नाम की एक फ़ाइल मिलती है, उसमें किसी VPN सर्वर का ज़िक्र है, और तुरंत यह अनुमान आता है: यह OpenVPN कनेक्शन ही होगा। अक्सर ऐसा नहीं होता। इस नाम की JSON फ़ाइल क्लाइंट शुरू करने वाले डेस्कटॉप फ़्रंटएंड की, अपनी सेटिंग्स सहेजने वाले डेमन की, या किसी उत्पाद के एक्सपोर्ट फ़ॉर्मैट की हो सकती है, और इनमें से हर एक का अपना स्कीमा है।
फ़ाइल का नाम सबसे कम काम का सुराग है। उस प्रोसेस से शुरू करें जो फ़ाइल पढ़ती है, फिर जाँचें कि वह जिस फ़ॉर्मैट की अपेक्षा करती है वह JSON है भी या नहीं, और उसके बाद ही तय करें कि फ़ाइल संपादित करना कुछ बदलने का समर्थित तरीका है या नहीं।
प्रोसेस से शुरू करें, फ़ाइल के नाम से नहीं
देखें कि वास्तव में क्या चल रहा है। कोई सर्विस यूनिट, लॉन्चर स्क्रिप्ट या ट्रे ऐप्लिकेशन उस बाइनरी का नाम बताएगा जिसे वह शुरू करता है और अक्सर वह कॉन्फ़िगरेशन पाथ भी जो वह आगे भेजता है। फ़ाइल जिस डायरेक्टरी में है वह दूसरा सुराग है: ऐप्लिकेशन डेटा डायरेक्टरियाँ, सर्विस कॉन्फ़िगरेशन डायरेक्टरियाँ और उपयोगकर्ता प्रोफ़ाइल डायरेक्टरियाँ अलग-अलग मालिकों की ओर इशारा करती हैं।
फिर उस उत्पाद का दस्तावेज़ पढ़ें जिसका वह कॉम्पोनेंट है। अगर JSON किसी रैपर का है, तो उसकी कुंजियाँ रैपर की कुंजियाँ हैं, और किसी दूसरे उत्पाद के उदाहरण से बनाई गई विश्वसनीय दिखने वाली वस्तु अस्वीकार हो जाएगी या चुपचाप अनदेखी कर दी जाएगी।
अलग-अलग डायरेक्टरियों में एक ही नाम की दो फ़ाइलें आम जाल हैं। एक तो वह उत्पन्न अवस्था हो सकती है जिसे सर्विस हर शुरुआत में फिर से लिखती है, और दूसरी वह टेम्पलेट हो सकती है जिसे इंसान को संपादित करना होता है। गलत फ़ाइल बदलने पर ऐसा सुधार मिलता है जो अगली बार रीस्टार्ट तक टिकता है।
Community OpenVPN प्रोफ़ाइल असल में क्या है
Community OpenVPN 2.6 विकल्प-आधारित टेक्स्ट फ़ॉर्मैट पढ़ता है। प्रोफ़ाइल निर्देशों का क्रम है: क्लाइंट मोड लाइन, डिवाइस लाइन, दूरस्थ एंडपॉइंट, साथ में पहचान, साइफ़र और रूट विकल्प, और यह इनलाइन ब्लॉक के भीतर प्रमाणपत्र और कुंजी सामग्री जोड़ सकता है।
उस फ़ॉर्मैट को क्लाइंट स्वयं पंक्ति-दर-पंक्ति पार्स करता है। config विकल्प के ज़रिए उसे JSON दस्तावेज़ देना JSON पार्सर चालू नहीं करता; पहली पंक्ति ही अज्ञात निर्देश के रूप में अस्वीकार हो जाएगी। किसी JSON फ़ाइल का नाम .ovpn पर समाप्त होने के लिए बदलना भी उसकी सामग्री को परिवर्तित नहीं करता, और वैध विकल्प फ़ाइल इसलिए अवैध नहीं होती कि उसका एक्सटेंशन असामान्य है।
OpenVPN Connect और OpenVPN 3 Linux के प्रोफ़ाइल के लिए अपने आयात और प्रबंधन पाथ हैं। ये उत्पाद प्रोफ़ाइल स्वीकार कर उसे अपने डेटाबेस या सर्विस अवस्था में सहेज सकते हैं, जो इस बात के बराबर नहीं है कि कोई JSON फ़ाइल संयोग से किसी सर्वर का वर्णन करे।
किसी दूसरे कॉम्पोनेंट की अवस्था को संपादित करना
अगर JSON उत्पन्न किया गया है, तो उसे संपादित करना एक दौड़ है। चलती हुई सर्विस बंद होने पर, फिर से जुड़ने पर या अगले सेटिंग बदलाव पर उसे फिर लिख सकती है, और हाथ से किया गया संपादन बिना किसी त्रुटि के गायब हो जाता है। उत्पाद का आयात कमांड, प्रबंधन API या सेटिंग्स इंटरफ़ेस पसंद करें, क्योंकि वे पाथ वह आंतरिक अवस्था अद्यतन करते हैं जिसे फ़ाइल दर्शाती है। रीस्टार्ट के बाद लौट आने वाली फ़ाइल आपको बताती है कि कौन-सा पाथ टिकाऊ था।
अगर आप फिर भी उत्पन्न फ़ाइल संपादित करें, तो पहले सर्विस रोकें, बैकअप रखें और जितना संभव हो छोटा बदलाव करें। फिर जाँचें कि सर्विस शुरू होते समय फ़ाइल फिर से लिखती है या नहीं, क्योंकि शुरुआत में लौट आने वाली फ़ाइल का अर्थ है कि असली सत्य-स्रोत कहीं और है और वह संपादन कभी टिकता ही नहीं।
पासवर्ड और इनलाइन निजी कुंजियाँ अलग विषय हैं। JSON विकल्प फ़ाइल की तरह ही पूरी कुंजी आसानी से रख सकता है, इसलिए किसी भी एक्सपोर्ट को गुप्त मानें, उसे साझा ड्राइव से दूर रखें, और फ़ोरम प्रश्न में ढाँचा चिपकाने से पहले मान छिपा दें।
बदलाव को सत्यापित करना और फ़ाइल की रक्षा
सत्यापन का अर्थ “JSON पार्स होता है” नहीं है। पार्सिंग केवल यह सिद्ध करती है कि ब्रेसिज़ मेल खाते हैं; यह नहीं बताती कि मालिक कुंजियों को पहचानता है या नहीं। उत्पाद की अपनी अवस्था जाँचें: सक्रिय प्रोफ़ाइल की सूची, चुना गया कनेक्शन और ऐसा पुनः कनेक्शन जो वास्तव में नए मानों का उपयोग करे। सूची में दिखने वाली लेकिन कभी चुनी न जाने वाली प्रोफ़ाइल अब भी उपयोग में आने वाली प्रोफ़ाइल नहीं है।
उस कॉम्पोनेंट का लॉग देखें जिसे आपने संपादित किया, केवल VPN क्लाइंट का नहीं। आपकी फ़ाइल अस्वीकार करने वाला रैपर सामान्यतः यह अपने ही लॉग में बताता है, और जिस क्लाइंट को फ़ाइल कभी मिली ही नहीं वह खराब सेटिंग्स पाए क्लाइंट जैसा ही दिखता है।
काम करने वाली फ़ाइल की प्रति रखें और जिस उत्पाद संस्करण के विरुद्ध परीक्षण किया उसे दर्ज करें। ये फ़ॉर्मैट संस्करणों के बीच बदलते हैं, और पिछले साल काम करने वाला ढाँचा अपग्रेड के बाद ऐसे संदेश के साथ अस्वीकार हो सकता है जो स्कीमा का ज़िक्र ही नहीं करता।
यात्रा का सारांश: प्रोसेस पहचानें, उसका दस्तावेज़ पढ़ें, पुष्टि करें कि फ़ाइल JSON है भी या नहीं, समर्थित संपादन पाथ का उपयोग करें और उत्पाद की अपनी अवस्था के ज़रिए सत्यापित करें। फ़ाइल के नाम ने इनमें से किसी प्रश्न का उत्तर कभी नहीं दिया।