നിങ്ങൾ ലോഗിൻ ചെയ്തിരിക്കുമ്പോൾ കമാൻഡ് പ്രവർത്തിക്കും, അതിനാൽ അത് ഒരു സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റിൽ ഇട്ട് വീട്ടിലേക്ക് പോകുന്നു. അടുത്ത ദിവസം രാവിലെ യന്ത്രം ഓൺലൈനാണ്, ടണൽ അല്ല. പ്രവർത്തിക്കുന്ന ഒരു വിളി പ്രവർത്തിക്കുന്ന ഒരു സേവനമാണ് എന്നത് ഒരു മിത്താണ്. പ്രായോഗികമായി വ്യത്യാസം സാധാരണയായി രണ്ട് കാര്യങ്ങളിൽ ഒന്നാണ്: പ്രൊഫൈൽ സിസ്റ്റത്തിനല്ല, നിങ്ങളുടെ ഉപയോക്തൃ സെഷനുള്ളതാണ്, അല്ലെങ്കിൽ നിങ്ങൾ ലോഗിൻ ചെയ്തതിന് ശേഷം മാത്രം നിലനിൽക്കുന്ന എന്തോ ഒന്ന് രഹസ്യം തുറക്കുന്നു. രണ്ടും കൈകൊണ്ടുള്ള പരിശോധനയിൽ മികച്ച രീതിയിൽ പ്രവർത്തിക്കുന്നു, ആരും നോക്കാത്ത അതേ നിമിഷത്തിൽ പരാജയപ്പെടുന്നു.

ലോഗിൻ അത് പ്രവർത്തിപ്പിക്കുന്നത് എന്തുകൊണ്ട്

ഗ്രാഫിക്കൽ ലോഗിൻ ഒരു സെഷൻ ബസും രഹസ്യ സേവന ഏജന്റും തുടങ്ങുന്നു, ധാരാളം ഡെസ്ക്ടോപ്പ്-അധിഷ്ഠിത ക്ലയന്റുകൾ പ്രൊഫൈലിന്റെ പാസ്വേഡോ സ്വകാര്യ കീയുടെ പാസ്ഫ്രെയ്സോ അവിടെയാണ് സൂക്ഷിക്കുന്നത്. ലോഗിന് ശേഷം നിങ്ങളുടെ ഉപയോക്താവായി പ്രവർത്തിക്കുന്ന ആക്ടിവേഷന് ആ ഏജന്റിനോട് രഹസ്യം ചോദിച്ച് വിജയിക്കാം. ബൂട്ട് സമയ യൂണിറ്റ് നടത്തുന്ന അതേ ആക്ടിവേഷന് സെഷനോ ബസോ ഏജന്റോ ഇല്ല, അതിനാൽ തിരയൽ പരാജയപ്പെടുന്നു അല്ലെങ്കിൽ ആരും കാണാത്ത ഒരു പ്രോംപ്റ്റിൽ തടയുന്നു.

അതേ പ്രൊഫൈൽ ലോഗിന് മുമ്പും ശേഷവും പ്രവർത്തിപ്പിക്കുക, ഒരു കോൺഫിഗറേഷനിൽ നിന്ന് രണ്ട് വ്യത്യസ്ത ഫലങ്ങൾ ലഭിക്കും. ഇത് തകർന്ന ടണലിന്റെയല്ല, ക്രെഡൻഷ്യലുകളിലുള്ള ആശ്രിതത്വത്തിന്റെ അടയാളമാണ്, ടെർമിനലിലെ കൈകൊണ്ടുള്ള പരിശോധന കാണുന്നതിനേക്കാൾ കുറച്ച് മാത്രം തെളിയിക്കുന്നത് എന്തുകൊണ്ടെന്ന് ഇത് വിശദീകരിക്കുന്നു. ടണൽ കുഴപ്പമില്ല; അതിന്റെ രഹസ്യം തുറക്കുന്ന കാര്യം കാണുന്നില്ല.

ടണൽ ആരു തുടങ്ങണമെന്ന് തീരുമാനിക്കുക

