Hoe skriuwst in skript foar AnyConnect-ynloggen op Linux en macOS
De vpn-binary lêst antwurden fan standertynfier yn ’e folchoarder fan ’e prompts. Bou de sekwinsje, sitearje dy ien kear, hâld him bûten de prosesslist en testearje earst ien boarne.
It skript einiget mei nul, de tunnel ferskynt, en de folgjende run wurdt wegere ear’t it ea om in wachtwurd freget. Of deselde opdracht wurket yn in terminal en mislearret fan in plande taak mei in «evenemint net fûn»-flater dy’t neat nuttich neamt. Beide binne de standertynfier-konversaasje fan ’e AnyConnect-klant dy’t misgiet, net in netwurkflater. Behannelje de ynloggen as in skreaune fraach-en-antwurd en de mislearrings wurde foarsisber en lyts.
Wêrom deselde opdracht yn in skript mislearret
De klant lêst syn antwurden fan standertynfier, ien rigel per prompt, yn ’e folchoarder wêryn’t de gateway se freget. Alles dat it oantal prompts feroaret, lykas in nije banner, in groepsselektor of in twaddefaktor-útdaging, ferskoot elk letter antwurd mei ien rigel. Dan lêst de klant in brûkersnamme wêr’t er in wachtwurd ferwachte en rapportearret in mislearring dy’t nei gjin fan beide wiist.
In wachtwurd mei in útropteken foeget in stiller twadde mislearring ta. Binnen dûbele oanhellingstekens wreidet de shell it folle earder út as de klant eat sjocht.
Set de lading tusken inkelde oanhellingstekens en it teken reizget yntakt. Dat is de hiele ferbettering, en it ferklearret in hiele klasse rapporten wêr’t deselde oanmeldgegevens wurkje as se yntype wurde en mislearje as se bewarre wurde. Kontrolearje wat de shell die foardat jo de gateway kontrolearje: printsje de lading troch in wikkel dy’t de krekte bytes sjen lit en tel de rigels. De measte fan dizze ûndersiken einigje krekt dêr.
Skriuw de antwurden yn ’e folchoarder wêryn’t de klant freget
Rin de klant ien kear ynteraktyf en skriuw elke prompt yn folchoarder op. In groepsselektor ferskynt allinne as de gateway ferskate profilen publisearret, en in banner-prompt ferskynt allinne as der ien konfigurearre is. It antwurdbestân moat oerienkomme mei de gateway dêr’t jo echt op rjochte binne, net dy út ’e dokumintaasje.
Bou dan it bestân mei dy krekte sekwinsje, ien antwurd per rigel. De groepsyndeks is it nûmer dat de klant listet, net de posysje fan in profyl yn in dokumint. Akseptearje de banner allinne as jo gateway der ien stjoert, en foegje in rigel ta foar elke ekstra fraach dy’t dy gateway bekend stiet te stellen. Start de klant mei de net-ynteraktive flagge sadat er it bestân konsumearret ynstee fan op in terminal te wachtsjen.
connect vpn.lab.example
0
username
password
y
exit/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txtDeselde sekwinsje kin troch in buis komme as jo leaver gjin bestân op ’e skiif hâlde. De sitearringsregels beslute noch hieltyd oft er oerlibbet.
Hâld de oanmeldgegevens bûten de prosesslist
In argumint op ’e opdrachtregel is lêsber foar elke lokale brûker yn ’e hiele libbensdoer fan it proses, dus it wachtwurd heart yn in bestân of in buis en nea yn ’e argumintlist. Meitsje dat bestân allinne lêsber foar it akkount dat it skript útfiert, en wiskje it as de taak klear is. Op macOS stiet de binary meastentiids op itselde paad as op Linux, mar befêstigje it ynstallearre plak ynstee fan it oan te nimmen. In wikkel dy’t beide paden test, is koarter as it ynsidintferhaal.
printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.exampleLit it skript ek net ivich op ’e nij besykje. In feroare banner of in wachtwurd dat nachts ferrûn is, feroarret in fêst antwurdbestân yn in werbesykje-lus, en dy lus is wat it akkount ôfslút.
Mislearje ien kear, printsje de eigen flatetekst fan ’e klant en stop. In plande taak hat deselde kontrôle fan identiteit en beskikberens fan oanmeldgegevens nedich as elke oare tafersjochleaze taak, want in oanmeldgegevens dat stil ferrint is net fan in útfal om trije oere nachts te ûnderskieden.
Befêstigje de sesje foardat jo it útgongskoad fertrouwe
In ferbûn steat bewiist dat de tunnel bestiet en neat mear. Test ien boarne dy’t troch him berikber wêze moat foardat it skript echt wurk begjint, en behannelje in mislearring dêr as in oare flater as in mislearre ynloggen. Oars sille jo in folslein goede ferbining op ’e nij besykje dy’t gewoan syn bestimming net berikke kin.
Freegje de klant om syn steat foar en nei it ôfbrekken, want in ferâldere sesje kin de folgjende ferbining wegerje wylst jo skript sukses rapportearret.
/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnectNotearje de steat-útgong njonken it útgongskoad, want in koad allinne kin in wegere ynloggen net fan in sesje skiede dy’t nea sletten is. As de gateway in twadde faktor of in ynteraktive goedkarring easket, stop dan mei it skripten fan dy stap en brûk ynstee it meganisme dat de klant stipet. In fêst antwurdbestân is in gerêfliking foar oanmeldgegevens dy’t jo beheare, net in manier om in autentikaasjestap te omgean dy’t jo net beheare. Hâld it berik sa smel en dit bliuwt in koart skript.
Wannear’t in fêst antwurdbestân it ferkearde ark is
In twadde faktor of in goedkarringsprompt ferslaan it patroan folslein, en dat is in ûntwerpgrins, net in skriptpuzel. Brûk hokker meganisme de klant ek foar dy stap stipet ynstee fan it antwurd foarôf te rieden. In fêst bestân wurket allinne foar oanmeldgegevens dy’t tusken runs itselde bliuwe.
Twa âldere stilen fan oanmeldgegevens wurde ek mei AnyConnect betize. In vpnc-profyl praat in oar protokol, en hy wol de groepsnamme as IPSec-identifikaasje, dan in dield groepgeheim, dan jo eigen akkountdetails.
Om’t de protokollen ferskille, kin vpnc in gateway net berikke dy’t allinne AnyConnect-profylen publisearret, en it gewoane iepen alternatyf foar dy tsjinst is openconnect mei syn anyconnect-protokol keazen. In pcf-bestân heart by de âlde Cisco-klant, en hoewol syn host, groepsnamme en groepswachtwurd op ’e nij ynfierd wurde kinne yn in klant dy’t noch Cisco IPsec praat, ferhúzet it bestân net tusken klanten. In ûngewoane poarte of in net-standert tunnelmodus giet by dy ferhuzing meastentiids ferlern. Beslis hokker protokol de gateway biedt foardat jo in ark kieze.