पहिले सुरु हुने प्रोफाइल अहिले विकल्प त्रुटिले असफल हुन्छ, र पार्सरले उद्धृत गर्ने हर स्क्रिनमा पूर्ण रूपमा उचित देखिन्छ। यही जाल हो: कन्फिगरेसन फाइल भौतिक हरहरूको सूची हो, प्रत्येकमा एउटा विकल्प कीवर्ड र त्यसका तर्कहरू हुन्छन्, र सम्पादकले बाङ्ग्याएको लामो हर बाइट नहेर्दासम्म दुई हरजस्तै देखिन्छ। सञ्जाल, प्रमाणपत्र वा टनेल यो असफलताको वर्गमा संलग्न छैनन्। स्क्रिनमा उस्तै देखिने दुई हर एक बाइटले फरक हुन सक्छन्।

तलका जाँचहरू क्रममा गर्नुहोस् र पहिलो असफल जाँचमा रोकिनुहोस्। प्रत्येक अर्कोभन्दा सस्तो छ, र प्रत्येकले फरक व्याख्या हटाउँछ।

एउटा हर, एउटा निर्देश

पार्सर एउटा हर पढ्छ, पहिलो शब्द विकल्पका रूपमा लिन्छ र बाँकी त्यस विकल्पका तर्क मान्छ। त्यसैले cert server.crt port 1194 जस्तो हर दुई लगातार निर्देश होइन। यो तीन तर्क भएको एउटा cert विकल्प हो, र तेस्रो त्यस्तो फाइल नाम होइन जुन विकल्पले स्वीकार्छ। त्रुटिलाई हराएको हर ब्रेकका रूपमा पढ्न सही छ; त्यसलाई हराएको निर्देशका रूपमा पढ्न सही छैन।

# malformed: one option, three arguments
cert server.crt port 1194

# intended: two options, one argument each
cert server.crt
port 1194

ती दुई सुधारिएका हरहरू एउटा टुक्रा हुन्, कन्फिगरेसन होइन। सीमा कहाँ पर्छ देखाउन तिनी छन्। प्रोफाइलमा हरेक साधारण निर्देशले त्यही नियम पछ्याउँछ, र दुईलाई जोड्ने हरले या तर्क त्रुटि दिन्छ या विकल्पले नखोजेको मान दिन्छ।

हर ब्रेक वास्तविक हो भनी प्रमाणित गर्नुहोस्

सम्पादकहरू देखाउनका लागि बाङ्ग्याउँछन्। केहीले टाँस्दा कडा ब्रेक पनि घुसाउँछन्, केहीले गर्दैनन्, त्यसैले उही दृश्य नतिजा दुई धेरै फरक फाइलबाट आउन सक्छ। केही बदल्नुअघि हरका अन्त्य देखाउनुहोस् र हर गन्नुहोस्। नाप्न एउटा आदेशको खर्च छ; अनुमान गर्न एक साँझको।

cat -A /etc/openvpn/server/lab.conf | sed -n '10,20p'
awk 'NR>=10 && NR<=20 {printf "%d:%s\n", NR, $0}' /etc/openvpn/server/lab.conf

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

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

निर्देशको सूची होइन, मार्ग उद्धृत गर्नुहोस्

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

cert "/etc/openvpn/pki/lab certs/server.crt"
key "/etc/openvpn/pki/lab certs/server.key"

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

इनलाइन ब्लकहरू ब्लकका रूपमा राख्नुहोस्

प्रोफाइलहरूले प्रमाणपत्र र कुञ्जीहरू इनलाइन राख्न सक्छन्, र ती ब्लकहरू डेटा हुन्, कन्फिगरेसन होइन। ब्लकभित्रका PEM हरहरू समतल बनाउने, पुनः इन्डेन्ट गर्ने वा जोड्ने विकल्प होइनन्, र ब्लकका चिन्हहरू आफ्नै हरमा रहनुपर्छ।

इनलाइन ब्लकलाई अपारदर्शी क्षेत्र मान्नुहोस्: वरिपरिका विकल्प हर सुधार्नुहोस्, यसको सामग्री बाइट-दर-बाइट अछुतो राख्नुहोस्, र यसलाई कहिल्यै सार्वजनिक सहयोग थ्रेडमा टाँस्नुहोस्। यदि ढाँचा उपकरणले ब्लक पुनः लेख्यो भने हातले मर्मत गर्नुको सट्टा तपाईंको PKI बाट पुनर्स्थापित गर्नुहोस्।

टेम्प्लेट होइन, सबैभन्दा सानो खण्ड सुधार्नुहोस्

लोभ्याउने मर्मत भनेको पूरै फाइललाई „काम गर्ने” ट्युटोरियलको कन्फिगरेसनले बदल्नु हो। यसले एउटा बिग्रिएको हरलाई कसैले समीक्षा नगरेका नीति परिवर्तनहरूको समूहसँग बदल्छ: फरक DH प्यारामिटर, कम्प्रेसन सेटिङ, साइफर छनोट, दोहोरिएका श्रोता। मूल समस्या सानो र स्थानीय छ, र प्रतिस्थापन ती दुवै होइन।

प्रोफाइललाई सुरक्षित कार्यरत फाइलमा प्रतिलिपि गर्नुहोस्, त्यस प्रतिमा हर सीमा सुधार्नुहोस्, र सेवाको सामान्य मालिकलाई यो लोड गर्न दिनुहोस्। त्यसपछि इन्स्ट्यान्स सुरु गर्नुहोस् र पहिलो त्रुटि, भएमा, सुरुदेखि पढ्नुहोस्।

openvpn --config /etc/openvpn/server/lab.conf --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log

विश्लेषण चरण पार भएपछि अर्को असफलता शब्दावलीको सट्टा फाइल, प्रमाणपत्र वा साइफरबारे हुनेछ, र यो वास्तविक प्रगति हो। कार्यरत प्रतिलिपि र के जोडियो भन्नेबारे एक हरको टिप्पणी राख्नुहोस्; त्यही टाँस्ने काम उही टोलीको अर्कोसँग फेरि हुनेछ।

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