Il-klijent vpn li jiġi ma' Cisco AnyConnect iġib ruħu bħal konversazzjoni: jistampa mistoqsija, jistenna linja, imbagħad jistampa li jmiss. Jekk tħaddan dik il-konversazzjoni minn fajl jew minn pajp, l-istess binarju jaħdem mingħajr sorveljanza. It-teknika hija direzzjoni waħda mill-ġdid flimkien ma' lista ordnata ta' tweġibiet, u hija l-lista, mhux id-direzzjoni mill-ġdid, li tiddetermina jekk l-iskript huwiex affidabbli.

Żewġ affarijiet ikissru dan fil-prattika. L-ordni tal-mistoqsijiet tinbidel meta l-gateway jistaqsi xi ħaġa żejda, u password maħżun ibiddel żball wieħed tat-tipjip f'lockout tal-kont. Ittratta s-sekwenza bħala data vverżjonata li tista' tqabbel wara kull bidla fil-gateway. Falli b'ħoss qawwi minflok terġa' tipprova, għax iċ-ċiklu huwa eżattament il-mod kif password miktuba ħażin issir kont imsakkar.

Sekwenza waħda, fl-ordni li fiha l-klijent jistaqsi

Ħaddem il-klijent b'mod interattiv darba u ikteb kull mistoqsija fl-ordni li fiha tidher. Dak it-traskrizzjoni jsir il-fajl tat-tweġibiet. Meta tidderieġi l-fajl fil-binarju, l-ewwel linja trid tkun il-kmand tal-konnessjoni nnifsu, għalhekk is-sekwenza tibda b'isem ta' host u mhux b'isem tal-utent.

connect vpn.example.com
0
<username>
<password>
y
exit

Il-0 vojt jagħżel l-ewwel profil tal-konnessjoni meta l-gateway joffri lista; uża l-indeks li jistampa l-gateway tiegħek. y jaċċetta banner tal-login, għalhekk ħassar dik il-linja jekk m'hemmx banner u daħħal waħda fejn il-gateway tiegħek jistaqsi mistoqsija addizzjonali. exit fl-aħħar huwa dak li jħalli lill-klijent jispiċċa b'mod nadif meta l-aħħar tweġiba tkun ġiet ikkunsmata.

/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txt

Il-mod mhux interattiv hawn mhuwiex fakultattiv. Mingħajr -s il-klijent jista' jieħu t-terminal u jinjora l-input dirett mill-ġdid; bih it-tweġibiet jinqraw mill-fluss u l-proċess jerġa' lura. Fejn il-binarju jeħtieġ privileġġi ogħla, dawwar is-sejħa f'sudo -n biex l-iskript ifalli minnufih minflok ma jimblokka fuq talba tal-password.

Fejn tnixxi l-fajl tat-tweġibiet

Fajl li fih password huwa kredenzjali, għalhekk agħtih il-permessi ta' waħda: mod 600, proprjetà tal-kont li jmexxi x-xogħol, u qatt ġewwa direttorju maqsum jew sinkronizzat. Oħolqu bil-mod diġà applikat minflok ma ssewwih wara, għax fajl għal ftit ħin jinqara minn kulħadd bejn il-kitba u l-chmod.

install -m 600 /dev/null ~/.config/anyconnect.txt
chmod 700 ~/.config

In-nofs l-ieħor huwa argv. Password mgħoddi bħala argument jidher lil kull utent lokali li jelenka l-proċessi, u jispiċċa wkoll fl-istorja tas-shell. Aqrah minn deskrittur tal-fajl jew minn varjabbli tal-ambjent minflok, u qiegħed it-tagħbija fil-virgoletti biex is-shell ma tkunx tista' tespandi xejn ġo fiha.

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

Oqgħod attent għall-virgoletti. Ġewwa virgoletti doppji password li fiha ! tista' tiġi estiża minn shell interattiv qabel ma l-klijent jaraha, u l-falliment jiġi bħala żball ġeneriku event-not-found li jidher bħal problema tal-protokoll.

