Linux, macOS എന്നിവയിൽ AnyConnect ലോഗിൻ സ്ക്രിപ്റ്റ് ചെയ്യുന്ന വിധം
vpn ബൈനറി പ്രോംപ്റ്റുകളുടെ ക്രമത്തിൽ സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിൽ നിന്ന് ഉത്തരങ്ങൾ വായിക്കുന്നു. ക്രമം നിർമ്മിക്കുക, ഒരിക്കൽ ഉദ്ധരിക്കുക, പ്രോസസ് പട്ടികയ്ക്ക് പുറത്ത് സൂക്ഷിക്കുക, ആദ്യം ഒരു വിഭവം പരിശോധിക്കുക.
സ്ക്രിപ്റ്റ് പൂജ്യത്തോടെ അവസാനിക്കുന്നു, ടണൽ പ്രത്യക്ഷപ്പെടുന്നു, അടുത്ത റൺ പാസ്വേഡ് ചോദിക്കുന്നതിന് മുൻപ് തന്നെ നിരസിക്കപ്പെടുന്നു। അല്ലെങ്കിൽ അതേ കമാൻഡ് ടെർമിനലിൽ പ്രവർത്തിക്കുകയും ഷെഡ്യൂൾ ചെയ്ത ജോലിയിൽ നിന്ന് «ഇവന്റ് കണ്ടെത്തിയില്ല» എന്ന അർത്ഥമില്ലാത്ത പിശകോടെ പരാജയപ്പെടുകയും ചെയ്യുന്നു। രണ്ടും നെറ്റ്വർക്ക് തകരാറല്ല, AnyConnect ക്ലയന്റിന്റെ സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് സംഭാഷണം തെറ്റിപ്പോകുന്നതാണ്। ലോഗിൻ എഴുതപ്പെട്ട ചോദ്യോത്തരമായി കാണുകയാണെങ്കിൽ പരാജയങ്ങൾ പ്രവചനീയവും ചെറുതുമാകും।
അതേ കമാൻഡ് സ്ക്രിപ്റ്റിനുള്ളിൽ പരാജയപ്പെടുന്നത് എന്തുകൊണ്ട്
ക്ലയന്റ് തന്റെ ഉത്തരങ്ങൾ സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിൽ നിന്ന് വായിക്കുന്നു, ഓരോ പ്രോംപ്റ്റിനും ഒരു വരി, ഗേറ്റ്വേ അവ ചോദിക്കുന്ന ക്രമത്തിൽ। പ്രോംപ്റ്റുകളുടെ എണ്ണം മാറ്റുന്ന ഏതും, ഉദാഹരണത്തിന് പുതിയ ബാനർ, ഗ്രൂപ്പ് തിരഞ്ഞെടുക്കൽ അല്ലെങ്കിൽ രണ്ടാം ഘടകത്തിന്റെ വെല്ലുവിളി, തുടർന്നുള്ള ഓരോ ഉത്തരവും ഒരു വരി നീക്കുന്നു। പിന്നീട് ക്ലയന്റ് പാസ്വേഡ് പ്രതീക്ഷിച്ചിടത്ത് ഉപയോക്തൃനാമം വായിച്ച് രണ്ടിനെയും ചൂണ്ടാത്ത പരാജയം റിപ്പോർട്ട് ചെയ്യുന്നു।
ആശ്ചര്യചിഹ്നമുള്ള പാസ്വേഡ് കൂടുതൽ നിശബ്ദമായ രണ്ടാം പരാജയം ചേർക്കുന്നു। ഇരട്ട ഉദ്ധരണികൾക്കുള്ളിൽ ഷെൽ ക്ലയന്റ് എന്തെങ്കിലും കാണുന്നതിന് വളരെ മുൻപേ അത് വികസിപ്പിക്കുന്നു।
പേലോഡ് ഒറ്റ ഉദ്ധരണികളിൽ ഇടുക, അക്ഷരം കേടുകൂടാതെ കടന്നുപോകും। ഇതാണ് മുഴുവൻ പരിഹാരം, അതേ ക്രെഡൻഷ്യൽ ടൈപ്പ് ചെയ്യുമ്പോൾ പ്രവർത്തിക്കുകയും സംഭരിക്കുമ്പോൾ പരാജയപ്പെടുകയും ചെയ്യുന്ന റിപ്പോർട്ടുകളുടെ ഒരു മുഴുവൻ വർഗത്തെ അത് വിശദീകരിക്കുന്നു। ഗേറ്റ്വേ പരിശോധിക്കുന്നതിന് മുൻപ് ഷെൽ എന്ത് ചെയ്തുവെന്ന് പരിശോധിക്കുക: കൃത്യമായ ബൈറ്റുകൾ കാണിക്കുന്ന ഒരു ആവരണത്തിലൂടെ പേലോഡ് അച്ചടിച്ച് വരികൾ എണ്ണുക। ഇത്തരം അന്വേഷണങ്ങളിൽ ഭൂരിഭാഗവും അവിടെത്തന്നെ അവസാനിക്കുന്നു।
ക്ലയന്റ് ചോദിക്കുന്ന ക്രമത്തിൽ ഉത്തരങ്ങൾ എഴുതുക
ക്ലയന്റ് ഒരിക്കൽ സംവേദനാത്മകമായി പ്രവർത്തിപ്പിച്ച് ഓരോ പ്രോംപ്റ്റും ക്രമത്തിൽ എഴുതിയെടുക്കുക। ഗേറ്റ്വേ നിരവധി പ്രൊഫൈലുകൾ പ്രസിദ്ധീകരിക്കുമ്പോൾ മാത്രമേ ഗ്രൂപ്പ് തിരഞ്ഞെടുക്കൽ പ്രത്യക്ഷപ്പെടൂ, ഒരെണ്ണം കോൺഫിഗർ ചെയ്തിരിക്കുമ്പോൾ മാത്രമേ ബാനർ പ്രോംപ്റ്റ് പ്രത്യക്ഷപ്പെടൂ। ഉത്തര ഫയൽ നിങ്ങൾ യഥാർത്ഥത്തിൽ ലക്ഷ്യമിടുന്ന ഗേറ്റ്വേയുമായി പൊരുത്തപ്പെടണം, രേഖകളിലെ ഗേറ്റ്വേയുമായല്ല।
തുടർന്ന് ആ കൃത്യമായ ക്രമത്തിൽ ഫയൽ നിർമ്മിക്കുക, ഓരോ വരിയിലും ഒരു ഉത്തരം। ഗ്രൂപ്പ് സൂചിക ക്ലയന്റ് ലിസ്റ്റ് ചെയ്യുന്ന സംഖ്യയാണ്, രേഖയിലെ പ്രൊഫൈലിന്റെ സ്ഥാനമല്ല। നിങ്ങളുടെ ഗേറ്റ്വേ ഒന്ന് അയയ്ക്കുന്നുവെങ്കിൽ മാത്രം ബാനർ സ്വീകരിക്കുക, ആ ഗേറ്റ്വേ ചോദിക്കുന്നതായി അറിയപ്പെടുന്ന ഓരോ അധിക ചോദ്യത്തിനും ഒരു വരി ചേർക്കുക। ക്ലയന്റ് സംവേദനരഹിത ഫ്ലാഗോടെ ആരംഭിക്കുക, എന്നാൽ ടെർമിനലിനായി കാത്തിരിക്കുന്നതിന് പകരം ഫയൽ ഉപഭോഗിക്കട്ടെ।
connect vpn.lab.example
0
username
password
y
exit/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txtഡിസ്കിൽ ഫയൽ സൂക്ഷിക്കാതിരിക്കാൻ ഇഷ്ടപ്പെടുമ്പോൾ അതേ ക്രമം പൈപ്പിലൂടെയും വരാം। ഉദ്ധരണ നിയമങ്ങൾ അത് അതിജീവിക്കുമോ എന്ന് ഇപ്പോഴും തീരുമാനിക്കുന്നു।
ക്രെഡൻഷ്യൽ പ്രോസസ് പട്ടികയ്ക്ക് പുറത്ത് സൂക്ഷിക്കുക
കമാൻഡ് ലൈനിലെ ആർഗ്യുമെന്റ് പ്രോസസിന്റെ മുഴുവൻ ആയുസ്സിലും ഏതൊരു പ്രാദേശിക ഉപയോക്താവിനും വായിക്കാനാകും, അതിനാൽ പാസ്വേഡ് ഒരു ഫയലിലോ പൈപ്പിലോ ആണ്, ഒരിക്കലും ആർഗ്യുമെന്റ് പട്ടികയിലല്ല। ആ ഫയൽ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുന്ന അക്കൗണ്ടിന് മാത്രം വായിക്കാനാകുന്നതാക്കി, ജോലി കഴിയുമ്പോൾ അത് ഇല്ലാതാക്കുക। macOS-ൽ ബൈനറി സാധാരണയായി Linux-ലെ അതേ പാതയിലാണ്, പക്ഷേ ഊഹിക്കുന്നതിന് പകരം ഇൻസ്റ്റാൾ ചെയ്ത സ്ഥലം സ്ഥിരീകരിക്കുക। രണ്ട് പാതകളും പരിശോധിക്കുന്ന ആവരണം സംഭവ റിപ്പോർട്ടിനേക്കാൾ ചെറുതാണ്।
printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.exampleസ്ക്രിപ്റ്റ് അനന്തമായി വീണ്ടും ശ്രമിക്കാൻ അനുവദിക്കരുത്। മാറിയ ബാനറോ രാത്രിയിൽ കാലഹരണപ്പെട്ട പാസ്വേഡോ സ്ഥിര ഉത്തര ഫയലിനെ വീണ്ടും ശ്രമിക്കുന്ന ലൂപ്പാക്കി മാറ്റുന്നു, ആ ലൂപ്പാണ് അക്കൗണ്ട് ലോക്ക് ചെയ്യുന്നത്।
ഒരിക്കൽ പരാജയപ്പെടുക, ക്ലയന്റിന്റെ സ്വന്തം പിശക് വാചകം അച്ചടിക്കുക, പുറത്തുപോകുക। ഷെഡ്യൂൾ ചെയ്ത ജോലിക്ക് മറ്റേതൊരു മേൽനോട്ടമില്ലാത്ത ജോലിയെപ്പോലെ അതേ ഐഡന്റിറ്റി, ക്രെഡൻഷ്യൽ ലഭ്യത അവലോകനം ആവശ്യമാണ്, കാരണം നിശബ്ദമായി കാലഹരണപ്പെടുന്ന ക്രെഡൻഷ്യലിനെ രാത്രി മൂന്നു മണിയിലെ തടസ്സത്തിൽ നിന്ന് വേർതിരിക്കാനാവില്ല।
എക്സിറ്റ് കോഡിൽ വിശ്വസിക്കുന്നതിന് മുൻപ് സെഷൻ സ്ഥിരീകരിക്കുക
ബന്ധിപ്പിച്ച അവസ്ഥ ടണൽ നിലവിലുണ്ടെന്ന് തെളിയിക്കുന്നു, അതിൽ കൂടുതലൊന്നുമല്ല। സ്ക്രിപ്റ്റ് യഥാർത്ഥ ജോലി തുടങ്ങുന്നതിന് മുൻപ് അതിലൂടെ എത്തിച്ചേരേണ്ട ഒരു വിഭവം പരിശോധിക്കുക, അവിടത്തെ പരാജയത്തെ പരാജയപ്പെട്ട ലോഗിനിൽ നിന്ന് വ്യത്യസ്തമായ തകരാറായി കാണുക। അല്ലാത്തപക്ഷം ലക്ഷ്യസ്ഥാനത്ത് എത്താൻ കഴിയാത്ത പൂർണ്ണമായും നല്ല ഒരു ബന്ധം നിങ്ങൾ വീണ്ടും ശ്രമിക്കും।
വിച്ഛേദനത്തിന് മുൻപും ശേഷവും ക്ലയന്റിനോട് അതിന്റെ അവസ്ഥ ചോദിക്കുക, കാരണം പഴയ സെഷൻ അടുത്ത ബന്ധം നിരസിക്കാം, അതേസമയം നിങ്ങളുടെ സ്ക്രിപ്റ്റ് വിജയം റിപ്പോർട്ട് ചെയ്യുന്നു।
/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnectഎക്സിറ്റ് കോഡിന് അരികിൽ അവസ്ഥയുടെ ഔട്ട്പുട്ട് രേഖപ്പെടുത്തുക, കാരണം കോഡ് മാത്രം നിരസിക്കപ്പെട്ട ലോഗിനെ ഒരിക്കലും അടയ്ക്കാത്ത സെഷനിൽ നിന്ന് വേർതിരിക്കാനാവില്ല। ഗേറ്റ്വേ രണ്ടാം ഘടകമോ സംവേദനാത്മക അനുമതിയോ ആവശ്യപ്പെടുമ്പോൾ ആ ഘട്ടം സ്ക്രിപ്റ്റ് ചെയ്യുന്നത് നിർത്തി പകരം ക്ലയന്റ് പിന്തുണയ്ക്കുന്ന സംവിധാനം ഉപയോഗിക്കുക। സ്ഥിര ഉത്തര ഫയൽ നിങ്ങൾ നിയന്ത്രിക്കുന്ന ക്രെഡൻഷ്യലിനുള്ള സൗകര്യമാണ്, നിങ്ങൾ നിയന്ത്രിക്കാത്ത ഒരു പ്രാമാണീകരണ ഘട്ടം ഒഴിവാക്കാനുള്ള വഴിയല്ല। പരിധി ഇത്ര ചുരുക്കിയിരുന്നാൽ ഇത് ചെറിയ സ്ക്രിപ്റ്റായി തുടരും।
സ്ഥിര ഉത്തര ഫയൽ എപ്പോൾ തെറ്റായ ഉപകരണമാണ്
രണ്ടാം ഘടകമോ അനുമതി പ്രോംപ്റ്റോ ഈ മാതൃകയെ പൂർണ്ണമായി തോൽപ്പിക്കുന്നു, അത് സ്ക്രിപ്റ്റ് പ്രഹേളികയല്ല, രൂപകൽപ്പനാ അതിർത്തിയാണ്। ആ ഘട്ടത്തിന് ക്ലയന്റ് പിന്തുണയ്ക്കുന്ന ഏത് സംവിധാനവും ഉപയോഗിക്കുക മുൻകൂട്ടി ഉത്തരം ഊഹിക്കുന്നതിന് പകരം। സ്ഥിര ഫയൽ ഓട്ടങ്ങൾക്കിടയിൽ ഒരേപോലെ നിൽക്കുന്ന ക്രെഡൻഷ്യലുകൾക്ക് മാത്രമേ പ്രവർത്തിക്കൂ।
രണ്ട് പഴയ ക്രെഡൻഷ്യൽ ശൈലികളും AnyConnect എന്ന് തെറ്റിദ്ധരിക്കപ്പെടുന്നു। vpnc പ്രൊഫൈൽ മറ്റൊരു പ്രോട്ടോക്കോളാണ് സംസാരിക്കുന്നത്, അത് ഗ്രൂപ്പിന്റെ പേര് IPSec ഐഡന്റിഫയറായി ആവശ്യപ്പെടുന്നു, പിന്നെ പങ്കിട്ട ഗ്രൂപ്പ് രഹസ്യം, പിന്നെ നിങ്ങളുടെ സ്വന്തം അക്കൗണ്ട് വിവരങ്ങൾ।
പ്രോട്ടോക്കോളുകൾ വ്യത്യസ്തമായതിനാൽ, AnyConnect പ്രൊഫൈലുകൾ മാത്രം പ്രസിദ്ധീകരിക്കുന്ന ഗേറ്റ്വേയിലേക്ക് vpnc എത്താൻ കഴിയില്ല, ആ സേവനത്തിന് സാധാരണ ഓപ്പൺ ബദൽ anyconnect പ്രോട്ടോക്കോൾ തിരഞ്ഞെടുത്ത openconnect ആണ്। pcf ഫയൽ പഴയ Cisco ക്ലയന്റിന്റേതാണ്, അതിന്റെ ഹോസ്റ്റും ഗ്രൂപ്പ് പേരും ഗ്രൂപ്പ് പാസ്വേഡും ഇപ്പോഴും Cisco IPsec സംസാരിക്കുന്ന ക്ലയന്റിൽ വീണ്ടും നൽകാമെങ്കിലും ഫയൽ ക്ലയന്റുകൾക്കിടയിൽ കൈമാറ്റം ചെയ്യപ്പെടുന്നില്ല। അസാധാരണ പോർട്ടോ നിലവാരമില്ലാത്ത ടണലിംഗ് മോഡോ സാധാരണയായി ആ മാറ്റത്തിൽ നഷ്ടപ്പെടുന്നു। ഉപകരണം തിരഞ്ഞെടുക്കുന്നതിന് മുൻപ് ഗേറ്റ്വേ ഏത് പ്രോട്ടോക്കോൾ വാഗ്ദാനം ചെയ്യുന്നുവെന്ന് തീരുമാനിക്കുക।