Kuidas AnyConnecti sisselogimist Linuxis ja macOS-is skriptida
vpn binaarfail loeb vastuseid standardisisendist viipade järjekorras. Koostage jada, tsiteerige seda üks kord, hoidke see protsessiloendist väljas ja testige kõigepealt ühte ressurssi.
Skript väljub nulliga, tunnel ilmub ja järgmine käivitus lükatakse tagasi enne, kui see jõuab parooli küsida. Või sama käsk töötab terminalis ja ebaõnnestub ajastatud tööst veaga «sündmust ei leitud», mis ei nimeta midagi kasulikku. Mõlemad on AnyConnecti kliendi standardisisendi vestlus, mis läheb valesti, mitte võrgu tõrge. Käsitlege sisselogimist kirjutatud küsimuse ja vastusena ning tõrked muutuvad etteaimatavaks ja väikeseks.
Miks sama käsk skripti sees ebaõnnestub
Klient loeb oma vastuseid standardisisendist, üks rida viiba kohta, selles järjekorras, nagu lüüs neid küsib. Kõik, mis muudab viipade arvu, näiteks uus bänner, grupi valija või teise faktori väljakutse, nihutab iga järgneva vastuse ühe rea võrra. Seejärel loeb klient kasutajanime sealt, kus ta ootas parooli, ja teatab tõrkest, mis ei osuta kummalelegi.
Hüüumärki sisaldav parool lisab vaiksema teise tõrke. Topeltlainetes laiendab kest selle ammu enne, kui klient midagi näeb.
Pange kandev osa üksikute jutumärkide vahele ja märk liigub puutumatult. See on kogu parandus ja see selgitab tervet klassi aruandeid, kus sama mandaat töötab sisestades ja ebaõnnestub salvestades. Kontrollige, mida kest tegi, enne kui kontrollite lüüsi: printige kandev osa läbi ümbrise, mis näitab täpseid baite, ja loendage read. Enamik neist uurimistest lõpeb just seal.
Kirjutage vastused selles järjekorras, nagu klient küsib
Käivitage klient üks kord interaktiivselt ja kirjutage iga viip järjekorras üles. Grupi valija ilmub ainult siis, kui lüüs avaldab mitu profiili, ja bänneri viip ilmub ainult siis, kui üks on seadistatud. Vastusfail peab vastama lüüsile, mille poole te tegelikult suunatud olete, mitte dokumentatsiooni omale.
Seejärel koostage fail täpselt selle jadaga, üks vastus rea kohta. Grupi indeks on number, mille klient loetleb, mitte profiili asukoht dokumendis. Võtke bänner vastu ainult siis, kui teie lüüs selle saadab, ja lisage rida iga lisaküsimuse kohta, mida see lüüs teadaolevalt küsib. Käivitage klient mitteinteraktiivse lipuga, et see tarbiks faili, selle asemel et terminali oodata.
connect vpn.lab.example
0
username
password
y
exit/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txtSama jada võib tulla toru kaudu, kui eelistate faili kettale mitte jätta. Tsiteerimisreeglid otsustavad endiselt, kas see jääb püsima.
Hoidke mandaat protsessiloendist väljas
Käsureal olev argument on iga kohaliku kasutaja jaoks loetav kogu protsessi eluea jooksul, nii et parool kuulub faili või torusse ja mitte kunagi argumentide loendisse. Muutke see fail loetavaks ainult sellele kontole, mis skripti käivitab, ja kustutage see, kui töö lõpeb. macOS-is asub binaarfail tavaliselt samal teel nagu Linuxis, kuid kinnitage paigaldatud asukoht, selle asemel et seda eeldada. Ümbrine, mis kontrollib mõlemat teed, on intsidendi aruandest lühem.
printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.exampleÄrge laske skriptil ka igavesti uuesti proovida. Muutunud bänner või üleöö aegunud parool muudab fikseeritud vastusfaili korduskatsete silmuseks ja just see silmus lukustab konto.
Ebaõnnestuge üks kord, printige kliendi enda veatekst ja väljuge. Ajastatud töö vajab sama identiteedi ja mandaadi kättesaadavuse ülevaatust nagu iga teine järelevalveta töö, sest vaikselt aeguvat mandaati ei erista öisel kolmel tunnil toimuvast katkestusest.
Kinnitage seanss enne, kui usaldate väljumiskoodi
Ühendatud olek tõestab, et tunnel on olemas, ja mitte rohkem. Testige ühte ressurssi, mis peab selle kaudu kättesaadav olema, enne kui skript päris tööd alustab, ja käsitlege seal esinevat tõrget erineva rikkena kui ebaõnnestunud sisselogimist. Muidu proovite uuesti täiesti head ühendust, mis lihtsalt ei jõua oma sihtkohta.
Küsige kliendilt selle olekut enne ja pärast katkestamist, sest aegunud seanss võib järgmise ühenduse tagasi lükata, samal ajal kui teie skript teatab õnnestumisest.
/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnectKirjutage oleku väljund väljumiskoodi kõrvale, sest kood üksi ei suuda eristada tagasi lükatud sisselogimist seansist, mis ei sulgunud kunagi. Kui lüüs nõuab teist faktorit või interaktiivset kinnitust, lõpetage selle sammu skriptimine ja kasutage selle asemel kliendi toetatud mehhanismi. Fikseeritud vastusfail on mugavus mandaadi jaoks, mida te kontrollite, mitte viis mööda minna autentimissammust, mida te ei kontrolli. Hoidke ulatus nii kitsas ja see jääb lühikeseks skriptiks.
Millal on fikseeritud vastusfail vale tööriist
Teine faktor või kinnitusviip lööb mustri täielikult jalust ja see on disainipiir, mitte skriptimõistatus. Kasutage seda mehhanismi, mida klient selle sammu jaoks toetab selle asemel, et vastust ette ära arvata. Fikseeritud fail töötab ainult mandaatide puhul, mis jäävad käivituste vahel samaks.
Kaks vanemat mandaadistiili aetakse samuti AnyConnectiga segi. vpnc profiil räägib teist protokolli ja tahab grupi nime IPSec-tunnusena, seejärel jagatud grupisaladust ja seejärel teie enda kontoandmeid.
Kuna protokollid erinevad, ei pääse vpnc lüüsile, mis avaldab ainult AnyConnecti profiile, ja selle teenuse tavaline avatud alternatiiv on openconnect, mille anyconnect-protokoll on valitud. pcf fail kuulub vanale Cisco kliendile ja kuigi selle host, grupi nimi ja grupiparool saab uuesti sisestada klienti, mis räägib veel Cisco IPsecit, ei kandu fail klientide vahel üle. Ebatavaline port või mittestandardne tunnelirežiim läheb selle üleviimise käigus tavaliselt kaotsi. Otsustage, millist protokolli lüüs pakub, enne kui tööriista valite.