Aaminsanaantu waa in here-dokument afarta sadar leh uu yahay galitaan buuxa oo aan isdhexgal lahayn, oo taasi waxay socotaa ilaa gateway-ga uu bixiyo laba kooxood, daabaco banner, ama uu token weydiisto password-ka ka dib. Markaas isla script-kaas wuxuu password-ka ku qoraa menu oo lambar filanayay. Macmiilka khadka amarka ee Linux waa la script-geli karaa, laakiin kaliya haddii aad siiso wixii uu dhab ahaan sugayo, ee ma aha wixii casharku maleeyay.

here-dokument-ka go’an waa khuraafaad

Macmiilka Linux ee Cisco wuxuu rakibaa barnaamij yar /opt/cisco/anyconnect/bin/vpn, oo Secure Client 5 wali wuu keenaa. Inta ay adeegga vpnagentd shaqaynayso, calanka -s wuxuu jawaabaha ka akhriyaa gelinta caadiga ah sida uu macmiilku u weydiisto. Habkaas kuma go’an yahay serverrada dhexdooda.

Menu kooxeed wuxuu ku darayaa hal sadar. Banner galitaan wuxuu ku darayaa mid kale. Codsi token oo password-ka ka dib wuxuu gabi ahaan u jebiyaa script afarta sadar leh, sababtoo ah sadarka shanaad waligiis ma ahaan lahaa token-ka. Guul-darrada waa aamusan: macmiilku wuxuu helaa xarig khaldan, isku dayga xiriirku wuu dhammaadaa, script-kuna wax faa’iido leh ma soo sheego.

Macmiilka hal mar gacan ku socodsii gateway isku mid ah iyo nooc isku mid ah, oo qor su’aalaha sida ay u soo baxaan. Qoraalkaas waa qeexidda ay script-kaagu waa inuu buuxiyo.

Waxa uu macmiilku sugayo

Xaaladda caadiga ah ee hal koox, taxanaha waa magaca isticmaalaha, password-ka iyo mararka qaarkood xaqiijinta banner. Sadarka koowaad ee here-dokument wuxuu noqdaa tusmada menu kaliya marka serverku dhab ahaan muujiyo menu, taas ayaa sababta script isku mid ah ugu shaqeeyo hal goob oo ku guul-darraysto tan xigta.

/opt/cisco/anyconnect/bin/vpn -s connect vpn.example.net <<EOF
0
alice
$VPN_PASSWORD
y
EOF

Tan u akhri sidii afar jawaabood oo loogu jawaabayo afar su’aalood oo suurtagal ah, ee ma aha borotokool go’an. Eber waa xulasho menu, ma aha password, oo y-da dhammaadka waxay aqbashaa banner oo badan gateway-yada waligood ma diraan.

Isticmaal expect marka habka aan la saadaalin karin

Marka habka su’aalaha uu isbeddelo, jooji tirinta sadarrada oo sug su’aasha. Script expect wuxuu bilaabaa amarka connect, wuxuu sugaa su’aasha magaca isticmaalaha, wuu diraa, wuxuu sugaa su’aasha password-ka, wuu diraa, kadibna wuxuu sugaa xaaladda xiran. Sugitaan kastaa wuxuu leeyahay waqti-xaddidiis.

U qaado waqti-xadka guul-darro oo bax. Script sii wada gelinta dirista ka dib su’aal lama filaan ah wuxuu si farxad leh password-ka ugu qori doonaa shell, menu ama wax kasta oo kale oo akhrinaya. Sidaas ayaa script galitaan u noqdaa dhacdo.

Expect wuxuu sidoo kale ku siinayaa qoraal aad ku duuban karto sirta oo laga saaray, taasna way ka qiimo badan tahay koodka baxa marka gateway-gu su’aalahiisa beddelo ka dib casriyeyn.

Sirta waa in ay meel ku noolaataa

Nooc kasta oo dhibaatadan ka mid ah wuxuu wadaagaa hal daciifnimo: password-ka waa inuu ku jiraa qaab uu macmiilku akhrin karo. In loo gudbiyo dood ahaan waxay ku muujinaysaa shaxda hababka. In lagu soo bandhigo tuubo waxay inta badan ku riddaa taariikhda shell-ka. Labadaba waxaa akhrin kara isticmaalayaasha kale ee maxalliga ah ee ku sugan martigeliyaha boodboodka la wadaago.

install -m 600 /dev/null ~/.vpn-secret
umask 077; VPN_PASSWORD=$(cat ~/.vpn-secret) /opt/cisco/anyconnect/bin/vpn -s connect vpn.example.net

Fayl leh hab 600 oo uu leeyahay akoonka waa ugu yaraan, walina waa sir qoraal cad oo disk-ga ku jira. secret-tool lookup wuxuu ka akhriyaa keyring-ga Linux, macOS-na isla shaqadaas waxaa qabta security find-generic-password -w. Meesha ay ururku taageerto xaqiijinta shahaadada ama SAML, dooro taas, sababtoo ah password la kaydiyay iyo MFA wali ma dhammaystiri karaan galitaan iyada oo aan qof jirin.

Xaqiiji tunnel-ka, kadibna qaado go’itaanka

Ha aaminin maqnaanshaha qoraalka khaladka. Weydii macmiilka xaaladdiisa oo si madax-bannaan u hubi interface-ka:

/opt/cisco/anyconnect/bin/vpn state
ip -brief address

Xaaladdu waa inay akhridaa Connected, oo interface tunnel waa inuu ciwaan haystaa. Kadib weydiiso hal kheyraad oo tunnel-ku waa inuu gaaro, sababtoo ah xaalad xiran oo aan waddo lahayn waa natiijo dhab ah oo sahlan in la seego.

Ku go’ vpn disconnect, oo u ogolow script-kii bilaabay tunnel-ka inuu qaato go’itaanka. Shaqo guul-darraystay oo session furan ka tagta waxay cunaa boos shati waxayna u muuqataa dhibaato xaqiijin qofka xiga ee isku dayaa.

Habka shaqada: xaqiiji vpnagentd, diiwaangeli habka dhabta ah ee su’aalaha, dooro here-dokument ama expect, sirta ka fogee argv iyo taariikhda, hubi xaaladda iyo hal kheyraad, kadibna ku go’ isla script-kaas.

Maqaallo la xiriira