രണ്ട് പിന്തുണയ്ക്കുന്ന മാതൃകകളുണ്ട്, അവ കൂട്ടിച്ചേർക്കുന്നതാണ് ഇത് പരാജയപ്പെടുന്ന മറ്റൊരു വഴി. NetworkManager ഒരു സിസ്റ്റം-സ്കോപ്പ് കണക്ഷൻ സജീവമാക്കാം, യന്ത്രം ഇതിനകം അവിടെ അതിന്റെ നെറ്റ്വർക്കിംഗ് കേന്ദ്രീകരിച്ചിരിക്കുമ്പോൾ ഇത് അനുയോജ്യമാണ്. പകരമായി, സമർപ്പിത systemd യൂണിറ്റ് VPN നേരിട്ട് പ്രവർത്തിപ്പിക്കുകയും ഇന്റർഫേസ് സ്വയം കൈവശം വയ്ക്കുകയും ചെയ്യുന്നു.

systemctl list-unit-files 'openvpn*'
systemctl list-unit-files 'wg-quick*'
nmcli connection show --active
systemctl enable --now wg-quick@wg0

ഒരു കോൺഫിഗറേഷനിൽ രണ്ട് ഉടമകളെയും പ്രവർത്തിപ്പിക്കരുത്. NetworkManager ഇന്റർഫേസ് നിയന്ത്രിക്കുകയും ഒരു യൂണിറ്റ് അത് ഉയർത്തുകയും ചെയ്താൽ, അവ റൂട്ടുകൾക്കും DNS-നും വേണ്ടി തർക്കിക്കും, ഫലമായുണ്ടാകുന്ന അവസ്ഥ ആരാണ് അവസാനം പൂർത്തിയാക്കിയത് എന്നതിനെ ആശ്രയിച്ചിരിക്കും.

സേവനത്തിന് വായിക്കാവുന്ന ഇടത്ത് രഹസ്യം വയ്ക്കുക

പിന്നണി സേവനത്തിന് ഒരു പ്രോംപ്റ്റിന് ഉത്തരം നൽകാനാവില്ല. സർട്ടിഫിക്കറ്റ് പാസ്ഫ്രെയ്സുകൾ, അക്കൗണ്ട് പാസ്വേഡുകൾ, റഫർ ചെയ്ത പ്രാമാണീകരണ ഫയലുകൾ—എല്ലാത്തിനും യൂണിറ്റിന് മനുഷ്യനില്ലാതെ എത്തിച്ചേരാവുന്ന, സേവനം പ്രവർത്തിപ്പിക്കുന്ന അക്കൗണ്ടിന്റെ ഉടമസ്ഥതയിലുള്ള, മറ്റെല്ലാർക്കും വായിക്കാനാവാത്ത സംഭരണ ക്രമീകരണം ആവശ്യമാണ്.

പ്രലോഭനീയമായ ഷോർട്ട്കട്ട് എന്നത് അനുമതി പിശക് അപ്രത്യക്ഷമാകുന്നതുവരെ ഫയൽ എല്ലാവർക്കും വായിക്കാവുന്നതാക്കുക എന്നതാണ്. അത് സ്റ്റാർട്ടപ്പ് പരാജയത്തെ ദീർഘകാല ക്രെഡൻഷ്യൽ വെളിപ്പെടുത്തലിന് പകരം വയ്ക്കുന്നു, ആരും വീണ്ടും പരിശോധിക്കാത്ത തരം മാറ്റമാണത്. വിന്യാസം ഇതിനകം വിശ്വസിക്കുന്ന സംവിധാനം ഉപയോഗിക്കുക: പരിമിതമായ ക്രെഡൻഷ്യൽ ഫയൽ, ഫയൽ അനുമതികളാൽ സംരക്ഷിക്കപ്പെട്ട എൻക്രിപ്റ്റ് ചെയ്യാത്ത കീ, അല്ലെങ്കിൽ സ്വന്തം രഹസ്യ സംഭരണിയുള്ള സിസ്റ്റം-സ്കോപ്പ് കണക്ഷൻ.

യഥാർത്ഥത്തിൽ സംഭവിക്കുന്ന സംഭവം പരിശോധിക്കുക

