OpenVPN नियन्त्रक टर्मिनलमा प्रयोगकर्तानाम र पासवर्ड माग्छ, र मानक इनपुटतर्फ मोडिएको फाइल त्यो टर्मिनल होइन। यही एउटा विवरणले पासवर्ड पाइपभित्रै हुँदा पनि अड्किने स्क्रिप्टको व्याख्या गर्छ। प्रम्प्ट क्लाइन्टले कोर्छ र पढाइ टर्मिनल यन्त्रबाट हुन्छ, त्यसैले stdin मोड्दा केही बदलिँदैन। क्लाइन्टलाई यसका कागजातीय इनपुट बाटामध्ये एउटाबाट खुवाउनुहोस् र त्यही स्क्रिप्ट पहिलो प्रयासमै जोडिन्छ।

तीन बाटाले लगभग सबै अवस्था ढाक्छन्, र प्रत्येक आफ्नै तरिकाले असफल हुन्छ। क्लाइन्टले वास्तवमै देखाउने प्रम्प्टका आधारमा छान्नुहोस्, स्क्रिप्ट गर्न सजिलो विकल्पका आधारमा होइन।

प्रम्प्ट stdin बाट आउँदैन

OpenVPN लाई प्रमाणहरू चाहिँदा यसले नियन्त्रक टर्मिनल खोल्छ र त्यहीँबाट पढ्छ। त्यसैले अन्तरक्रियात्मक परीक्षण राम्रो देखिन्छ, तर cron वा unit फाइलअन्तर्गत त्यही आदेश कसैले नहेर्ने लगमा प्रम्प्ट लेखेर निष्क्रिय बस्छ। केही बिल्ड टर्मिनल नभएपछि मानक इनपुटतर्फ फर्कन्छन्, र यो असंगति कठोर असफलताभन्दा पनि खराब छ, किनकि यसले तैनाथीसम्म समस्या लुकाउँछ।

कुनै कोड लेख्नुअघि वातावरण जाँच्नुहोस्: शेड्युलर वा सेवा प्रबन्धकले प्रयोग गर्ने त्यही प्रयोगकर्ता र त्यही stdin सँग क्लाइन्ट चलाउनुहोस्। प्रम्प्ट कहिल्यै लगमा नदेखिए र प्रक्रिया अगाडि नबढे, केही नहुने टर्मिनल पर्खिरहेको छ।

पहिलो बाटो: दुई लाइने प्रमाण फाइल

प्रमाणीकरण विकल्पले बाटो लिन्छ, र फाइलमा ठ्याक्कै दुई लाइन हुन्छन्, पहिले प्रयोगकर्तानाम त्यसपछि पासवर्ड, अरू केही हुँदैन। पूर्वनिर्धारित फाइलनाममा भर नपर्दै बाटो स्पष्ट रूपमा दिनुहोस्, किनकि कामको डाइरेक्टरीमा छाडिएको प्रमाण फाइल नै गलत खाता प्रयोगमा आउने बाटो हो। मोड 0600 मा राख्नुहोस् र मालिकत्व क्लाइन्ट चलाउने खातालाई दिनुहोस्।

क्लाइन्टले त्यो फाइल सुरुमा एक पटक पढ्छ, त्यसैले पासवर्ड घुमाउनु भनेको प्रक्रिया पुनः सुरु गर्नु हो। सामान्यतया त्यही चाहेको व्यवहार हो, र त्यो घुमाउने प्रक्रियाको छेउमै रनबुकमा रहनुपर्छ।

दोस्रो बाटो: कुञ्जीको पासफ्रेजका लागि askpass

पासफ्रेजले सुरक्षित निजी कुञ्जीले दोस्रो, फरक प्रम्प्ट उठाउँछ, र त्यसको आफ्नै फाइलमा आधारित उत्तर हुन्छ: askpass विकल्पले फाइलको पहिलो लाइनबाट पासफ्रेज पढ्छ। SSH मा आधारित सुरुङका लागि समान कुरा क्लाइन्टले चलाउने askpass प्रोग्राम हो, र त्यसको मानक आउटपुट रहस्य बन्छ।

