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

ഇപ്പോൾ എല്ലാം പങ്കിടുന്ന മൂന്ന് റോളുകൾ

VPN പ്രവേശനം, സ്വകാര്യ സേവനങ്ങളുടെ ഒരു കൂട്ടം, ഒരു ബിൽഡ് റണ്ണർ എന്നിവ വ്യത്യസ്ത കാര്യങ്ങൾ ആഗ്രഹിക്കുന്നു. ആദ്യത്തേതിന് പൊതു പോർട്ടും സ്വകാര്യ വശത്ത് ഇടുങ്ങിയ നെറ്റ്വർക്കും വേണം. രണ്ടാമത്തേതിന് സ്ഥിരമായ സംഭരണവും ആപ്ലിക്കേഷൻ രഹസ്യങ്ങളും വേണം. മൂന്നാമത്തേത് മറ്റാരോ എഴുതിയ കോഡ് പ്രവർത്തിപ്പിക്കുന്നു.

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

താഴെയുള്ള സ്കെച്ച് ആ വിഭജനത്തിനുള്ള തുടക്കമാണ്, ഉയർന്ന ലഭ്യതയുടെ വാഗ്ദാനമല്ല. അതിനെ പരിശോധിക്കേണ്ട സിദ്ധാന്തമായി കാണുക, പൂർത്തിയായ രൂപകൽപ്പനയായി അല്ല.

മൂന്ന് പ്രോസസുകളല്ല, മൂന്ന് റോളുകൾ വേർതിരിക്കുക

ഒരു ഹോസ്റ്റിൽ മൂന്ന് അതിഥികൾ മൂന്ന് അനുമതി കൂട്ടങ്ങളും മൂന്ന് നെറ്റ്വർക്ക് സ്ഥാനങ്ങളും നൽകുന്നു. അവ മൂന്ന് പരാജയ ഡൊമെയ്നുകൾ നൽകുന്നില്ല, രൂപകൽപ്പന അത് ഉറക്കെ പറയണം.

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

host
├─ vpn-gw      10.60.10.2/24   public 51820/udp only
├─ services    10.60.0.10/24   no route to the management network
└─ ci-runner   10.60.20.2/24   outbound only, no host socket

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

VPN അതിഥിക്ക് സ്വന്തം വാതിലുകൾ മാത്രം തുറക്കാൻ അനുവദിക്കുക

റൗട്ടറിൽ ടണൽ പോർട്ട് പ്രസിദ്ധീകരിക്കുക, മറ്റൊന്നുമില്ല. അതിഥി മാനേജ്മെന്റ് പോർട്ടുകൾ മാനേജ്മെന്റ് പാതയിലാണ്, ഇന്റർനെറ്റിലല്ല, ഹൈപ്പർവൈസറിന്റെ സ്വന്തം ഇന്റർഫേസും അവിടെത്തന്നെയാണ്.

സ്വകാര്യ വശത്തെ നെറ്റ്വർക്ക് ദൂരസ്ഥ ഉപയോക്താക്കൾക്ക് ആവശ്യമായ സേവനങ്ങളിൽ എത്തി അവിടെ നിൽക്കണം. ആപ്ലിക്കേഷൻ പ്രാമാണീകരണം ഓണായി തുടരുന്നു, കാരണം ടണൽ ഗതാഗതമാണ്, ലോഗിൻ അല്ല. VPN അതിഥിയുടെ റൗട്ടിംഗ് പട്ടിക ഒരു വാക്യത്തിൽ വിവരിക്കാൻ കഴിയുന്നത്ര ചെറുതായി സൂക്ഷിക്കുക. അത്ര ലളിതമായി വിവരിക്കാൻ കഴിയുന്നില്ലെങ്കിൽ, അതിർത്തി ഇതിനകം മങ്ങിയിരിക്കുന്നു.

virsh net-list --all
virsh net-dumpxml lab-private
sudo nft list ruleset | grep -n -E '51820|10.60'

ഹോസ്റ്റിൽ കേൾക്കുന്നതും മാനേജ്മെന്റിന് ആവശ്യമില്ലാത്തതുമായ ഒന്നും കേൾക്കരുത്. ഇതിൽ ഹൈപ്പർവൈസർ API ഉൾപ്പെടുന്നു, അത് പൊതു ഇന്റർഫേസിൽ തുറന്നിടാൻ എളുപ്പമാണ്.

ബിൽഡ് ജോലികൾക്ക് മറ്റൊരു തരം അതിർത്തി വേണം

