Skript se konča z ničlo, tunel se pojavi in naslednji zagon je zavrnjen, še preden sploh zahteva geslo. Ali ista ukaz deluje v terminalu in spodleti iz načrtovanega opravila z napako «dogodek ni najden», ki ne poimenuje ničesar koristnega. Oboje je pokvarjen pogovor po standardnem vhodu odjemalca AnyConnect, ne omrežna napaka. Prijavo obravnavajte kot zapisano vprašanje in odgovor, in napake postanejo predvidljive in majhne.

Zakaj isti ukaz spodleti znotraj skripta

Odjemalec bere svoje odgovore s standardnega vhoda, eno vrstico na poziv, v vrstnem redu, v katerem jih zahteva prehod. Vse, kar spremeni število pozivov, na primer nov banner, izbirnik skupine ali izziv drugega dejavnika, premakne vsak poznejši odgovor za eno vrstico. Nato odjemalec prebere uporabniško ime tam, kjer je pričakoval geslo, in sporoči napako, ki ne kaže na nobeno od obeh.

Geslo s klicajem doda tišjo drugo napako. Znotraj dvojnih narekovajev ga lupina razširi veliko prej, preden odjemalec karkoli vidi.

Postavite koristno obremenitev v enojne narekovaje in znak potuje nepoškodovan. To je celotna poprava in pojasnjuje cel razred poročil, kjer iste poverilnice delujejo pri vnosu in spodletijo pri shranjevanju. Preverite, kaj je naredila lupina, preden preverite prehod: natisnite obremenitev skozi ovoj, ki pokaže točne bajte, in preštejte vrstice. Večina takih preiskav se konča prav tam.

Zapišite odgovore v vrstnem redu, v katerem jih odjemalec zahteva

Zaženite odjemalca enkrat interaktivno in zapišite vsak poziv po vrsti. Izbirnik skupine se prikaže le, ko prehod objavi več profilov, poziv za banner pa le, ko je eden nastavljen. Datoteka z odgovori se mora ujemati s prehodom, v katerega ste dejansko usmerjeni, ne s tistim iz dokumentacije.

Nato sestavite datoteko s točno tem zaporedjem, en odgovor na vrstico. Indeks skupine je številka, ki jo odjemalec navede, ne položaj profila v dokumentu. Sprejmite banner le, če ga vaš prehod pošilja, in dodajte vrstico za vsako dodatno vprašanje, za katero je znano, da ga ta prehod postavlja. Zaženite odjemalca z zastavico za neinteraktivni način, da bo datoteko porabil, namesto da bi čakal na terminal.

connect vpn.lab.example
0
username
password
y
exit
/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txt

Isto zaporedje lahko pride po cevi, ko raje ne želite imeti datoteke na disku. Pravila citiranja še vedno odločajo, ali bo preživelo.

Držite poverilnice zunaj seznama procesov

Argument v ukazni vrstici je berljiv vsakemu lokalnemu uporabniku ves čas življenja procesa, zato geslo sodi v datoteko ali cev in nikoli na seznam argumentov. Naredite to datoteko berljivo le za račun, ki izvaja skript, in jo izbrišite, ko je delo končano. V macOS je binarna datoteka običajno na isti poti kot v Linuxu, vendar potrdite nameščeno mesto, namesto da bi ga predpostavili. Ovoj, ki preveri obe poti, je krajši od poročila o incidentu.

printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.example

Tudi skriptu ne dovolite, da bi poskušal znova v nedogled. Spremenjen banner ali geslo, ki je čez noč poteklo, spremenita fiksno datoteko z odgovori v zanko ponovnih poskusov, in prav ta zanka zaklene račun.

Spodletite enkrat, natisnite odjemalčevo lastno besedilo napake in izstopite. Načrtovano opravilo potrebuje enak pregled identitete in razpoložljivosti poverilnic kot vsako drugo opravilo brez nadzora, ker poverilnic, ki tiho potečejo, ni mogoče ločiti od izpada ob treh zjutraj.

Potrdite sejo, preden zaupate izhodni kodi

Povezano stanje dokazuje, da tunel obstaja, in nič več. Preizkusite en vir, ki mora biti dosegljiv skozi njega, preden skript začne resnično delo, in napako tam obravnavajte kot drugačno okvaro od neuspešne prijave. Sicer boste znova poskušali povsem dobro povezavo, ki preprosto ne more doseči svojega cilja.

Vprašajte odjemalca za njegovo stanje pred odklopom in po njem, ker lahko zastarela seja zavrne naslednjo povezavo, medtem ko vaš skript poroča o uspehu.

/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnect

Zabeležite izhod stanja ob izhodni kodi, ker sama koda ne more ločiti zavrnjene prijave od seje, ki se nikoli ni zaprla. Ko prehod zahteva drugi dejavnik ali interaktivno odobritev, prenehajte ta korak skriptirati in namesto tega uporabite mehanizem, ki ga odjemalec podpira. Fiksna datoteka z odgovori je udobje za poverilnice, ki jih nadzirate, ne pa način, kako obiti korak preverjanja, ki ga ne nadzirate. Držite obseg tako ozek in to ostane kratek skript.

Kdaj je fiksna datoteka z odgovori napačno orodje

Drugi dejavnik ali poziv za odobritev popolnoma premagata ta vzorec, in to je meja zasnove, ne skriptna uganka. Uporabite kateri koli mehanizem, ki ga odjemalec podpira za ta korak namesto da bi odgovor vnaprej ugibali. Fiksna datoteka deluje le za poverilnice, ki med zagoni ostanejo enake.

Dva starejša sloga poverilnic se prav tako zamenjujeta z AnyConnect. Profil vpnc govori drug protokol in želi ime skupine kot identifikator IPSec, nato skupno skupinsko skrivnost, nato podatke vašega lastnega računa.

Ker se protokoli razlikujejo, vpnc ne more doseči prehoda, ki objavlja samo profile AnyConnect, običajna odprta alternativa za to storitev pa je openconnect z izbranim protokolom anyconnect. Datoteka pcf pripada staremu odjemalcu Cisco in čeprav je mogoče gostitelja, ime skupine in skupinsko geslo znova vnesti v odjemalca, ki še govori Cisco IPsec, se datoteka ne prenaša med odjemalci. Neobičajna vrata ali nestandardni način tuneliranja se pri tem prenosu običajno izgubita. Odločite, kateri protokol ponuja prehod, preden izberete orodje.

Sorodni članki