OpenConnect csd-wrapper: ലോഗിൻ ചെയ്യുന്നതിന് മുമ്പ് സ്ക്രിപ്റ്റ് ഓഡിറ്റ് ചെയ്യുക
--csd-wrapper-നെ കോഡ് എക്സിക്യൂഷന്റെ അതിർത്തിയായി കാണുക: സ്ക്രിപ്റ്റ് ഓഡിറ്റ് ചെയ്യുക, പ്രത്യേക csd ഉപയോക്താവിനെ തിരഞ്ഞെടുക്കുക, ഗേറ്റ്വേ യഥാർത്ഥത്തിൽ എന്താണ് കാണുന്നതെന്ന് സ്ഥിരീകരിക്കുക.
ഒരു പ്രൊഫൈലിലേക്ക് --csd-wrapper ചേർക്കുന്നത് ലോഗിൻ സമയത്ത് അത് പ്രവർത്തിപ്പിക്കുന്ന ഡീമണിന് ലോക്കൽ സ്ക്രിപ്റ്റ് നൽകുന്നു, അതിനാൽ നിങ്ങളുടെ മുന്നിലുള്ള തീരുമാനം കോഡ് അവലോകനമാണ്, മുൻഗണനാ ടോഗിൾ അല്ല. ഗേറ്റ്വേയുടെ ഹോസ്റ്റ്-പരിശോധനാ ഘടകം മാറ്റിസ്ഥാപിക്കാൻ ഈ ഓപ്ഷൻ നിലവിലുണ്ട്, കൂടാതെ നിങ്ങൾ നൽകുന്ന സ്ക്രിപ്റ്റിലേക്കുള്ള ഒരു പാത്ത് ഇത് സ്വീകരിക്കുന്നു. ചുവടെയുള്ള എല്ലാം വിന്യാസ ഉടമ ഏത് പോസ്ചർ പരിശോധനയാണ് ആവശ്യമെന്ന് ഇതിനകം പറഞ്ഞുവെന്ന് അനുമാനിക്കുന്നു; ആ ഭാഗം ഇപ്പോഴും തുറന്നിരിക്കുന്നെങ്കിൽ, ആദ്യം അത് തീർപ്പാക്കുക. പ്ലേബുക്കിൽ നാല് ഘട്ടങ്ങളുണ്ട്: പരാജയപ്പെട്ട ഘട്ടം കണ്ടെത്തുക, സ്ക്രിപ്റ്റ് വായിക്കുക, അത് ഏത് ഐഡന്റിറ്റിയിൽ പ്രവർത്തിക്കുന്നു എന്ന് തിരഞ്ഞെടുക്കുക, ഫലം തെളിയിക്കുക.
ഘട്ടം 1: പരാജയപ്പെട്ട ഘട്ടം കണ്ടെത്തുക
ക്ലയന്റിന്റെ അവസാന സന്ദേശം സാധാരണയായി ഒരു കുക്കിയെക്കുറിച്ചാണ്, അത് ഒരു ശൃംഖലയുടെ അവസാനമാണ്, തുടക്കമല്ല. HTTPS ലോഗിൻ, സെർവർ സർട്ടിഫിക്കറ്റ് പരിശോധന, ഓതന്റിക്കേഷൻ കൈമാറ്റം, പോസ്ചർ ഘടകം എന്നിവയെല്ലാം ആ സന്ദേശത്തിന് മുന്നിലാണ്.
ഉപയോഗത്തിലുള്ള പതിപ്പും ലോഗിൻ വിലാസവും രേഖപ്പെടുത്തുക, തുടർന്ന് വിശദമായ ഔട്ട്പുട്ട് നിങ്ങളുടെ സ്വന്തം ടെർമിനലിൽ സൂക്ഷിച്ചുകൊണ്ട് ശ്രമം ആവർത്തിക്കുക. വീണ്ടും ശ്രമമല്ലാത്ത ആദ്യ പിശക് വായിക്കുക, ട്രാൻസ്ക്രിപ്റ്റിന്റെ അവസാന വരിയല്ല. ഏതെങ്കിലും മൂല്യനിർണ്ണയ ഘടകത്തിന്റെ പേര് വരുന്നതിന് മുമ്പ് ലോഗ് നിന്നാൽ, റാപ്പർ ഇപ്പോഴും നിങ്ങളുടെ പ്രശ്നമല്ല. ആ സമയത്ത് അത് ചേർക്കുന്നത് പിന്നീട് നിങ്ങൾ സംരക്ഷിക്കേണ്ട ഉപരിതലം വിശാലമാക്കുന്നു മാത്രം.
openconnect --version
openconnect --verbose --user="$VPN_USER" vpn.example.com </dev/nullട്രാൻസ്ക്രിപ്റ്റ് പ്രാദേശികമായി സൂക്ഷിക്കുക, കാരണം കുക്കികളും ഓതന്റിക്കേഷൻ പ്രതികരണങ്ങളും പ്രവേശന വസ്തുക്കളാണ്. ഒരു ചാറ്റ് ത്രെഡിൽ പേസ്റ്റ് ചെയ്ത ട്രെയ്സ്, മൂല്യനിർണ്ണയ ഘട്ടം നിരുപദ്രവകരമായി തോന്നിയാലും ക്രെഡൻഷ്യൽ ചോർച്ചയാണ്. പിശകിന്റെ വാചകവും ഫ്ലോയിൽ അത് പ്രത്യക്ഷപ്പെട്ട സ്ഥലവും പങ്കിടുക, പേലോഡ് ഒരിക്കലും അല്ല.
ഘട്ടം 2: സ്ക്രിപ്റ്റ് ഒരു പ്രൊഫൈലിൽ പ്രവേശിക്കുന്നതിന് മുമ്പ് വായിക്കുക
നിങ്ങൾ അവലോകനം ചെയ്ത പതിപ്പിനോളം മാത്രമേ റാപ്പർ വിശ്വസനീയമാകൂ, അതിനാൽ ആ പതിപ്പ് പിൻ ചെയ്ത് അതിന്റെ ഹാഷ് അനുമതി കുറിപ്പിന് സമീപം സൂക്ഷിക്കുക. താഴെയുള്ള രണ്ട് കമാൻഡുകൾ ഒരു വരി പോലും വായിക്കുന്നതിന് മുമ്പ് വിരലടയാളവും വിലകുറഞ്ഞ വാക്യഘടനാ പരിശോധനയും നൽകുന്നു. ഫയൽ പാക്കേജ് മാനേജ്മെന്റിന് പുറത്ത് ജീവിക്കുമ്പോൾ പ്രധാനമായ അടുത്ത വ്യക്തിക്ക് സ്ഥിരമായ ഒരു റഫറൻസും അവ നൽകുന്നു. ഏത് കമാൻഡും സ്ക്രിപ്റ്റ് എന്താണ് ചെയ്യുന്നതെന്ന് പറയുന്നില്ല, അതിനാൽ അവ പ്രവർത്തിപ്പിച്ച് വായന തുടരുക.
sha256sum ./vpn-csd-wrapper.sh
bash -n ./vpn-csd-wrapper.shമുഴുവൻ ഫയലും നാല് ചോദ്യങ്ങൾ മനസ്സിൽ സൂക്ഷിച്ച് വായിക്കുക: അത് പുറത്തേക്ക് HTTP കോളുകൾ നടത്തുന്നുണ്ടോ, ക്രെഡൻഷ്യൽ ഫയലുകളോ പരിസ്ഥിതി വേരിയബിളുകളോ വായിക്കുന്നുണ്ടോ, താൽക്കാലിക ഡയറക്ടറിക്ക് പുറത്ത് എഴുതുന്നുണ്ടോ, ഒരു ശാഖയും ഒന്നും അളക്കാതെ വിജയിച്ച പോസ്ചർ റിപ്പോർട്ട് ചെയ്യുന്നുണ്ടോ. അവസാന മാതൃക ഒരു ലോഗ് വരി ചേർത്ത നയം ഒഴിവാക്കലാണ്. പകർത്തിയ റാപ്പറുകൾ വിശ്വസനീയമായി തോന്നുന്ന പരിശോധനയ്ക്ക് പിന്നിൽ അത് കടത്തിക്കൊണ്ടുവരാൻ ശ്രമിക്കുന്നു. ഉപകരണം നോക്കുന്നതിന് മുമ്പ് അത് കൊള്ളാമെന്ന് സ്ക്രിപ്റ്റ് തീരുമാനിക്കുന്നുവെങ്കിൽ, അവിടെ നിർത്തുക.
പാക്ക് ചെയ്ത പേലോഡുകളും പരിശോധിക്കുക, കാരണം വായിക്കാവുന്ന ഹെഡർ ഫയലിന്റെ ബാക്കി ഭാഗത്തെക്കുറിച്ച് ഒന്നും തെളിയിക്കുന്നില്ല. ഒരു ഫോറം ത്രെഡിൽ നിന്ന് സ്ക്രിപ്റ്റ് ഡൗൺലോഡ് ചെയ്യുന്നത് അതിനെ വിശ്വസനീയമാക്കുന്നില്ല, അതിന്റെ പേര് ഒരു യഥാർത്ഥ ഹോസ്റ്റ്-പരിശോധനാ ഘടകവുമായി സാമ്യമുള്ളതിനാൽ മാത്രം. ആരാണ് അത് ഇൻസ്റ്റാൾ ചെയ്തത്, എവിടെ നിന്ന് വന്നു, എങ്ങനെ അപ്ഡേറ്റ് ചെയ്യും എന്നിവ രേഖപ്പെടുത്തുക.
grep -nE 'base64 -d|xxd -r|eval |curl |wget ' ./vpn-csd-wrapper.shഘട്ടം 3: റാപ്പർ ഏത് ഐഡന്റിറ്റിയിൽ പ്രവർത്തിക്കുന്നു എന്ന് തിരഞ്ഞെടുക്കുക
CSD, TNCC അല്ലെങ്കിൽ HIP പ്രോഗ്രാം പ്രവർത്തിക്കുമ്പോൾ --csd-user പ്രത്യേകാവകാശങ്ങൾ കുറയ്ക്കുന്നു. ആ അക്കൗണ്ട് പ്രാദേശിക എക്സിക്യൂഷൻ ക്രമീകരണത്തിന്റെ ഭാഗമാണ്, ഗേറ്റ്വേയിലേക്ക് സമർപ്പിക്കുന്ന ഉപയോക്തൃനാമമല്ല.
സംവേദനാത്മക ഷെല്ലോ sudo അവകാശങ്ങളോ അതിന് ആവശ്യമില്ലാത്ത ഗ്രൂപ്പ് അംഗത്വങ്ങളോ ഇല്ലാത്ത സമർപ്പിത അക്കൗണ്ട് റാപ്പറിന് നൽകുക. സ്ക്രിപ്റ്റിനും അത് പരിശോധിക്കുന്ന നിർദ്ദിഷ്ട ഫയലുകൾക്കും വായനാനുമതി നൽകുക, തുടർന്ന് VPN പ്രൊഫൈൽ തൊടുന്നതിന് മുമ്പ് പ്രത്യേകാവകാശ കുറയ്ക്കൽ പരിശോധിക്കുക. പ്രശ്നം ഇവിടെ കണ്ടെത്തുന്നത് ക്ലയന്റിനുള്ളിൽ കണ്ടെത്തുന്നതിനേക്കാൾ വിലകുറവാണ്.
sudo -u vpn-csd /usr/local/libexec/vpn-csd-wrapper.shപ്രത്യേകാവകാശങ്ങൾ കുറയ്ക്കുന്നത് മോശം സ്ക്രിപ്റ്റിന് വരുത്താവുന്ന നാശം പരിമിതപ്പെടുത്തുന്നു. എന്നാൽ അത് കോഡ് അവലോകനം ചെയ്യുന്നില്ല, റിപ്പോർട്ട് സത്യമാക്കുന്നില്ല, ഗേറ്റ്വേ അഡ്മിനിസ്ട്രേറ്റർ ഈ നടപ്പാക്കലിനെ ഉപകരണ നയം പാലിക്കുന്നതായി അംഗീകരിക്കുന്നുവെന്ന് സ്ഥാപിക്കുന്നുമില്ല.
ഘട്ടം 4: മാറ്റം പഴയപടിയാക്കാവുന്നതായി സൂക്ഷിക്കുക
എഡിറ്റ് ചെയ്യുന്നതിന് മുമ്പ് പ്രൊഫൈൽ ബാക്കപ്പ് എടുക്കുക, റാപ്പർ പതിപ്പ് നിയന്ത്രണത്തിൽ സൂക്ഷിക്കുക, അങ്ങനെ റോൾബാക്ക് ഒരു പകർപ്പ് തിരയുന്നതിന് പകരം അറിയപ്പെടുന്ന ഹാഷ് പുനഃസ്ഥാപിക്കും. സ്ക്രിപ്റ്റ് പാത്ത്, ഹാഷ്, എക്സിക്യൂഷൻ ഉപയോക്താവ്, അനുവദിക്കുന്നയാൾ എന്നിവ ഒരിടത്ത് എഴുതുക.
പഴയപടിയാക്കാൻ ഓപ്ഷൻ നീക്കം ചെയ്യുക, ക്ലയന്റ് പുനരാരംഭിക്കുക, യഥാർത്ഥ പിശക് തിരികെ വരുന്നുവെന്ന് സ്ഥിരീകരിക്കുക. റോൾബാക്കിന് ശേഷവും ഗേറ്റ്വേ ലോഗിൻ നിരസിക്കുന്നുവെങ്കിൽ, മറ്റെന്തോ കൂടി മാറിയിട്ടുണ്ട്, ആ വ്യത്യാസം കണ്ടെത്തുന്നത് റാപ്പർ വീണ്ടും ശ്രമിക്കുന്നതിന് മുമ്പാണ്. മാറ്റ വിൻഡോ മുഴുവൻ മുമ്പത്തെ പകർപ്പ് സൂക്ഷിക്കുക, മിക്ക ടീമുകൾക്കും ഇത് അടുത്ത അറ്റകുറ്റപ്പണി വിൻഡോ കഴിയുന്നതുവരെ എന്നാണ് അർത്ഥം.
വിജയകരമായ വിന്യാസത്തിന് ശേഷം ഒന്നല്ല, രണ്ട് കാര്യങ്ങൾ പരിശോധിക്കുക: ടണൽ ഉയരുന്നു, കൂടാതെ പോസ്ചർ പരിശോധനയിൽ പരാജയപ്പെടേണ്ട ഉപകരണം ഇപ്പോഴും നിരസിക്കപ്പെടുന്നു. എല്ലാവർക്കും പ്രവർത്തിക്കുന്ന കണക്ഷൻ മൂല്യനിർണ്ണയം നിങ്ങളുടെ മാറ്റത്തെ അതിജീവിച്ചു എന്നതിന് തെളിവല്ല.
രണ്ടാമതൊരു പ്രശ്നം സൃഷ്ടിക്കുന്ന ഷോർട്ട്കട്ടുകൾ
ആവശ്യമായ പരിശോധനകൾ പ്രവർത്തിപ്പിക്കാതെ സഹായി അനുസൃത നില റിപ്പോർട്ട് ചെയ്യാൻ അനുവദിക്കരുത്, മറ്റൊരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന് യോജിക്കാൻ പ്ലാറ്റ്ഫോം ഐഡന്റിറ്റി അസാധുവാക്കരുത്. വേറെ പ്ലാറ്റ്ഫോം എന്ന് അവകാശപ്പെടുന്നത് യഥാർത്ഥ ഉപകരണം നയം പാലിക്കുന്നു എന്നതിന് തെളിവല്ല. അത് ഭാവിയിലെ ഓരോ ലോഗിനിലും കള്ളം പറയുന്ന ഒരു ക്ലയന്റിനെ നിങ്ങൾക്ക് നൽകുന്നു.
സെർവർ പരിശോധന നിർജ്ജീവമാക്കുക, പഴയ കുക്കി വീണ്ടും പ്ലേ ചെയ്യുക, അവലോകനം ചെയ്യാത്ത സ്ക്രിപ്റ്റുകൾ അടുക്കിവയ്ക്കുക — ഇവയെല്ലാം കാണാവുന്ന പരാജയത്തെ കാണാത്ത ഒന്നുമായി മാറ്റുന്നു. ഇൻസ്റ്റാൾ ചെയ്ത ക്ലയന്റിന് പിന്തുണയ്ക്കുന്ന ഫ്ലോ പൂർത്തിയാക്കാൻ കഴിയുന്നില്ലെങ്കിൽ, നിങ്ങളുടെ പക്കലുള്ളത് വളയ്ക്കുന്നതിന് പകരം അംഗീകരിച്ച ഒരു ബദൽ ആവശ്യപ്പെടുക.
OpenConnect മാനുവൽ --csd-wrapper, --csd-user എന്നിവ വെവ്വേറെ രേഖപ്പെടുത്തുന്നു, അതാണ് പ്രധാന സൂചന: സ്ക്രിപ്റ്റും ഐഡന്റിറ്റിയും രണ്ട് തീരുമാനങ്ങളാണ്. അവ വെവ്വേറെ അവലോകനം ചെയ്ത് രണ്ടും എഴുതുക. അപ്പോൾ ലോഗിൻ പ്രോംപ്റ്റ് കോഡ് പേസ്റ്റ് ചെയ്ത് പരിഹരിക്കുന്ന ഒരു കടങ്കഥയല്ലാതാകുന്നു.