CI ജോലി റിപ്പോസിറ്ററി നിയന്ത്രിക്കുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുന്നു, അതിനാൽ അതിന്റെ വിശ്വാസം ആരു കോഡ് പുഷ് ചെയ്യാം എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു. ഷെൽ എക്സിക്യൂട്ടർ ആ കമാൻഡുകൾ ഹോസ്റ്റിൽ റണ്ണറുടെ ഉപയോക്താവായി പ്രവർത്തിപ്പിക്കുന്നു, അതാണ് ലഭ്യമായ ഏറ്റവും വിശാലമായ അതിർത്തി.

കണ്ടെയ്നർ എക്സിക്യൂട്ടറുകൾ ഇടുങ്ങിയതാണ്, പ്രിവിലേജുള്ള കണ്ടെയ്നർ ഇടുങ്ങിയവയിൽ ഒന്നല്ല. റണ്ണറെ സ്വന്തം നെറ്റ്വർക്ക് പരിധിയുള്ള സ്വന്തം അതിഥിയിൽ നിർത്തുക, ജോലികൾക്ക് ആവശ്യമായ ആർട്ടിഫാക്ട്, വിന്യാസ പ്രവേശനം മാത്രം നൽകുക. ഉപേക്ഷിക്കാവുന്ന തൊഴിലാളികൾ സൂക്ഷിച്ചിരിക്കുന്ന അവസ്ഥ കുറയ്ക്കുന്നു; അവ എത്തിച്ചേരാനുള്ള കഴിവോ രഹസ്യങ്ങളുടെ വെളിപ്പെടൽ കുറയ്ക്കുന്നില്ല. രണ്ടിനും ഇപ്പോഴും വ്യക്തമായ പരിധികൾ വേണം.

സേവന അതിഥിക്കാണ് ഡാറ്റയുടെ ഉടമസ്ഥത, അതിനാൽ അതിന്റെ ബാക്കപ്പ് പ്ലാൻ പ്രവർത്തിക്കേണ്ടതാണ്. റിപ്പോസിറ്ററികൾ, അപ്ലോഡുകൾ, ഡാറ്റാബേസ് എന്നിവ ഒരേ ഷെഡ്യൂളിൽ സൂക്ഷിക്കുക. ജോലിയുടെ നില വായിക്കുന്നതിന് പകരം പുനഃസ്ഥാപനം പരീക്ഷിക്കുക.

മൂന്നും പങ്കിടുന്ന പരാജയത്തിനായി പ്ലാൻ ചെയ്യുക

ഒരു ഹോസ്റ്റ് ഒരു പരാജയ ഡൊമെയ്നാണ്. റീബൂട്ട് ടണലും ഓരോ സ്വകാര്യ സേവനവും ഒരേ നിമിഷത്തിൽ നീക്കം ചെയ്യുന്നു, അപ്പോഴാണ് അകത്തേക്കുള്ള വഴി ഏറ്റവും പ്രധാനമാകുന്നത്.

VPN അതിഥിയെ ആശ്രയിക്കാത്ത കൺസോൾ പ്രവേശനം സൂക്ഷിക്കുക, അത് ഫിസിക്കൽ കൺസോളോ ഔട്ട്-ഓഫ്-ബാൻഡ് മാനേജ്മെന്റ് ഇന്റർഫേസോ ദാതാവിന്റെ കൺസോളോ ആകട്ടെ. ഒരേ ഡിസ്കിൽ സംഭരിച്ച സ്നാപ്പ്ഷോട്ട് സ്വതന്ത്ര പകർപ്പല്ല, അത് സംരക്ഷിക്കുന്ന അതിഥിയുടെ ഉള്ളിൽ പ്രവർത്തിക്കുന്ന ബാക്കപ്പും അല്ല. തുടർന്ന് കോൾഡ് സ്റ്റാർട്ട് ഒരു ചെക്ക്ലിസ്റ്റായി അല്ല, ഒരു ക്രമമായി പരീക്ഷിക്കുക: ഹോസ്റ്റ്, വെർച്വൽ നെറ്റ്വർക്കുകൾ, ടണൽ പാത, സാധാരണ അക്കൗണ്ടിൽ ഒരു പേരുള്ള ആപ്ലിക്കേഷൻ.

virsh list --all
systemctl is-active libvirtd
curl -sS -m 5 -o /dev/null -w '%{http_code}\n' https://10.60.0.10/
ss -ltnp | grep -E ':51820|:443'

പ്രോസസുകളുടെ ആരംഭ ക്രമം റൂട്ടുകളെയും DNS-നെയും കുറിച്ച് ഒന്നും തെളിയിക്കുന്നില്ല, അതിനാൽ യൂണിറ്റുകളുടെ അവസ്ഥയല്ല, പാത പരീക്ഷിക്കുക. ദൂരസ്ഥ ഉപയോക്താവിന് യഥാർത്ഥത്തിൽ ആവശ്യമായത് പാതയാണ്.

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