It-twemmin huwa li dokument here b’erba’ linji huwa dħul sħiħ mhux interattiv, u jiflaħ sakemm il-gateway joffri żewġ gruppi, jipprintja banner, jew jitlob token wara l-password. Imbagħad l-istess skript jikteb il-password f’menu li kien qed jistenna numru. Il-klijent tal-command line fuq Linux jista’ jiġi skriptjat, iżda biss jekk tagħtih dak li qed jistenna tassew, mhux dak li assuma t-tutorial.

Id-dokument here fiss huwa mit

Il-klijent Linux ta’ Cisco jinstalla programm żgħir f’/opt/cisco/anyconnect/bin/vpn, u Secure Client 5 għadu jfornih. Meta s-servizz vpnagentd ikun qed jaħdem, il-bandiera -s taqra t-tweġibiet mill-input standard bl-ordni li bih il-klijent jitlobhom. Dik l-ordni mhix fissa bejn is-servers.

Menu tal-gruppi jżid linja waħda. Banner tad-dħul iżid oħra. Talba għal token wara l-password tkisser skript ta’ erba’ linji għal kollox, għax il-ħames linja qatt ma kienet se tkun it-token. Il-falliment huwa sieket: il-klijent jirċievi string żbaljat, l-attentat ta’ konnessjoni jintemm, u l-iskript ma jirrapporta xejn utli.

Mexxi l-klijent bl-idejn darba kontra l-istess gateway u verżjoni, u ikteb il-mistoqsijiet fl-ordni li jidhru fiha. Dak it-transcript huwa l-ispeċifikazzjoni li l-iskript tiegħek irid jissodisfa.

X’qed jistenna l-klijent

Fil-każ komuni ta’ grupp wieħed l-ordni hija isem l-utent, password, u kultant konferma tal-banner. L-ewwel linja ta’ dokument here issir indiċi tal-menu biss meta s-server tassew jippreżenta menu, u għalhekk l-istess skript jaħdem f’sit u jonqos fl-ieħor.

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

Aqra dan bħala erba’ tweġibiet għal erba’ mistoqsijiet possibbli, mhux bħala protokoll fiss. Iż-żero huwa għażla tal-menu, mhux password, u l-y finali jaċċetta banner li ħafna gateways qatt ma jibagħtu.

Uża expect meta l-ordni ma tkunx prevedibbli

Meta l-ordni tal-mistoqsijiet tinbidel, waqaf milli tgħodd il-linji u minflok stenna l-mistoqsija. Skript expect iniedi l-kmand connect, jistenna l-mistoqsija tal-isem tal-utent, jibgħat, jistenna l-mistoqsija tal-password, jibgħat, u mbagħad jistenna l-istat konness. Kull stennija għandha t-timeout tagħha.

Qis it-timeout bħala falliment u oħroġ. Skript li jkompli jibgħat input wara mistoqsija mhux mistennija se jikteb il-password bil-pjaċir f’qoxra, menu jew kull ma jkun qed jaqra. Hekk skript tad-dħul isir inċident.

Expect jagħtik ukoll transcript li tista’ tiddokumenta bis-secret imneħħi, u dan jiswa aktar mill-exit code meta l-gateway ibiddel il-mistoqsijiet tiegħu wara aġġornament.

Is-secret irid jgħix xi mkien

Kull verżjoni ta’ dan il-problema taqsam dgħjufija waħda: il-password trid teżisti f’forma li l-klijent jista’ jaqra. Li tgħaddiha bħala argument tesponiha fit-tabella tal-proċessi. Li tekkowha minn pajp spiss tqegħdha fl-istorja tal-qoxra. It-tnejn jinqraw minn utenti lokali oħra fuq jump host maqsum.

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

File b’mod 600 li jkun proprjetà tal-kont huwa l-minimu, u xorta huwa secret f’plaintext fuq id-diska. secret-tool lookup jaqra mill-keyring ta’ Linux, u fuq macOS l-istess xogħol jagħmlu security find-generic-password -w. Fejn l-organizzazzjoni tappoġġja awtentikazzjoni b’ċertifikat jew SAML, ippreferiha, għax password maħżuna flimkien ma’ MFA xorta ma tistax tlesti dħul mingħajr bniedem.

Ikkonferma t-tunnel, imbagħad ħu l-qsim tiegħek

Tafdax in-nuqqas ta’ test tal-iżball. Staqsi lill-klijent għall-istat tiegħu u ċċekkja l-interface b’mod indipendenti:

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

L-istat għandu jaqra Connected, u interface tat-tunnel għandu jkollu indirizz. Imbagħad itlob riżors wieħed li t-tunnel suppost jilħaq, għax stat konness mingħajr rotta huwa riżultat reali u faċli li taqbad.

Aqta’ b’vpn disconnect, u ħalli l-iskript li beda t-tunnel jieħu l-qsim. Xogħol fallut li jħalli sessjoni miftuħa jiekol siġġu tal-liċenzja u jidher bħala problema ta’ awtentikazzjoni għall-persuna li jmiss li tipprova.

L-ordni tax-xogħol: ikkonferma vpnagentd, irreġistra l-ordni reali tal-mistoqsijiet, agħżel dokument here jew expect, żomm is-secret barra minn argv u l-istorja, ivverifika l-istat u riżors wieħed, imbagħad aqta’ fl-istess skript.

Artikli relatati