Ipprova t-tunnel, imbagħad agħlqu

Stat konness jipprova biss li l-klijent jemmen li għandu sessjoni. Agħżel host li jwieġeb biss minn ġewwa n-netwerk korporattiv u ippruvah darba qabel tagħmel xi ħaġa oħra. Falliment hemmhekk huwa difett fir-rotta jew fil-politika, u li terġa' tmexxi l-login mhux se jibdlu.

/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

Iċċekkja l-output tal-istat qabel u wara s-skonnessjoni. Klijent li jitħalla b'sessjoni skaduta jista' jirrifjuta l-konnessjoni li jmiss waqt li l-iskript għadu jirrapporta suċċess, u dak il-mod ta' falliment huwa inviżibbli jekk tħares biss lejn il-kodiċijiet tal-ħruġ. Qabbel iż-żewġ qari minflok ma tafda fit-tieni waħdu. L-alias fil-profil tas-shell biżżejjed għall-użu ta' kuljum, filwaqt li kull ħaġa skedata jistħoqqilha l-istess reviżjoni tal-kredenzjali u tal-identità bħal kull xogħol ieħor mingħajr sorveljanza.

Meta lista fissa tieqaf tkun sigura

Fajl tat-tweġibiet jikkodifika l-ordni tal-mistoqsijiet tal-lum. Banner mibdul, tibdil sfurzat tal-password jew sfida tat-tieni fattur ibiddluh f'ċiklu li jista' jsakkar il-kont, għalhekk l-iskript irid joħroġ fl-ewwel tweġiba mhux mistennija minflok ma jerġa' jibda.

Aqbad dak li stampa l-klijent, irritorna status mhux żero u ħalli lill-min jissejjaħ jiddeċiedi. Fejn il-gateway jitlob it-tieni fattur, it-tweġiba onesta hija li login mingħajr sorveljanza mhuwiex disponibbli għal dak il-profil, mhux li s-sekwenza għandha bżonn linja oħra.

Ir-rotazzjoni tappartjeni għall-istess reviżjoni. Jekk il-kredenzjali jinħażnu, iddeċiedi min jista' jaqrahom, meta jinbidlu u x'ineħħihom meta l-host jinbena mill-ġdid. Skript li jaħdem sena għax ħadd ma mess il-password mhuwiex disinn, iżda inċident li jistenna politika tar-rotazzjoni.

Profili li mhumiex AnyConnect

Żewġ stili eqdem ta' kredenzjali Cisco jiġu mħawda ma' dan. Profil vpnc jitlob IPSec ID, li fil-fatt huwa l-isem tal-grupp, imbagħad sigriet tal-grupp, imbagħad il-kredenzjali tiegħek stess, u t-tlieta jiġu minn min imexxi l-gateway. Cisco IPsec antik huwa protokoll differenti minn AnyConnect, għalhekk vpnc ma jistax jilħaq servizz biss AnyConnect; openconnect --protocol=anyconnect huwa l-klijent miftuħ għal dak ix-xogħol.

Fajl .pcf jiddeskrivi l-profil tal-klijent eqdem. L-host, l-isem tal-grupp u l-password tal-grupp ġo fih jistgħu jerġgħu jiddaħħlu bl-idejn fi klijent li jitkellem Cisco IPsec, għalkemm il-fajl mhuwiex import universali u kull port jew mod ta' tunneling mhux awtomatiku normalment jisparixxi fit-trasferiment.

Ibda minn dak li l-gateway verament joffri, imbagħad agħżel il-klijent li jitkellem dak il-protokoll. L-ikkupjar ta' profil minn sit ieħor huwa l-mod kif in-nies jispiċċaw jiddebaggjaw kredenzjali li qatt ma kienu l-problema.

Artikli relatati