Linux හි AnyConnect: පිවිසුම් අනුක්රමය ආරක්ෂිතව ස්ක්රිප්ට් කිරීම
Cisco AnyConnect හි vpn ද්විමය ගොනුව stdin වෙතින් පිළිතුරු කියවයි, නැවත කළ හැකි පිවිසුමකට එය ප්රමාණවත්ය. අනුක්රමය ගොඩනඟා, ගොනුව ආරක්ෂා කර, තහවුරු කර නවතින්න.
Cisco AnyConnect සමඟ එන vpn සේවාදායකය සංවාදයක් මෙන් හැසිරේ: එය විමසුමක් මුද්රණය කරයි, රේඛාවක් එනතුරු රැඳී සිටියි, පසුව ඊළඟ විමසුම මුද්රණය කරයි. එම සංවාදය ගොනුවකින් හෝ නළයකින් ලබා දුන්නොත් එම ද්විමය ගොනුවම අධීක්ෂණයකින් තොරව ක්රියා කරයි. තාක්ෂණය වන්නේ එක් යළි-හැරවීමක් සහ පිළිතුරුවල අනුපිළිවෙල ලැයිස්තුවක්, ස්ක්රිප්ටය විශ්වාසදායකද යන්න යළි-හැරවීම නොව එම ලැයිස්තුවම තීරණය කරයි.
ප්රායෝගිකව දේවල් දෙකක් මෙය කඩා දමයි. ද්වාරය අමතරව යමක් ඇසූ විට විමසුම්වල අනුපිළිවෙල මාරු වේ, සහ ගබඩා කළ මුරපදයක් එක් ටයිප් දෝෂයක් ගිණුම් අගුළු දැමීමක් බවට පත් කරයි. අනුක්රමය ද්වාරයේ ඕනෑම වෙනසකට පසු සංසන්දනය කළ හැකි අනුවාදිත දත්ත ලෙස සලකන්න. නැවත උත්සාහ කරනවාට වඩා ශබ්දයෙන් අසාර්ථක වන්න, මන්ද වැරදි ලෙස ටයිප් කළ මුරපදයක් අගුළු දැමූ ගිණුමක් වන මාර්ගය ලූපයම ය.
එක් අනුක්රමයක්, සේවාදායකය අසන අනුපිළිවෙලින්ම
සේවාදායකය එක් වරක් අන්තර්ක්රියාකාරීව ධාවනය කර එක් එක් විමසුම පෙනෙන අනුපිළිවෙලින් ලියන්න. එම පිටපත පිළිතුරු ගොනුව බවට පත් වේ. ගොනුව ද්විමය ගොනුවට යළි-හරවන විට පළමු පේළියම සම්බන්ධතා විධානය විය යුතුය, එබැවින් අනුක්රමය පරිශීලක නාමයෙන් නොව සත්කාරක නාමයෙන් ආරම්භ වේ.
connect vpn.example.com
0
<username>
<password>
y
exit
හිස් 0 ද්වාරය ලැයිස්තුවක් දෙන විට පළමු සම්බන්ධතා පැතිකඩ තෝරයි; ඔබේ ද්වාරය මුද්රණය කරන දර්ශකය භාවිත කරන්න. y පිවිසුම් බැනරයක් පිළිගනී, එබැවින් බැනරයක් නොමැති නම් එම පේළිය මකා, ඔබේ ද්වාරය අමතර ප්රශ්නයක් අසන තැනට පේළියක් ඇතුළු කරන්න. අවසාන exit අවසන් පිළිතුර වැය වූ පසු සේවාදායකයට පිරිසිදුව අවසන් වීමට ඉඩ දෙයි.
/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txt
මෙහි අන්තර්ක්රියා-රහිත මාදිලිය අභිරුචික නොවේ. -s නොමැතිව සේවාදායකයට පර්යන්තය අත්පත් කරගෙන යළි-හරවන ලද ආදානය නොසලකා හැරිය හැක; එය සමඟ පිළිතුරු ප්රවාහයෙන් කියවා ක්රියාවලිය ආපසු එයි. ද්විමය ගොනුවට ඉහළ වරප්රසාද අවශ්ය තැන ඇමතුම sudo -n තුළ ඔතන්න, එවිට ස්ක්රිප්ටය මුරපද විමසුමේ සිරවීම වෙනුවට වහාම අසාර්ථක වේ.
පිළිතුරු ගොනුව කොහේ කාන්දු වේද
මුරපදයක් අඩංගු ගොනුවක් අක්රෙඩිට් එකකි, එබැවින් එයට එවැන්නක අවසර දෙන්න: මාදිලිය 600, කාර්යය ධාවනය කරන ගිණුමේ හිමිකාරිත්වය, සහ කිසිදා බෙදාගත් හෝ සමමුහුර්ත කළ නාමාවලියක නොවේ. පසුව නිවැරදි කරනවාට වඩා මාදිලිය දැනටමත් යොදාගෙන සාදන්න, මන්ද ලිවීම සහ chmod අතර ගොනුව මොහොතකට සැමට කියවිය හැකිය.
install -m 600 /dev/null ~/.config/anyconnect.txt
chmod 700 ~/.config
අනෙක් භාගය argv ය. තර්කයක් ලෙස ලබා දෙන මුරපදයක් ක්රියාවලි ලැයිස්තුගත කරන සෑම දේශීය පරිශීලකයෙකුටම දිස්වේ, සහ එය shell ඉතිහාසයට ද එක් වේ. ඒ වෙනුවට එය ගොනු විස්තරකයකින් හෝ පරිසර විචල්යයකින් කියවන්න, සහ පැටවුම උද්ධෘත තුළ තබන්න එවිට shell හට ඇතුළත කිසිවක් විස්තීරණය කළ නොහැක.
printf '%s\n' 'connect vpn.example.com' '0' "$VPN_USER" "$VPN_PASS" 'y' 'exit' \
| sudo -n /opt/cisco/anyconnect/bin/vpn -s
උද්ධෘත ගැන අවධානයෙන් සිටින්න. ද්විත්ව උද්ධෘත තුළ ! අඩංගු මුරපදයක් සේවාදායකය දකින පෙරම අන්තර්ක්රියාකාරී shell එකක් විස්තීරණය කළ හැක, සහ අසාර්ථකත්වය ප්රොටෝකෝල ගැටලුවක් මෙන් පෙනෙන සාමාන්ය event-not-found දෝෂයක් ලෙස පැමිණේ.
උමං මාර්ගය ඔප්පු කර, පසුව වසන්න
සම්බන්ධිත තත්ත්වය ඔප්පු කරන්නේ සේවාදායකයට සැසියක් ඇතැයි විශ්වාස කරන බව පමණි. ආයතනික ජාලය තුළින් පමණක් පිළිතුරු දෙන සත්කාරකයක් තෝරා, වෙනත් ඕනෑම දෙයක් කිරීමට පෙර එක් වරක් පරීක්ෂා කරන්න. එහි ඇති අසාර්ථකත්වය මාර්ගගත කිරීමේ හෝ ප්රතිපත්ති දෝෂයකි, සහ පිවිසුම නැවත ධාවනය කිරීමෙන් එය වෙනස් නොවේ.
/opt/cisco/anyconnect/bin/vpn state
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 10 https://<internal-host>/
/opt/cisco/anyconnect/bin/vpn disconnect
විසන්ධි කිරීමට පෙර සහ පසු තත්ත්ව ප්රතිදානය පරීක්ෂා කරන්න. පැරණි සැසියක් සමඟ ඉතිරි කළ සේවාදායකයකට ඊළඟ සම්බන්ධතාවය ප්රතික්ෂේප කළ හැකි අතර ස්ක්රිප්ටය තවමත් සාර්ථකත්වය වාර්තා කරයි, සහ පිටවීම් කේත පමණක් බැලුවොත් මෙම අසාර්ථකත්ව ආකාරය නොපෙනේ. දෙවන කියවීම පමණක් විශ්වාස කරනවාට වඩා දෙකම සංසන්දනය කරන්න. shell පැතිකඩේ අන්වර්ථ දෛනික භාවිතයට ප්රමාණවත්ය, නමුත් කාලසටහන්ගත ඕනෑම දෙයක් වෙනත් ඕනෑම අධීක්ෂණ-රහිත කාර්යයක් මෙන් එම අක්රෙඩිට් සහ අනන්යතා සමාලෝචනයම ලැබිය යුතුය.
ස්ථිර ලැයිස්තුවක් ආරක්ෂිත නොවන විට
පිළිතුරු ගොනුව අද විමසුම් අනුපිළිවෙල කේතනය කරයි. වෙනස් වූ බැනරයක්, බලහත්කාර මුරපද වෙනසක් හෝ දෙවන සාධක අභියෝගයක් එය ගිණුම අගුළු දැමිය හැකි ලූපයක් බවට පත් කරයි, එබැවින් ස්ක්රිප්ටය නැවත ආරම්භ කරනවාට වඩා පළමු අනපේක්ෂිත පිළිතුරේදී පිටවිය යුතුය.
සේවාදායකය මුද්රණය කළ දේ ග්රහණය කර, ශුන්ය නොවන තත්ත්වයක් ලබා දී, තීරණය ඇමතුම්කරුට භාර දෙන්න. ද්වාරය දෙවන සාධකය ඉල්ලන තැන, අවංක පිළිතුර වන්නේ එම පැතිකඩ සඳහා අධීක්ෂණ-රහිත පිවිසුමක් නොමැති බවයි, අනුක්රමයට තවත් පේළියක් අවශ්ය බව නොවේ.
භ්රමණය ද එම සමාලෝචනයට අයත් වේ. අක්රෙඩිටය ගබඩා කරන්නේ නම්, එය කියවිය හැක්කේ කාටද, එය වෙනස් වන්නේ කවදාද, සත්කාරකය නැවත ගොඩනඟන විට එය ඉවත් කරන්නේ කුමක්ද යන්න තීරණය කරන්න. කිසිවෙකු මුරපදයට අත තබා නැති නිසා වසරක් ක්රියා කරන ස්ක්රිප්ටයක් නිර්මාණයක් නොව, භ්රමණ ප්රතිපත්තියක් එනතුරු රැඳී සිටින අනතුරකි.
AnyConnect නොවන පැතිකඩ
Cisco හි පැරණි අක්රෙඩිට් ශෛලීන් දෙකක් මෙය සමඟ ව්යාකූල වේ. vpnc පැතිකඩ IPSec ID එකක් ඉල්ලයි, එය ඇත්ත වශයෙන්ම කණ්ඩායමේ නමයි, පසුව කණ්ඩායම් රහසක්, පසුව ඔබේම අක්රෙඩිට්, සහ තුනම ද්වාරය පවත්වාගෙන යන අයගෙන් පැමිණේ. පැරණි Cisco IPsec AnyConnect ට වඩා වෙනස් ප්රොටෝකෝලයකි, එබැවින් vpnc AnyConnect-පමණක් සේවාවකට ළඟා විය නොහැක; openconnect --protocol=anyconnect එම කාර්යය සඳහා විවෘත සේවාදායකයයි.
.pcf ගොනුව පැරණි සේවාදායක පැතිකඩ විස්තර කරයි. එහි ඇති සත්කාරකය, කණ්ඩායමේ නම සහ කණ්ඩායම් මුරපදය Cisco IPsec කථා කරන සේවාදායකයක අතින් නැවත ඇතුළත් කළ හැක, නමුත් ගොනුව සාර්වත්ර ආයාතයක් නොවන අතර ඕනෑම සම්මත නොවන වරායක් හෝ උමං මාදිලියක් සාමාන්යයෙන් මාරු කිරීමේදී අතුරුදහන් වේ.
ද්වාරය ඇත්තටම ලබා දෙන දෙයින් ආරම්භ කර, පසුව එම ප්රොටෝකෝලය කථා කරන සේවාදායකය තෝරන්න. වෙනත් අඩවියකින් පැතිකඩක් පිටපත් කිරීම යනු කිසිදා ගැටලුවක් නොවූ අක්රෙඩිට් නිදොස් කරන්නට මිනිසුන් පැමිණෙන මාර්ගයයි.