दुवै रूपले रहस्यलाई तर्कसूचीमा राख्दैन, र दुवैले यसलाई फाइल वा यसलाई छाप्ने कार्यान्वयनका रूपमा रहन दिन्छ। सुरक्षा फाइल अनुमति र प्रक्रिया मालिकत्व हो, गोप्यता होइन। कोडमा लेखिएको स्ट्रिङ दोहोर्याउने सहायक थप चरण भएको रहस्य हो।

तेस्रो बाटो: पोर्टल क्लाइन्टको आफ्नै CLI

उद्यम क्लाइन्टहरूले सामान्यतया कुनै विन्डो बिना नाम दिइएको पोर्टलमा जोडिने आदेश-लाइन प्रवेश बिन्दु दिन्छन्, र त्यही समर्थित बाटो हो। Linux मा GlobalProtect क्लाइन्टले आफ्नो CLI मार्फत जडान र प्रमाणपत्र आयात कार्य दिन्छ, र प्रमाणपत्र प्रमाणीकरण प्रयोग गर्ने पोर्टलहरूलाई स्वचालित जडान चल्नुअघि आयात चरण चाहिन्छ। कृत्रिम कुञ्जी थिचाइभन्दा यसैलाई रोज्नुहोस्: साँचो निकास स्थिति पाइन्छ, विन्डो फोकसमा निर्भरता हुँदैन, र लक भएको स्क्रिनमा पनि टिक्छ।

पहिलो जडानलाई अझै प्रमाणपत्र स्वीकार गर्न मानिस चाहिएको छ भने स्वचालन पूरा भएको छैन। सेटअपकै क्रममा आयात गर्नुहोस् र त्यसलाई पूर्वशर्तका रूपमा लेख्नुहोस्।

जब प्रवाहलाई स्युडो-टर्मिनल चाहिन्छ

पहिले पासवर्ड अनि एक-पटकको कोड माग्ने क्रमसँग पढ्ने एउटै फाइल हुँदैन। Expect जस्तो टर्मिनल ड्राइभर सही साधन हो, किनकि यो प्रत्येक ढाँचालाई पालैपालो पर्खन्छ, र केही मिलाउनुअघि प्रक्रिया सुरु भइसकेको हुनुपर्छ।

दुई असफलता प्रबल छन्। क्लाइन्ट नचलाई प्रम्प्ट पर्खने स्क्रिप्ट सधैं पर्खिरहन्छ, र Tcl शेल होइन, त्यसैले expect ब्लकभित्र लेखिएको शेल अंकगणित पढिएजस्तै मूल्याङ्कन हुँदैन। ढाँचा बनाउँदा डिबग झन्डा खुला राख्नुहोस्, त्यसपछि बन्द गर्नुहोस्।

चुहिने रहस्यहरू, र तिनीहरू कहाँ लुक्छन्

तर्कका रूपमा दिइएको जुनसुकै कुरा प्रक्रिया सूचीमा देखिन्छ, त्यसैले प्रमाणहरूको ठाउँ फाइलमा वा सहायकको पछाडि हो, कहिल्यै आदेश लाइनमा होइन। एक-पटकका कोड डिजाइनअनुसार खर्च हुन्छन् र हरेक प्रयासका लागि बनाउनुपर्छ। असफलता लगहरूले प्रायः प्रयोगकर्तानाम र कहिलेकाहीँ थप कुरा बोक्छन्, त्यसैले कतै पठाउनुअघि ती मेट्नुहोस्, र रहस्य प्रोफाइलबाहिरै राख्नुहोस्, किनकि भित्र पासवर्ड भएको कन्फिग फाइल टिकट र रिपोजिटरीमा टाँसिन्छ। त्यसपछि खाता घुमाउनु भनेको हरेक प्रतिको सिकार हुनु हो, र यही लागत यो मिलाइले टार्छ।

तपाईंले रोजेका बाटाहरूको लेखापरीक्षण गर्नुहोस्, त्यसपछि तिनलाई साँच्चै क्लाइन्ट चलाउने unit फाइल वा शेड्युलरमा जोड्नुहोस्। सुरुङ त्यो प्रक्रिया बाँचुन्जेल मात्र बाँच्छ।

सम्बन्धित लेखहरू