OpenVPN पासवर्ड टर्मिनलवरून वाचतो, stdin वरून नाही
OpenVPN पासवर्ड प्रत्यक्षात कुठे वाचतो, stdin वरील फाइल का अयशस्वी होते, आणि Linux व macOS वर स्क्रिप्टेड साइन-इनसाठी तीन समर्थित मार्ग.
OpenVPN नियंत्रक टर्मिनलवर वापरकर्तानाव आणि पासवर्ड मागतो, आणि प्रमाणित इनपुटकडे वळवलेली फाइल ते टर्मिनल नाही। हाच एक तपशील पासवर्ड पाइपमध्ये असूनही अडकणाऱ्या स्क्रिप्टचे स्पष्टीकरण देतो। सूचना क्लायंट काढतो आणि वाचन टर्मिनल उपकरणातून होते, त्यामुळे stdin वळवल्याने काहीही बदलत नाही। क्लायंटला त्याच्या दस्तऐवजी इनपुट मार्गांपैकी एकातून पुरवा आणि तीच स्क्रिप्ट पहिल्याच प्रयत्नात जोडली जाईल।
तीन मार्ग जवळजवळ प्रत्येक प्रसंग झाकतात, आणि प्रत्येक स्वतःच्या पद्धतीने अयशस्वी होतो। क्लायंट प्रत्यक्षात जी सूचना दाखवतो त्यानुसार निवडा, स्क्रिप्ट करण्यास सर्वात सोपा पर्याय यानुसार नाही।
सूचना stdin वरून येत नाही
OpenVPN ला ओळखपत्रे लागल्यावर तो नियंत्रक टर्मिनल उघडतो आणि तिथून वाचतो। म्हणूनच इंटरॅक्टिव चाचणी ठीक दिसते, पण cron किंवा unit फाइलखाली तोच आदेश कोणीही न पाहणाऱ्या लॉगमध्ये सूचना लिहून निष्क्रिय उभा असतो। काही बिल्ड टर्मिनल नसल्यास प्रमाणित इनपुटकडे परत जातात, आणि ही विसंगती कठोर अयशस्वीपेक्षा वाईट आहे, कारण ती तैनातीपर्यंत समस्या लपवते।
कोणताही कोड लिहिण्यापूर्वी वातावरण तपासा: शेड्युलर किंवा सेवा व्यवस्थापक वापरणार तोच वापरकर्ता आणि तोच stdin घेऊन क्लायंट चालवा। सूचना कधीही लॉगमध्ये न दिसल्यास आणि प्रक्रिया पुढे न सरकल्यास, काहीतरी अस्तित्वात नसलेल्या टर्मिनलची वाट पाहत आहे।
पहिला मार्ग: दोन ओळींची ओळखपत्र फाइल
प्रमाणीकरण पर्याय मार्ग घेतो, आणि फाइलमध्ये नेमक्या दोन ओळी असतात, आधी वापरकर्तानाव नंतर पासवर्ड, दुसरे काहीही नाही। डीफॉल्ट फाइलनावावर अवलंबून राहण्याऐवजी मार्ग स्पष्टपणे द्या, कारण कामाच्या डिरेक्टरीत पडलेली ओळखपत्र फाइल हाच चुकीचे खाते वापरात येण्याचा मार्ग। मोड 0600 वर ठेवा आणि मालकी क्लायंट चालवणाऱ्या खात्याला द्या।
क्लायंट ती फाइल सुरुवातीला एकदाच वाचतो, त्यामुळे पासवर्ड फिरवणे म्हणजे प्रक्रिया पुन्हा सुरू करणे। सहसा तेच इच्छित वर्तन असते, आणि ते फिरवण्याच्या प्रक्रियेच्या शेजारी रनबुकमध्ये असावे।
दुसरा मार्ग: कीच्या पासफ्रेससाठी askpass
पासफ्रेसने संरक्षित खाजगी की दुसरी, वेगळी सूचना उठवते, आणि तिचे स्वतःचे फाइल-आधारित उत्तर असते: askpass पर्याय फाइलच्या पहिल्या ओळीतून पासफ्रेस वाचतो। SSH-आधारित बोगद्यांसाठी समतुल्य गोष्ट म्हणजे क्लायंट चालवणारा askpass कार्यक्रम, आणि त्याचे प्रमाणित आउटपुट गुपित होते।
दोन्ही स्वरूपांपैकी कोणतेही गुपित वितर्क-यादीत ठेवत नाही, आणि दोन्ही ते फाइल म्हणून किंवा ते छापणारे कार्यान्वित म्हणून राहू देतात। संरक्षण म्हणजे फाइल परवानग्या आणि प्रक्रिया मालकी, गुप्तता नाही। कोडमध्ये लिहिलेली मालिका पुन्हा उच्चारणारा सहाय्यक म्हणजे अधिक पायऱ्यांचे गुपित।
तिसरा मार्ग: पोर्टल क्लायंटची स्वतःची CLI
एंटरप्राइझ क्लायंट सहसा कोणत्याही विंडोशिवाय नामांकित पोर्टलशी जोडणारा आदेश-ओळ प्रवेश बिंदू देतात, आणि तोच समर्थित मार्ग। Linux वर GlobalProtect क्लायंट आपल्या CLI द्वारे कनेक्ट आणि प्रमाणपत्र आयात क्रिया देतो, आणि प्रमाणपत्र प्रमाणीकरण वापरणाऱ्या पोर्टलांना स्वयंचलित कनेक्ट कार्य करण्यापूर्वी आयातीची पायरी लागते। कृत्रिम की-दाबांपेक्षा तोच निवडा: तुम्हाला खरा निर्गम स्थिती मिळतो, विंडो फोकसवर अवलंबन नसते, आणि लॉक झालेल्या स्क्रीनवरही टिकतो।
पहिल्या कनेक्शनला अजूनही प्रमाणपत्र स्वीकारण्यासाठी माणूस हवा असल्यास, स्वयंचलन पूर्ण झालेले नाही। सेटअपच्या वेळी आयात करा आणि ती पूर्वअट म्हणून नोंदवा।
प्रवाहाला स्यूडो-टर्मिनल लागल्यास
आधी पासवर्ड आणि नंतर एकदाच वापरण्याचा कोड मागणाऱ्या क्रमाकडे वाचण्यासाठी एकही फाइल नाही। Expect सारखा टर्मिनल ड्रायव्हर योग्य साधन आहे, कारण तो प्रत्येक नमुन्याची यथाक्रम वाट पाहतो, आणि काहीही जुळवण्यापूर्वी प्रक्रिया सुरू असणे आवश्यक आहे।
दोन अयशस्वी प्रमुख आहेत। क्लायंट न सुरू करता सूचनेची वाट पाहणारी स्क्रिप्ट कायमची वाट पाहते, आणि Tcl ही शेल नाही, त्यामुळे expect ब्लॉकमध्ये लिहिलेले शेल अंकगणित वाचले जाते तसे मूल्यांकन होत नाही। नमुने तयार करताना डीबग ध्वज सुरू ठेवा, नंतर बंद करा।
गळणारी गुपिते, आणि ती कुठे लपतात
वितर्क म्हणून दिलेली कोणतीही गोष्ट प्रक्रिया यादीत दिसते, त्यामुळे ओळखपत्रांची जागा फाइलमध्ये किंवा सहाय्यकाच्या मागे असते, कधीही आदेश ओळीवर नाही। एकदाच वापरण्याचे कोड रचनेनुसार खर्च होतात आणि प्रत्येक प्रयत्नासाठी तयार करावे लागतात। अयशस्वी लॉगमध्ये बऱ्याचदा वापरकर्तानाव आणि कधीकधी त्याहून अधिक असते, त्यामुळे कुठेही पाठवण्यापूर्वी ते पुसून टाका, आणि गुपित प्रोफाइलबाहेर ठेवा, कारण आत पासवर्ड असलेली संरचना फाइल तिकिटे आणि रेपॉझिटरींमध्ये चिकटवली जाते। मग खाते फिरवणे म्हणजे प्रत्येक प्रतिची शिकार, आणि हाच खर्च ही मांडणी टाळते।
तुम्ही निवडलेल्या मार्गांचे ऑडिट करा, नंतर ते खरोखर क्लायंट चालवणाऱ्या unit फाइल किंवा शेड्युलरशी जोडा। बोगदा ती प्रक्रिया जगेपर्यंतच जगतो।