د 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 ده. هغه پټنوم چې د استدلال په توګه ورکول کیږي هر هغه ځایي کارن ته ښکاري چې پروسې لړلي، او د شل تاریخچې ته هم ننوځي. پرځای یې له فایل ډیسکریپټر یا چاپیریال بدلونکي څخه یې ولوله، او بار په اقتباسونو کې کیږده ترڅو شل په داخل کې هیڅ شی نشي پراخولی.

printf '%s\n' 'connect vpn.example.com' '0' "$VPN_USER" "$VPN_PASS" 'y' 'exit' \
  | sudo -n /opt/cisco/anyconnect/bin/vpn -s

د اقتباسونو پام کوه. په دوه ګونو اقتباسونو کې هغه پټنوم چې ! لري کیدای شي د متقابل شل لخوا پراخ شي مخکې له دې چې کلاینټ یې وویني، او ناکامي د یوې عمومي 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

د حالت تولید د جلا کیدو دمخه او وروسته وګوره. هغه کلاینټ چې له زوړ غونډې سره پریښودل شي کیدای شي بل نښلول رد کړي په داسې حال کې چې سکریپټ لا هم بریا راپور کوي، او دا د ناکامۍ ډول نه ښکاري که یوازې د وتلو کوډونه وګورې. د دوی پرتله کوه نه دا چې یوازې پر دوهم باور وکړې. په شل پروفایل کې لقبونه د ورځني کار لپاره بسنه کوي، خو هر څه چې مهالویش شوي وي د هر بل بې څارنې کار په څیر د اعتبار او هویت هماغه کتنې وړ دي.

کله چې ثابته لړلیک نور خوندي نه وي

د ځواب فایل د نن ورځې پوښتنو ترتیب کوډ کوي. بدل شوی بینر، جبري پټنوم بدلون یا د دوهم فاکتور ننګونه هغه په یوه حلقه بدلوي چې حساب بندولی شي، نو ځکه سکریپټ باید په لومړي ناڅاپي ځواب کې ووځي نه دا چې بیا پیل شي.

هغه څه ونیسه چې کلاینټ چاپ کړي، د صفر نه توپیر لرونکی حالت بیرته راوګرځوه او پریکړه غوښتونکي ته پرېږده. چېرې چې ګیټوې دوهم فاکتور غواړي، ریښتینی ځواب دا دی چې د هغه پروفایل لپاره بې څارنې ننوتل شته نه دي، نه دا چې ترتیب ته یوه بله کرښه اړینه ده.

څرخ هم په هماغه کتنه کې راځي. که اعتبار ساتل کیږي، پریکړه وکړه چې څوک یې لولی شي، کله بدلیږي او کله چې هوسټ بیا جوړ شي څه یې لیرې کوي. هغه سکریپټ چې یو کال کار کوي ځکه چې چا پټنوم ته لاس نه دی ورکړی ډیزاین نه دی، بلکې د څرخ تګلارې ته انتظار یوه پېښه ده.

هغه پروفایلونه چې AnyConnect نه دي

د Cisco دوه زاړه د اعتبار سټایلونه له دې سره ګډیږي. vpnc پروفایل IPSec ID غواړي، چې په رښتیا د ډلې نوم دی، بیا د ډلې پټ راز، بیا ستا خپل اعتبارونه، او درې واړه له هغه چا راځي چې ګیټوې چلوي. زوړ Cisco IPsec له AnyConnect څخه بېل پروتوکول دی، نو vpnc یوازې-AnyConnect خدمت ته نشي رسیدلی؛ openconnect --protocol=anyconnect د هغه کار لپاره خلاص کلاینټ دی.

.pcf فایل د زوړ کلاینټ پروفایل تشریح کوي. په هغه کې هوسټ، د ډلې نوم او د ډلې پټنوم په لاس بیا هغه کلاینټ ته ورکولی شې چې Cisco IPsec وایي، که څه هم فایل نړیوال واردات نه دی او هر غیر معیاري پورټ یا تونل کول حالت معمولاً په لېږد کې ورک شي.

له هغه څه پیل وکړه چې ګیټوې واقعاً وړاندې کوي، بیا هغه کلاینټ وټاکه چې هغه پروتوکول وایي. د بل سایت څخه پروفایل کاپي کول هماغه لاره ده چې خلک هغو اعتبارونو ته رسیږي چې هیڅکله ستونزه نه وه.

اړوندې مقالې