ഓരോ വരിയിലും ഒരു OpenVPN നിർദ്ദേശം, എന്തുകൊണ്ട് വരി മടക്കുന്നത് കള്ളം പറയുന്നു
മൃദുവായി മടക്കിയ സ്ക്രീൻ ഫയലിലെ പുതിയ വരിയല്ല. കേടായ ഭാഗം അപരിചിതന്റെ ടെംപ്ലേറ്റ് ഉപയോഗിച്ച് മാറ്റുന്നതിന് മുമ്പ് യഥാർത്ഥ വരി ഇടവേളകൾ പരിശോധിക്കുക.
മുമ്പ് ആരംഭിച്ചിരുന്ന ഒരു പ്രൊഫൈൽ ഇപ്പോൾ ഓപ്ഷൻ പിശകിനാൽ പരാജയപ്പെടുന്നു, കൂടാതെ പാഴ്സർ ഉദ്ധരിക്കുന്ന വരി സ്ക്രീനിൽ പൂർണ്ണമായും ന്യായയുക്തമായി തോന്നുന്നു. ഇതാണ് കെണി: കോൺഫിഗറേഷൻ ഫയൽ ഭൗതിക വരികളുടെ പട്ടികയാണ്, ഓരോന്നിലും ഒരു ഓപ്ഷൻ കീവേഡും അതിന്റെ ആർഗ്യുമെന്റുകളും ഉണ്ട്, എഡിറ്റർ മടക്കിയ നീണ്ട വരി ബൈറ്റുകൾ കാണുന്നതുവരെ രണ്ട് വരികളെപ്പോലെ തോന്നുന്നു. നെറ്റ്വർക്ക്, സർട്ടിഫിക്കറ്റ് അല്ലെങ്കിൽ ടണൽ ഈ പരാജയ വിഭാഗത്തിൽ ഉൾപ്പെടുന്നില്ല. സ്ക്രീനിൽ ഒരേപോലെ തോന്നുന്ന രണ്ട് വരികൾ ഒരു ബൈറ്റ് വ്യത്യാസപ്പെടാം.
താഴെയുള്ള പരിശോധനകൾ ക്രമത്തിൽ ചെയ്ത് ആദ്യ പരാജയത്തിൽ നിർത്തുക. ഓരോന്നും അടുത്തതിനേക്കാൾ വിലകുറഞ്ഞതാണ്, ഓരോന്നും വ്യത്യസ്ത വിശദീകരണം ഒഴിവാക്കുന്നു.
ഒരു വരി, ഒരു നിർദ്ദേശം
പാഴ്സർ ഒരു വരി വായിക്കുന്നു, ആദ്യ വാക്ക് ഓപ്ഷനായി എടുക്കുന്നു, ബാക്കി ആ ഓപ്ഷന്റെ ആർഗ്യുമെന്റുകളായി കണക്കാക്കുന്നു. അതിനാൽ 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
പാഴ്സിംഗ് ഘട്ടം കടന്നുകഴിഞ്ഞാൽ അടുത്ത പരാജയം പദസമ്പത്തിനെക്കുറിച്ചല്ല, ഫയൽ, സർട്ടിഫിക്കറ്റ് അല്ലെങ്കിൽ സൈഫറിനെക്കുറിച്ചായിരിക്കും, അത് യഥാർത്ഥ പുരോഗതിയാണ്. പ്രവർത്തന പകർപ്പും എന്താണ് ചേർത്തതെന്നതിനെക്കുറിച്ചുള്ള ഒരു വരി കുറിപ്പും സൂക്ഷിക്കുക; അതേ ഒട്ടിക്കൽ അതേ ടീമിലെ മറ്റൊരാൾക്ക് വീണ്ടും സംഭവിക്കും.