Ubuntu-യിൽ ബൂട്ട് സമയത്ത് OpenVPN: NetworkManager അല്ലെങ്കിൽ systemd?
ലാപ്ടോപ്പിനും സ്ക്രീൻ ഇല്ലാത്ത സെർവറിനും വ്യത്യസ്ത ബൂട്ട് പാതകൾ ആവശ്യമാണ്. NetworkManager-ന്റെ ദ്വിതീയ കണക്ഷനെ openvpn-client@, അതിന്റെ ക്രെഡൻഷ്യൽ ഫയൽ എന്നിവയുമായി താരതമ്യം ചെയ്യുക.
മിക്ക ഗൈഡുകളും ഈ തിരഞ്ഞെടുപ്പിനെ ഉപരിപ്ലവമായ ഒന്നായി അവതരിപ്പിക്കുന്നു: ഒന്നുകിൽ NetworkManager ടണൽ ഉയർത്താൻ അനുവദിക്കുക, അല്ലെങ്കിൽ systemd ഇൻസ്റ്റൻസ് പ്രവർത്തനക്ഷമമാക്കി തീർക്കുക. സ്ക്രീൻ ഇല്ലാത്ത യന്ത്രത്തിൽ ഫലം തീരുമാനിക്കുന്ന ഒരു കാര്യത്തിൽ രണ്ടു പാതകളും വ്യത്യസ്തമാണ്, അതിന് ഏത് ഉപകരണം പുതിയതാണെന്നതുമായി യാതൊരു ബന്ധവുമില്ല. NetworkManager സെഷനിലൂടെ രഹസ്യങ്ങൾ തുറക്കുന്നു; systemd ഇൻസ്റ്റൻസിന് തുറക്കാൻ സെഷനില്ല. നിങ്ങളുടെ മുന്നിലുള്ള യന്ത്രത്തിന് യോജിക്കുന്ന രഹസ്യ കൈകാര്യം ഉള്ള പാത തിരഞ്ഞെടുക്കുക.
ബാക്കിയെല്ലാം, റൂട്ട് ഇൻസ്റ്റാളേഷൻ മുതൽ വീണ്ടും കണക്ട് ചെയ്യുന്ന സ്വഭാവം വരെ, ആദ്യ തീരുമാനത്തിൽ നിന്നാണ് വരുന്നത്.
ആരും പറയാത്ത വ്യത്യാസമാണ് കീറിംഗ്
NetworkManager-ന് ഒരു VPN പ്രൊഫൈൽ ഉള്ളപ്പോൾ, പാസ്വേഡ് ലോഗിൻ കീറിംഗിൽ ആകാം, ഉപയോക്താവ് സൈൻ ഇൻ ചെയ്യുമ്പോൾ അത് തുറക്കുന്നു. ലാപ്ടോപ്പിൽ അത് നന്നായി പ്രവർത്തിക്കുന്നു: വ്യക്തി അവിടെയുണ്ട്, കീറിംഗ് തുറക്കുന്നു, ടണൽ ഉയരുന്നു. മേൽനോട്ടമില്ലാതെ ബൂട്ട് ചെയ്യുന്ന സെർവറിൽ എന്തെങ്കിലും തുറക്കാൻ ആരുമില്ല, അതിനാൽ പ്രൊഫൈൽ ഒരിക്കലും വരാത്ത ഒരു രഹസ്യത്തിനായി കാത്തിരിക്കുന്നു. കണക്ഷൻ കോൺഫിഗർ ചെയ്തതായി തോന്നുന്നു, ഒരിക്കലും സജീവമാകുന്നുമില്ല.
systemd ഇൻസ്റ്റൻസ് ഡിസ്കിൽ നിന്ന് ക്രെഡൻഷ്യൽ ഫയൽ വായിച്ച് ആ പ്രശ്നം ഒഴിവാക്കുന്നു, അത് ഫയലിനെ നിങ്ങൾ സംരക്ഷിക്കുന്ന വസ്തുവാക്കുന്നു. chmod 400 ഉം root ഉടമസ്ഥതയും കുറഞ്ഞത് ആണ്, ഫയൽ നിങ്ങൾ നിയന്ത്രിക്കാത്ത ബാക്കപ്പുകളുടെയും ഇമേജ് ടെംപ്ലേറ്റുകളുടെയും പുറത്ത് നിൽക്കണം.
VPN-നെ ഒരു കണക്ഷനോട് ചേർക്കുന്നത് ബൂട്ട് ഗ്യാരണ്ടിയല്ല
nm-connection-editor-ൽ, VPN-ന് പകരം വയർഡ് അല്ലെങ്കിൽ വയർലെസ് കണക്ഷൻ തിരഞ്ഞെടുക്കുക, General ടാബ് തുറക്കുക, സ്വയമേവ VPN-ലേക്ക് കണക്ട് ചെയ്യാനുള്ള ഓപ്ഷൻ ടിക്ക് ചെയ്യുക, പ്രൊഫൈലിന് പേര് നൽകുക. തുടർന്ന് പ്രാഥമിക കണക്ഷൻ കണക്ട് ചെയ്ത അവസ്ഥയിലെത്തുമ്പോൾ NetworkManager VPN-നെ ദ്വിതീയ കണക്ഷനായി സജീവമാക്കുന്നു. ഇത് ഒരു ആശ്രിതത്വമാണ്, ഫയർവാൾ നിയമമല്ല. ടണൽ ഉയരുന്നതിന് മുമ്പുള്ള സെക്കൻഡുകളിൽ പാക്കറ്റുകൾക്ക് ഇപ്പോഴും പുറത്തുപോകാം, തുറക്കാൻ കഴിയാത്ത സംഭരിച്ച രഹസ്യം യന്ത്രത്തെ അതില്ലാതെ ഓൺലൈനിൽ വിടുന്നു.
ടണൽ ഇല്ലാതെ ഒന്നും പുറത്തുപോകരുത് എന്നതാണ് ആവശ്യമെങ്കിൽ, അത് പറയുകയും കിൽ സ്വിച്ച് നിർമ്മിക്കുകയും ചെയ്യുക, കാരണം ഈ ക്രമീകരണം ഒന്നും നൽകില്ല. സസ്പെൻഡും റെസ്യൂമും പരിശോധിക്കുക, കാരണം തിരികെ വരുമ്പോൾ ദ്വിതീയ കണക്ഷൻ വീണ്ടും വിലയിരുത്തപ്പെടുന്നു.
systemd ഇൻസ്റ്റൻസിന് ഒത്തുപോകുന്ന ഫയൽനാമം വേണം
പ്രൊഫൈൽ പാക്കേജ് പ്രതീക്ഷിക്കുന്ന ക്ലയന്റ് ഡയറക്ടറിയിൽ ഇടുക, ഉദാഹരണത്തിന് /etc/openvpn/client/office.conf, അതിനുള്ളിൽ നിന്ന് ക്രെഡൻഷ്യൽ ഫയലിനെ auth-user-pass office.cred ഉപയോഗിച്ച് റഫർ ചെയ്യുക. ഇൻസ്റ്റൻസിന്റെ പേര് സഫിക്സ് ഇല്ലാത്ത ഫയൽനാമമാണ്, അതിനാൽ openvpn-client@office ഫയൽ office.conf വായിക്കുന്നു. sudo systemctl enable --now openvpn-client@office ഉപയോഗിച്ച് അത് പ്രവർത്തനക്ഷമമാക്കുക, ബ്ലോഗിലെ ഉദാഹരണത്തിൽ വിശ്വസിക്കുന്നതിന് പകരം systemctl cat openvpn-client@office ഉപയോഗിച്ച് പൊരുത്തം സ്ഥിരീകരിക്കുക.
പ്രൊഫൈലിനുള്ളിലെ പാതകൾ പ്രൊഫൈലിനെ അല്ല, യൂണിറ്റിന്റെ പ്രവർത്തന ഡയറക്ടറിയെ ആശ്രയിച്ച് പരിഹരിക്കുന്നു, അതിനാൽ ആപേക്ഷിക ca അല്ലെങ്കിൽ auth-user-pass വരി കൈകൊണ്ട് പരിശോധിക്കുമ്പോൾ പ്രവർത്തിച്ചാലും ബൂട്ട് സമയത്ത് പരാജയപ്പെടാം. യൂണിറ്റ് കണ്ടെത്തേണ്ട എല്ലാത്തിനും കേവല പാതകൾ ഉപയോഗിക്കുക. തുടർന്ന് യഥാർത്ഥ ബൂട്ടിന് ശേഷം journalctl -u openvpn-client@office -b വായിക്കുക; ടണൽ ഇല്ലാതെ സജീവമെന്ന് റിപ്പോർട്ട് ചെയ്യുന്ന യൂണിറ്റ് സാധാരണയായി ആ ലോഗിൽ കാണാത്ത ഒരു ഫയലിന്റെ പേര് പറയുന്നു.
പഴയ പാക്കേജുകൾ വ്യത്യസ്ത ടെംപ്ലേറ്റ് നാമം നൽകുന്നു, അതിനാൽ ഈ ഹോസ്റ്റിൽ ഏതാണ് ഉള്ളതെന്ന് systemctl list-unit-files 'openvpn*' തീരുമാനിക്കുന്നു.
വീണ്ടും കണക്ട് ചെയ്യുന്ന സ്വഭാവം പ്രത്യേക തീരുമാനമാണ്
ping-restart ഉള്ള പ്രൊഫൈൽ ടണൽ വീണതിന് ശേഷം അത് വീണ്ടും നിർമ്മിക്കുന്നു, റീസ്റ്റാർട്ട് നിർദ്ദേശമുള്ള യൂണിറ്റ് സേവന തലത്തിൽ സമാനമായ എന്തോ ചെയ്യുന്നു. അവ നിങ്ങൾ തിരഞ്ഞെടുക്കുന്ന നയങ്ങളാണ്, അനന്തരാവകാശമായി ലഭിക്കുന്ന സ്ഥിരസ്ഥിതികളല്ല. കണക്ഷൻ ആവശ്യപ്പെടുമ്പോൾ മാത്രം ഉയരണമെങ്കിൽ, റീസ്റ്റാർട്ട് സ്വഭാവം ബോധപൂർവം നീക്കി എന്തുകൊണ്ടെന്ന് എഴുതുക. യൂണിറ്റ് നെറ്റ്വർക്ക് ഉപയോഗയോഗ്യമാകുന്നതിന് മുമ്പ് ആരംഭിക്കുന്നെങ്കിൽ, അതിന് വീണ്ടും ശ്രമിക്കാനുള്ള നയം ആവശ്യമാണ്, കാരണം ബൂട്ട് സമയത്തെ ഒരു പരാജയ ശ്രമം സ്വയം ആവർത്തിക്കുന്നില്ല.
നിർത്തുന്നതും അത്രതന്നെ അക്ഷരാർത്ഥമാണ്: sudo systemctl disable --now openvpn-client@office പ്രവർത്തിക്കുന്ന ഇൻസ്റ്റൻസ് നിർത്തി ബൂട്ട് ലിങ്ക് നീക്കുന്നു. അപ്രവർത്തനക്ഷമമാക്കൽ മാത്രം ടണലിനെ അടുത്ത റീബൂട്ട് വരെ പ്രവർത്തിക്കാൻ അനുവദിക്കുന്നു, അപ്രവർത്തനക്ഷമമാക്കി പരിശോധിക്കുകയും ഇന്റർഫേസ് ഉയർന്നു നിൽക്കുന്നത് കാണുകയും ചെയ്യുന്ന ഏവരെയും ഇത് അത്ഭുതപ്പെടുത്തുന്നു.
റീബൂട്ട് ചെയ്ത ശേഷം നാല് കാര്യങ്ങൾ ക്രമത്തിൽ പരിശോധിക്കുക
സേവനം റീസ്റ്റാർട്ട് ചെയ്യുന്നത് സേവനത്തെ പരിശോധിക്കുന്നു; യന്ത്രം റീബൂട്ട് ചെയ്യുന്നത് ബൂട്ട് പാതയെ പരിശോധിക്കുന്നു. റീബൂട്ടിന് ശേഷം യൂണിറ്റ് ഉയർന്നുവെന്ന്, തുടർന്ന് ദൂരെയുള്ള സബ്നെറ്റിന് റൂട്ട് ഉണ്ടെന്ന്, തുടർന്ന് യന്ത്രം ഇന്റർനെറ്റിന് ഏത് വിലാസം കാണിക്കുന്നുവെന്ന്, ഒടുവിൽ പേരുകൾ ടണലിലൂടെ പരിഹരിക്കപ്പെടുന്നുവെന്ന് സ്ഥിരീകരിക്കുക. എന്തെങ്കിലും തെറ്റായാൽ ആ നാല് പരിശോധനകളും അതേ ക്രമത്തിൽ പരാജയപ്പെടുന്നു, അത് ആദ്യ പരാജയത്തെ ഉപയോഗപ്രദമാക്കുന്നു.
റൂട്ട് ഇല്ലാതെ സജീവമായ യൂണിറ്റ് സാധാരണയായി അർത്ഥമാക്കുന്നത് പ്രൊഫൈൽ കണക്ട് ചെയ്തു, പക്ഷേ സെർവർ ഒരു റൂട്ടും തള്ളിയില്ല, അല്ലെങ്കിൽ പിന്നീട് അപ്രത്യക്ഷമായ ഇന്റർഫേസിൽ റൂട്ട് ഇൻസ്റ്റാൾ ചെയ്തു എന്നാണ്. പേര് തിരയൽ പ്രവർത്തിക്കാത്ത റൂട്ട് ടണലിനെയല്ല, DNS കോൺഫിഗറേഷനെയാണ് സൂചിപ്പിക്കുന്നത്.
ടണൽ ഉയരാൻ കഴിയാത്തപ്പോൾ എന്ത് സംഭവിക്കണമെന്ന് മുൻകൂട്ടി തീരുമാനിക്കുക. സാധാരണ കണക്റ്റിവിറ്റിയിലേക്ക് മടങ്ങുന്നത് ഒരു നയമാണ്, അത് ആദ്യം ആരംഭിച്ച മാനേജർക്ക് വിടുന്നതിന് പകരം എഴുതിവെക്കണം.