Kā skriptēt AnyConnect pieteikšanos Linux un macOS sistēmās
vpn binārais fails lasa atbildes no standarta ievades uzvedņu secībā. Izveidojiet secību, vienreiz to citējiet, turiet to ārpus procesu saraksta un vispirms pārbaudiet vienu resursu.
Skripts beidzas ar nulli, tunelis parādās, un nākamā palaišana tiek noraidīta vēl pirms tā vispār prasa paroli. Vai arī tā pati komanda darbojas terminālī un neizdodas no ieplānota darba ar kļūdu «notikums nav atrasts», kas nosauc neko noderīgu. Abos gadījumos vainojama ir AnyConnect klienta standarta ievades saruna, nevis tīkla kļūme. Uztveriet pieteikšanos kā uzrakstītu jautājumu un atbildi, un kļūmes kļūst paredzamas un mazas.
Kāpēc tā pati komanda neizdodas skriptā
Klients lasa savas atbildes no standarta ievades, vienu rindiņu katrai uzvednei, tādā secībā, kādā tās prasa vārteja. Jebkas, kas maina uzvedņu skaitu, piemēram, jauns reklāmkarogs, grupas atlasītājs vai otrā faktora izaicinājums, pabīda katru nākamo atbildi par vienu rindiņu. Tad klients nolasa lietotājvārdu tur, kur gaidīja paroli, un ziņo par kļūmi, kas nenorāda uz nevienu no tiem.
Parole ar izsaukuma zīmi pievieno klusāku otru kļūmi. Dubultpēdiņās čaula to izvērš daudz agrāk, nekā klients kaut ko ierauga.
Ievietojiet kravu vienpēdiņās, un rakstzīme ceļo neskarta. Tas ir viss labojums, un tas izskaidro veselu ziņojumu klasi, kuros viens un tas pats akreditācijas dati darbojas, tos ierakstot, un neizdodas, tos saglabājot. Pārbaudiet, ko izdarīja čaula, pirms pārbaudīt vārteju: izdrukājiet kravu caur ietvaru, kas parāda precīzos baitus, un saskaitiet rindas. Lielākā daļa šādu izmeklēšanu beidzas tieši tur.
Rakstiet atbildes tādā secībā, kādā klients tās prasa
Vienreiz palaidiet klientu interaktīvi un pierakstiet katru uzvedni secībā. Grupas atlasītājs parādās tikai tad, kad vārteja publicē vairākus profilus, un reklāmkaroga uzvedne parādās tikai tad, kad viens ir konfigurēts. Atbilžu failam jāatbilst tai vārtejai, uz kuru jūs faktiski esat vērsti, nevis tai, kas ir dokumentācijā.
Pēc tam izveidojiet failu ar tieši šo secību, viena atbilde katrā rindā. Grupas indekss ir skaitlis, ko klients uzskaita, nevis profila pozīcija dokumentā. Pieņemiet reklāmkarogu tikai tad, ja jūsu vārteja to sūta, un pievienojiet rindiņu katrai papildu atbildei uz jautājumu, ko šī vārteja, kā zināms, uzdod. Palaidiet klientu ar neinteraktīvo karodziņu, lai tas patērētu failu, nevis gaidītu termināli.
connect vpn.lab.example
0
username
password
y
exit/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txtTā pati secība var atnākt pa cauruli, ja labprātāk neturat failu diskā. Citēšanas noteikumi joprojām izšķir, vai tā izdzīvos.
Turiet akreditācijas datus ārpus procesu saraksta
Arguments komandrindā ir lasāms jebkuram lokālajam lietotājam visā procesa dzīves laikā, tāpēc parole pieder failam vai caurulei un nekad argumentu sarakstam. Padariet šo failu lasāmu tikai tam kontam, kas izpilda skriptu, un izdzēsiet to, kad darbs beidzas. macOS binārais fails parasti atrodas tajā pašā ceļā kā Linux, bet apstipriniet instalēto vietu, nevis pieņemiet to. Ietvars, kas pārbauda abus ceļus, ir īsāks par incidenta ziņojumu.
printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.exampleNeļaujiet arī skriptam mēģināt atkārtoti mūžīgi. Mainīts reklāmkarogs vai parole, kurai naktī beidzies derīguma termiņš, fiksētu atbilžu failu pārvērš atkārtojumu cilpā, un tieši šī cilpa bloķē kontu.
Vienreiz neizdodieties, izdrukājiet paša klienta kļūdas tekstu un izejiet. Ieplānotam darbam nepieciešama tāda pati identitātes un akreditācijas datu pieejamības pārbaude kā jebkuram citam neuzraudzītam uzdevumam, jo klusi beidzošos datus nevar atšķirt no trīsos naktī notikuša pārtraukuma.
Apstipriniet sesiju, pirms uzticaties izejas kodam
Savienots stāvoklis pierāda, ka tunelis pastāv, un neko vairāk. Pirms skripts sāk īstu darbu, pārbaudiet vienu resursu, kuram jābūt sasniedzamam caur to, un uzskatiet tur notikušo kļūmi par citu kļūmi nekā neizdevusies pieteikšanās. Pretējā gadījumā jūs atkārtoti mēģināsiet pilnīgi labu savienojumu, kas vienkārši nevar sasniegt savu galamērķi.
Pajautājiet klientam tā stāvokli pirms atvienošanas un pēc tās, jo novecojusi sesija var atteikt nākamo savienojumu, kamēr jūsu skripts ziņo par panākumiem.
/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnectPierakstiet stāvokļa izvadi blakus izejas kodam, jo kods viens pats nevar atdalīt atteiktu pieteikšanos no sesijas, kas nekad netika aizvērta. Kad vārteja pieprasa otru faktoru vai interaktīvu apstiprinājumu, pārtrauciet šo soli skriptēt un tā vietā izmantojiet mehānismu, ko klients atbalsta. Fiksēts atbilžu fails ir ērtība datiem, ko jūs kontrolējat, nevis veids, kā apiet autentifikācijas soli, ko jūs nekontrolējat. Turiet tvērumu tik šauru, un tas paliks īss skripts.
Kad fiksēts atbilžu fails ir nepareizais rīks
Otrs faktors vai apstiprinājuma uzvedne pilnībā uzveic šo modeli, un tā ir dizaina robeža, nevis skripta mīkla. Izmantojiet jebkuru mehānismu, ko klients atbalsta šim solim tā vietā, lai atbildi uzminētu iepriekš. Fiksēts fails darbojas tikai tiem datiem, kas starp palaišanām paliek vienādi.
Divi vecāki akreditācijas datu stili arī tiek sajaukti ar AnyConnect. vpnc profils runā citā protokolā, un tam vajag grupas nosaukumu kā IPSec identifikatoru, tad kopīgu grupas noslēpumu, tad jūsu paša konta datus.
Tā kā protokoli atšķiras, vpnc nevar sasniegt vārteju, kas publicē tikai AnyConnect profilus, un parastā atvērtā alternatīva šim pakalpojumam ir openconnect ar izvēlētu anyconnect protokolu. pcf fails pieder vecajam Cisco klientam, un, lai gan tā resursdators, grupas nosaukums un grupas parole var tikt ievadīti no jauna klientā, kas vēl runā Cisco IPsec, fails nepārceļas starp klientiem. Neparasts ports vai nestandarta tunelēšanas režīms parasti tiek zaudēts šajā pārvietošanā. Izlemiet, kuru protokolu vārteja piedāvā, pirms izvēlaties rīku.