Linux आपका VPN पासवर्ड कहाँ रखे? प्रोफ़ाइल में नहीं
NetworkManager के सीक्रेट फ़्लैग तय करते हैं कि पासवर्ड प्रोफ़ाइल, कीरिंग एजेंट या कोई नहीं रखता। उत्तर इस पर निर्भर है कि कनेक्शन कब शुरू होता है।
VPN पासवर्ड को कहीं तो रहना ही है: कनेक्शन प्रोफ़ाइल में, डेस्कटॉप जिस कीरिंग को अनलॉक करता है उसमें, या कहीं नहीं। NetworkManager उस चुनाव को सीक्रेट फ़्लैग कहता है, और गलत चुनना ही वह कारण है कि कनेक्शन लॉगिन के बाद काम करता है और सेवा के रूप में विफल हो जाता है। फ़्लैग कॉन्फ़िगरेशन की एक पंक्ति है, और यह तय करता है कि आपको उन तीन परिणामों में से कौन-सा मिलेगा।
तीन फ़्लैग लगभग हर स्थिति को कवर करते हैं, और निर्णय इस बारे में है कि कनेक्शन कब शुरू होता है।
तीन सीक्रेट फ़्लैग, तीन व्यवहार
फ़्लैग 0 का अर्थ है कि सीक्रेट कनेक्शन के साथ सहेजा जाता है, जिस भी स्टोर में प्रोफ़ाइल हो। फ़्लैग 1 उसे एजेंट-स्वामित्व वाला बनाता है: सीक्रेट सीक्रेट एजेंट से आता है, जैसे डेस्कटॉप कीरिंग, और NetworkManager सक्रियण के समय उसे माँगता है। फ़्लैग 2 का अर्थ है सहेजा नहीं गया, इसलिए सीक्रेट कभी लिखा नहीं जाता और हर बार देना पड़ता है। फ़्लैग 4 किसी सीक्रेट को अनावश्यक चिह्नित करता है, उन कनेक्शनों के लिए जिन्हें सचमुच कोई नहीं चाहिए।
| Flag | Where it lives | Works unattended |
|---|---|---|
| 0 saved | Connection profile | Yes, if the store is readable |
| 1 agent-owned | Secret agent or keyring | Only if that agent is available |
| 2 not-saved | Nowhere | No |
फ़्लैग कनेक्शन के बजाय हर सीक्रेट के लिए सेट करें। एक कनेक्शन में एजेंट-स्वामित्व वाला पासवर्ड और सहेजा गया निजी-कुंजी पासफ़्रेज़ दोनों हो सकते हैं।
कनेक्शन कब शुरू होता है, उसके अनुसार तय करें
अगर लॉगिन किया हुआ उपयोगकर्ता कनेक्शन शुरू करता है, तो एजेंट-स्वामित्व उचित डिफ़ॉल्ट है: लॉगिन से कीरिंग अनलॉक हो जाती है और सीक्रेट कभी फ़ाइल में नहीं बैठता। अगर कनेक्शन किसी के लॉगिन करने से पहले उठना चाहिए, तो एजेंट-स्वामित्व गलत चुनाव है, क्योंकि अनलॉक करने के लिए कोई सत्र कीरिंग नहीं है।
पूरा निर्णय यही है। बाकी सब उसका एक रूप है।
लॉगिन से पहले चलने वाली सेवा के लिए सिस्टम-स्तरीय स्टोर या सुरक्षित कुंजी फ़ाइल समर्थित पैटर्न है, और फ़ाइल अनुमतियाँ ही सुरक्षा बन जाती हैं। बूट पर चलने वाली शेल स्क्रिप्ट में पासवर्ड चिपकाकर समस्या हल न करें।
कीरिंग क्या देती है और क्या नहीं
कीरिंग सीक्रेट को कनेक्शन प्रोफ़ाइल से बाहर रखती है और उसे उपयोगकर्ता सत्र से बाँधती है। यह सत्र-रहित सेवा के लिए सीक्रेट उपलब्ध नहीं कराती, और तार पर कुछ भी एन्क्रिप्ट नहीं करती। ये अलग गुण हैं जिन्हें लोग अक्सर मिला देते हैं। यह वास्तव में जो खरीदती है वह है छोटा प्रभाव-क्षेत्र जब प्रोफ़ाइल फ़ाइल लीक हो।
प्रोफ़ाइल जिस निजी कुंजी का संदर्भ देती है, उसे अपनी अनुमतियाँ चाहिए, चाहे पासवर्ड कहीं भी रहे।
सीक्रेट उँडाले बिना निदान
कनेक्शन नाम, UUID और फ़्लैग आमतौर पर विफलता समझाने के लिए पर्याप्त होते हैं। nmcli connection show प्रोफ़ाइल की सूची देता है, और सीक्रेट फ़्लैग बताते हैं कि पासवर्ड कहाँ से आना चाहिए था।
बचें --show-secrets टिकट और चैट में। एक बार चिपक जाने के बाद वह ट्रांसक्रिप्ट में एक क्रेडेंशियल है।
संग्रहण रद्दीकरण नहीं है
एक कीरिंग से सीक्रेट हटाना उस क्रेडेंशियल को अमान्य नहीं करता जिसे दूरस्थ ऑपरेटर पहले ही स्वीकार कर चुका है। खाता रद्द करना सर्वर-पक्ष की कार्रवाई है, और स्थानीय संग्रहण अलग मालिक वाला अलग मामला है।
दोनों का निर्णय घटना से पहले करें, घटना के दौरान नहीं। इंटरैक्टिव उपयोगकर्ता कनेक्शन और लॉगिन-पूर्व सेवा को अलग उत्तर चाहिए, और साझा शेल स्क्रिप्ट इनमें से कोई नहीं है। NetworkManager का सीक्रेट फ़्लैग दस्तावेज़ सभी मानों की सूची देता है।