ലോഗിന് ശേഷം സേവനം കൈകൊണ്ട് തുടങ്ങുന്നത് ഒന്നും തന്നെ പരിശോധിക്കുന്നില്ല. റീബൂട്ട് ചെയ്യുക, അല്ലെങ്കിൽ ഒരു സൈക്കിളിലേക്ക് ഗ്രാഫിക്കൽ ലോഗിൻ പ്രവർത്തനരഹിതമാക്കുക, യൂണിറ്റ് സ്വയം ഉയരുന്നത് കാണുക. ക്രെഡൻഷ്യൽ ലഭ്യത, നെറ്റ്വർക്ക് സന്നദ്ധത, യൂണിറ്റ് ക്രമം എന്നിവ ഒരുമിച്ച് പരിശോധിക്കുന്ന ഏക പരീക്ഷണമാണിത്. ഉപയോക്താവ് റിപ്പോർട്ട് ചെയ്ത പരാജയം പുനർനിർമ്മിക്കുന്ന പരീക്ഷണവുമാണിത്, കൈകൊണ്ടുള്ള തുടക്കം ഒരിക്കലും അത് ചെയ്യുന്നില്ല.

systemctl is-enabled wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager
systemctl status systemd-networkd-wait-online --no-pager

ക്രമവും ക്രെഡൻഷ്യലുകളോളം പ്രധാനമാണ്. അടിസ്ഥാന അപ്ലിങ്ക് കോൺഫിഗർ ചെയ്യുന്നതിന് മുമ്പ് തുടങ്ങുന്ന യൂണിറ്റ് വിട്ടുകളയും, കണക്റ്റിവിറ്റിക്കായി കാത്തിരിക്കുന്നുണ്ടോ എന്നതിൽ ചില വിതരണങ്ങൾ വ്യത്യാസപ്പെടുന്നു. യൂണിറ്റ് ബൂട്ടിൽ പരാജയം റിപ്പോർട്ട് ചെയ്യുകയും മുപ്പത് സെക്കൻഡിന് ശേഷം കൈകൊണ്ട് തുടങ്ങുമ്പോൾ വിജയിക്കുകയും ചെയ്താൽ, നിങ്ങൾ രഹസ്യത്തിന്റെയല്ല, ക്രമത്തിന്റെ പ്രശ്നം കണ്ടെത്തി.

ഇന്റർഫേസ് മാത്രമല്ല, റൂട്ടുകളും DNS-ഉം പരിശോധിക്കുക

നിലനിൽക്കുന്ന ഒരു ഇന്റർഫേസ് പ്രവർത്തിക്കുന്ന ടണലല്ല. മേൽനോട്ടമില്ലാത്ത തുടക്കത്തിന് ശേഷം, പേര് പരിശോധിക്കുന്നതിന് മുമ്പ് റൂട്ടുകൾ, റിസോൾവർ അവസ്ഥ, വിലാസം അനുസരിച്ച് ഒരു ലക്ഷ്യം എന്നിവ പരിശോധിക്കുക. തുടർന്ന് ടണൽ നിലനിൽക്കുന്ന ആപ്ലിക്കേഷൻ പരിശോധിക്കുക.

ip -4 route show
resolvectl status
ping -c 3 10.61.0.1
curl -sS --max-time 5 https://internal.example/ -o /dev/null -w '%{http_code}\n'

വിലാസം പ്രവർത്തിക്കുകയും പേര് പ്രവർത്തിക്കാതിരിക്കുകയും ചെയ്താൽ, ബാക്കിയുള്ള പ്രശ്നം ടണലല്ല, DNS നയമാണ്. ഏത് ഉടമയാണ് സേവനം തുടങ്ങുന്നതെന്നും രഹസ്യം എവിടെയാണെന്നും രേഖപ്പെടുത്തുക, കാരണം ഈ യന്ത്രം അടുത്തതായി റീബൂട്ട് ചെയ്യുന്ന വ്യക്തിക്ക് രണ്ട് വസ്തുതകളും ആവശ്യമാണ്.

അനുബന്ധ ലേഖനങ്ങൾ