Paano magsulat ng script para sa pag-login ng AnyConnect sa Linux at macOS
Binabasa ng vpn binary ang mga sagot mula sa standard input ayon sa pagkakasunod-sunod ng mga prompt. Buuin ang pagkakasunod-sunod, sipiin ito nang isang beses, ilayo sa listahan ng proseso, at subukan muna ang isang resource.
Nagtatapos ang script sa zero, lumilitaw ang tunnel, at tinatanggihan ang susunod na pagtakbo bago pa man humingi ng password. O gumagana ang parehong utos sa terminal at nabigo mula sa naka-iskedyul na trabaho na may error na «hindi natagpuan ang kaganapan» na walang pinangalanang kapaki-pakinabang. Pareho itong maling usapan sa standard input ng kliyenteng AnyConnect, hindi pagkabigo ng network. Ituring ang pag-login na nakasulat na tanong at sagot at nagiging mahulaan at maliit ang mga pagkabigo.
Bakit nabigo ang parehong utos sa loob ng script
Binabasa ng kliyente ang mga sagot nito mula sa standard input, isang linya bawat prompt, ayon sa pagkakasunod-sunod na hinihingi ng gateway. Anumang bagay na nagbabago ng bilang ng mga prompt, tulad ng bagong banner, tagapili ng grupo o hamon ng ikalawang salik, ay naglilipat sa bawat susunod na sagot nang isang linya. Pagkatapos ay binabasa ng kliyente ang username sa lugar na inaasahan ang password at nag-uulat ng pagkabigong hindi tumuturo sa alinman.
Ang password na may tandang padamdam ay nagdaragdag ng mas tahimik na ikalawang pagkabigo. Sa loob ng dobleng panipi, pinalalawak ito ng shell nang matagal bago makakita ng kahit ano ang kliyente.
Ilagay ang payload sa loob ng solong panipi at buo itong naglalakbay. Iyon ang buong pagwawasto, at ipinapaliwanag nito ang isang buong uri ng mga ulat kung saan gumagana ang parehong kredensyal kapag tinipa at nabigo kapag inimbak. Suriin ang ginawa ng shell bago suriin ang gateway: i-print ang payload sa pamamagitan ng balot na nagpapakita ng eksaktong bytes at bilangin ang mga linya. Karamihan sa mga pagsisiyasat na ito ay nagtatapos doon.
Isulat ang mga sagot sa pagkakasunod-sunod na hinihingi ng kliyente
Patakbuhin ang kliyente nang isang beses sa interaktibong paraan at isulat ang bawat prompt sa pagkakasunod-sunod. Ang tagapili ng grupo ay lumilitaw lamang kapag naglalathala ang gateway ng ilang profile, at ang prompt ng banner ay lumilitaw lamang kapag may naka-configure. Dapat tumugma ang file ng mga sagot sa gateway na talagang pinupuntahan mo, hindi sa nasa dokumentasyon.
Pagkatapos ay buuin ang file gamit ang eksaktong pagkakasunod-sunod na iyon, isang sagot bawat linya. Ang index ng grupo ay ang numerong ilinilista ng kliyente, hindi ang posisyon ng profile sa isang dokumento. Tanggapin ang banner lamang kung ipinapadala ito ng iyong gateway, at magdagdag ng linya para sa bawat karagdagang tanong na kilalang itinatanong ng gateway na iyon. Simulan ang kliyente gamit ang di-interaktibong flag upang ubusin nito ang file sa halip na maghintay ng terminal.
connect vpn.lab.example
0
username
password
y
exit/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txtAng parehong pagkakasunod-sunod ay maaaring dumating sa pamamagitan ng tubo kapag mas gusto mong huwag magtabi ng file sa disk. Ang mga tuntunin ng pagsipi ay nagpapasya pa rin kung ito ay makakaligtas.
Ilayo ang kredensyal sa listahan ng proseso
Ang argumento sa command line ay nababasa ng bawat lokal na gumagamit sa buong buhay ng proseso, kaya ang password ay kabilang sa isang file o tubo at hindi kailanman sa listahan ng mga argumento. Gawing nababasa lamang ng account na nagpapatakbo ng script ang file na iyon, at burahin ito kapag tapos na ang trabaho. Sa macOS ang binary ay karaniwang nasa parehong landas tulad ng sa Linux, ngunit tiyakin ang naka-install na lokasyon sa halip na ipalagay. Ang balot na sumusubok sa dalawang landas ay mas maikli kaysa sa ulat ng insidente.
printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.exampleHuwag ding hayaang magbalik-tangkang walang hanggan ang script. Ang nabagong banner o password na nag-expire magdamag ay ginagawang loop ng pagbalik-tangka ang isang nakapirming file ng mga sagot, at ang loop na iyon ang nagla-lock ng account.
Mabigo nang isang beses, i-print ang sariling teksto ng error ng kliyente, at lumabas. Kailangan ng naka-iskedyul na trabaho ang parehong pagsusuri ng pagkakakilanlan at pagkakaroon ng kredensyal tulad ng anumang iba pang trabahong walang pangangasiwa, dahil ang kredensyal na tahimik na nag-expire ay hindi matukoy mula sa pagkaantala nang alas-tres ng umaga.
Tiyakin ang session bago magtiwala sa exit code
Ang konektadong estado ay nagpapatunay na may tunnel at wala nang iba pa. Subukan ang isang resource na dapat maabot sa pamamagitan nito bago magsimula ang script sa tunay na trabaho, at ituring ang pagkabigo doon na ibang sira kaysa sa bigong pag-login. Kung hindi, muling susubukan mo ang perpektong maayos na koneksyon na hindi lamang maabot ang destinasyon nito.
Tanungin ang kliyente tungkol sa estado nito bago at pagkatapos ng pagkadiskonekta, dahil ang lumang session ay maaaring tumanggi sa susunod na koneksyon habang nag-uulat ng tagumpay ang iyong script.
/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnectItala ang output ng estado sa tabi ng exit code, dahil ang code lamang ay hindi makapaghihiwalay ng tinanggihang pag-login mula sa session na hindi kailanman nagsara. Kapag hinihingi ng gateway ang ikalawang salik o interaktibong pag-apruba, itigil ang pag-script sa hakbang na iyon at gamitin sa halip ang mekanismong sinusuportahan ng kliyente. Ang nakapirming file ng mga sagot ay kaginhawahan para sa kredensyal na kontrolado mo, hindi paraan upang laktawan ang hakbang ng pagpapatunay na hindi mo kontrolado. Panatilihing kasingkitid iyon at mananatili itong maikling script.
Kailan mali ang nakapirming file ng mga sagot
Ang ikalawang salik o prompt ng pag-apruba ay ganap na nagtatagumpay laban sa pattern, at iyon ay hangganan ng disenyo, hindi palaisipan ng script.Gamitin ang anumang mekanismong sinusuportahan ng kliyente para sa hakbang na iyon sa halip na hulaan ang sagot nang maaga. Ang nakapirming file ay gumagana lamang para sa mga kredensyal na nananatiling pareho sa pagitan ng mga pagtakbo.
Dalawang mas lumang estilo ng kredensyal ang napagkakamalang AnyConnect din. Ang vpnc profile ay nagsasalita ng ibang protocol, at gusto nito ang pangalan ng grupo bilang tagatukoy ng IPSec, pagkatapos ay isang pinagsasaluhang lihim ng grupo, pagkatapos ang mga detalye ng iyong sariling account.
Dahil magkaiba ang mga protocol, hindi maabot ng vpnc ang gateway na naglalathala lamang ng mga profile ng AnyConnect, at ang karaniwang bukas na alternatibo para sa serbisyong iyon ay openconnect na may piniling protocol na anyconnect. Ang pcf file ay pag-aari ng lumang kliyente ng Cisco at, kahit na ang host, pangalan ng grupo at password ng grupo ay maaaring muling ilagay sa kliyenteng nagsasalita pa ng Cisco IPsec, hindi ito lumilipat sa pagitan ng mga kliyente. Ang kakaibang port o di-pamantayang paraan ng tunnel ay karaniwang nawawala sa paglilipat na iyon. Magpasya kung aling protocol ang inaalok ng gateway bago pumili ng kasangkapan.