GUI නැතිව Linux ෂෙල් එකකින් Cisco Secure Client වෙත ලොග් වීම
here-ලේඛනය ලොග් ප්රොටෝකෝලයක් නොවේ. සැබෑ විමසුම් අනුපිළිවෙල සටහන් කරන්න, වෙනස් වන විට expect භාවිත කරන්න, මුරපදය argv සහ ඉතිහාසයෙන් පිටත තබන්න.
විශ්වාසය නම් පේළි හතරක here-ලේඛනයක් සම්පූර්ණ අන්තර්ක්රියා රහිත ලොගිනයක් බවයි, එය ගේට්වේ කණ්ඩායම් දෙකක් ඉදිරිපත් කරන, බැනරයක් මුද්රණය කරන හෝ මුරපදයට පසුව ටෝකනයක් ඉල්ලන තෙක් පවතී. එවිට එම ස්ක්රිප්ටයම අංකයක් බලාපොරොත්තු වූ මෙනුවකට මුරපදය ටයිප් කරයි. Linux හි විධාන රේඛා සේවාදායකය ස්ක්රිප්ට් කළ හැකි ය, නමුත් උපදෙස් මාලාව උපකල්පනය කළ දෙය නොව එය සැබවින්ම බලා සිටින දෙය ලබා දුන්නොත් පමණි.
ස්ථාවර here-ලේඛනය මිථ්යාවකි
Cisco හි Linux සේවාදායකය /opt/cisco/anyconnect/bin/vpn තුළ කුඩා වැඩසටහනක් ස්ථාපනය කරයි, Secure Client 5 එය තවමත් සපයයි. vpnagentd සේවාව ක්රියාත්මක වන විට, -s ධජය සේවාදායකය ඉල්ලන අනුපිළිවෙලට සම්මත ආදානයෙන් පිළිතුරු කියවයි. එම අනුපිළිවෙල සර්වර් අතර ස්ථාවර නොවේ.
කණ්ඩායම් මෙනුවක් එක් පේළියක් එකතු කරයි. ලොගින් බැනරයක් තවත් එකක් එකතු කරයි. මුරපදයට පසුව එන ටෝකන් ඉල්ලීම පේළි හතරක ස්ක්රිප්ටය සම්පූර්ණයෙන් කඩා දමයි, මන්ද පස්වන පේළිය කිසිදා ටෝකනය නොවීය. අසාර්ථකත්වය නිහඬ ය: සේවාදායකයට වැරදි තන්තුවක් ලැබේ, සම්බන්ධතා උත්සාහය අවසන් වේ, ස්ක්රිප්ටය ප්රයෝජනවත් කිසිවක් වාර්තා නොකරයි.
සේවාදායකය එකම ගේට්වේ සහ අනුවාදය ඉදිරියේ එක් වරක් අතින් ධාවනය කර, විමසුම් දිස්වන අනුපිළිවෙලට ලියන්න. එම පිටපත ඔබේ ස්ක්රිප්ටය සපුරාලිය යුතු පිරිවිතරයයි.
සේවාදායකය බලා සිටින්නේ කුමක්ද
සාමාන්ය එක් කණ්ඩායමක අවස්ථාවේ අනුපිළිවෙල පරිශීලක නාමය, මුරපදය සහ සමහර විට බැනර තහවුරු කිරීමකි. සර්වරය සැබවින්ම මෙනුවක් පෙන්වන විට පමණක් here-ලේඛනයේ පළමු පේළිය මෙනු දර්ශකයක් බවට පත්වේ, එබැවින් එකම ස්ක්රිප්ටය එක් තැනක වැඩ කර ඊළඟ තැන අසාර්ථක වේ.
/opt/cisco/anyconnect/bin/vpn -s connect vpn.example.net <<EOF
0
alice
$VPN_PASSWORD
y
EOF
මෙය ස්ථාවර ප්රොටෝකෝලයක් ලෙස නොව හැකි ප්රශ්න හතරකට පිළිතුරු හතරක් ලෙස කියවන්න. ශුන්යය මෙනු තේරීමකි, මුරපදයක් නොවේ, අවසන් y බොහෝ ගේට්වේ කිසිදා නොයවන බැනරයක් පිළිගනී.
අනුපිළිවෙල අනුමාන කළ නොහැකි විට expect භාවිත කරන්න
විමසුම් අනුපිළිවෙල වෙනස් වන විට පේළි ගණන් කිරීම නවත්වා ඒ වෙනුවට විමසුම එනතුරු බලා සිටින්න. Expect ස්ක්රිප්ටයක් connect විධානය ආරම්භ කර, පරිශීලක නාම විමසුම එනතුරු බලා යවා, මුරපද විමසුම එනතුරු බලා යවා, පසුව සම්බන්ධිත තත්ත්වය එනතුරු බලා සිටී. සෑම රැඳීමකටම තමන්ගේ කාල සීමාවක් ඇත.
කාල සීමාව අසාර්ථකත්වයක් ලෙස සලකා පිටවන්න. අනපේක්ෂිත විමසුමකට පසුවත් ආදානය යවමින් සිටින ස්ක්රිප්ටයක් සතුටින් මුරපදය ෂෙලයකට, මෙනුවකට හෝ කියවමින් සිටින ඕනෑම දෙයකට ටයිප් කරනු ඇත. ලොගින් ස්ක්රිප්ටයක් සිද්ධියක් බවට පත්වන්නේ එලෙසයි.
Expect රහස ඉවත් කර ලොග් කළ හැකි පිටපතක් ද ලබා දෙයි, උත්ශ්රේණි කිරීමකින් පසු ගේට්වේ එහි විමසුම් වෙනස් කරන විට එය පිටවන කේතයට වඩා වටිනවා.
රහස කොහේ හෝ ජීවත් විය යුතුය
මෙම ගැටලුවේ සෑම අනුවාදයකම එක් දුර්වලතාවක් ඇත: මුරපදය සේවාදායකයට කියවිය හැකි ආකාරයක පැවතිය යුතුය. එය තර්කයක් ලෙස ලබා දීම ක්රියාවලි වගුවේ එය හෙළි කරයි. නලයක් හරහා ප්රතිරාවය කිරීම බොහෝ විට එය ෂෙල් ඉතිහාසයට එක් කරයි. දෙකම බෙදාගත් පිම්ම සත්කාරකයක අනෙකුත් දේශීය පරිශීලකයින්ට කියවිය හැක.
install -m 600 /dev/null ~/.vpn-secret
umask 077; VPN_PASSWORD=$(cat ~/.vpn-secret) /opt/cisco/anyconnect/bin/vpn -s connect vpn.example.net
ගිණුමට හිමි 600 ආකාරයේ ගොනුවක් අවම වේ, එය තවමත් තැටියේ සරල පෙළ රහසකි. secret-tool lookup Linux යතුරු වළල්ලෙන් කියවයි, macOS හි එම කාර්යය security find-generic-password -w කරයි. සංවිධානය සහතික හෝ SAML සත්යාපනයට සහාය දක්වන තැන එයට මුල් තැන දෙන්න, මන්ද ගබඩා කළ මුරපදය සහ MFA එකටත් මිනිසෙකු නොමැතිව ලොගිනය සම්පූර්ණ කළ නොහැක.
උමග තහවුරු කර, පසුව විසන්ධිය භාරගන්න
දෝෂ පෙළ නොමැතිකම විශ්වාස නොකරන්න. සේවාදායකයෙන් එහි තත්ත්වය අසා, අතුරුමුහුණත ස්වාධීනව පරීක්ෂා කරන්න:
/opt/cisco/anyconnect/bin/vpn state
ip -brief address
තත්ත්වය Connected ලෙස කියවිය යුතු අතර, උමග අතුරුමුහුණතකට ලිපිනයක් තිබිය යුතුය. ඉන්පසු උමග ළඟා විය යුතු එක් සම්පතක් ඉල්ලන්න, මන්ද මාර්ගයක් නොමැති සම්බන්ධිත තත්ත්වය සැබෑ ප්රතිඵලයක් වන අතර එය අතපසු කිරීම පහසුය.
vpn disconnect සමඟ විසන්ධි වන්න, උමග ආරම්භ කළ ස්ක්රිප්ටයට විසන්ධිය භාරගැනීමට ඉඩ දෙන්න. සැසියක් විවෘතව තබන අසාර්ථක කාර්යයක් බලපත්ර ආසනයක් පරිභෝජනය කර ඊළඟ උත්සාහ කරන අයට සත්යාපන ගැටලුවක් ලෙස පෙනේ.
කාර්ය අනුපිළිවෙල: vpnagentd තහවුරු කරන්න, සැබෑ විමසුම් අනුපිළිවෙල සටහන් කරන්න, here-ලේඛනය හෝ expect තෝරන්න, රහස argv සහ ඉතිහාසයෙන් පිටත තබන්න, තත්ත්වය සහ එක් සම්පතක් පරීක්ෂා කරන්න, පසුව එම ස්ක්රිප්ටයේම විසන්ධි වන්න.