Hogyan szkripteljük az AnyConnect bejelentkezést Linuxon és macOS-en
A vpn bináris a bemeneti sorrendben olvassa a válaszokat a szabványos bemenetről. Építsd fel a sorozatot, idézd egyszer, tartsd távol a folyamatlistától, és először egy erőforrást tesztelj.
A szkript nullával lép ki, az alagút megjelenik, és a következő futás már elutasításra kerül, mielőtt egyáltalán jelszót kérne. Vagy ugyanaz a parancs működik egy terminálban, és elbukik egy ütemezett feladatból egy «esemény nem található» hibával, amely semmi hasznosat nem nevez meg. Mindkettő az AnyConnect kliens szabványos bemeneti beszélgetése, amely rosszul megy, nem hálózati hiba. Tekintsd a bejelentkezést leírt kérdés-feleletként, és a hibák kiszámíthatóvá és kicsivé válnak.
Miért bukik el ugyanaz a parancs egy szkripten belül
A kliens a válaszait a szabványos bemenetről olvassa, soronként egy kérésre, abban a sorrendben, ahogy az átjáró kéri őket. Bármi, ami megváltoztatja a kérések számát, például egy új banner, egy csoportválasztó vagy egy második tényezős kihívás, minden későbbi választ egy sorral eltol. Ezután a kliens felhasználónevet olvas ott, ahol jelszót várt, és olyan hibát jelent, amely egyikre sem mutat.
A felkiáltójelet tartalmazó jelszó egy halkabb második hibát ad hozzá. Kettős idézőjelek között a héj sokkal korábban kiterjeszti, mielőtt a kliens bármit látna.
Tedd a hasznos terhet aposztrófok közé, és a karakter sértetlenül utazik. Ez az egész javítás, és egy egész jelentéscsoportot magyaráz, ahol ugyanaz a hitelesítő adat gépeléskor működik, tároláskor pedig elbukik. Ellenőrizd, mit tett a héj, mielőtt az átjárót ellenőriznéd: nyomtasd ki a terhet egy olyan burkolón keresztül, amely a pontos bájtokat mutatja, és számold meg a sorokat. Ezek a vizsgálatok többnyire ott véget is érnek.
Írd a válaszokat abban a sorrendben, ahogy a kliens kéri
Futtasd a klienst egyszer interaktívan, és jegyezd fel az összes kérést sorrendben. Csoportválasztó csak akkor jelenik meg, ha az átjáró több profilt tesz közzé, banner-kérés pedig csak akkor, ha be van állítva egy. A válaszfájlnak ahhoz az átjáróhoz kell illeszkednie, amelyre valóban mutatsz, nem a dokumentációban szereplőhöz.
Ezután építsd fel a fájlt pontosan ezzel a sorozattal, soronként egy válasszal. A csoportindex az a szám, amelyet a kliens felsorol, nem egy profil helye egy dokumentumban. Csak akkor fogadd el a bannert, ha az átjáród küld egyet, és adj hozzá egy sort minden további kérdéshez, amelyről ismert, hogy ez az átjáró felteszi. Indítsd a klienst a nem interaktív kapcsolóval, hogy a fájlt fogyassza a terminálra várás helyett.
connect vpn.lab.example
0
username
password
y
exit/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txtUgyanez a sorozat csővezetéken is érkezhet, ha inkább nem tartasz fájlt a lemezen. Az idézési szabályok továbbra is eldöntik, hogy túléli-e.
Tartsd a hitelesítő adatot a folyamatlistán kívül
A parancssori argumentumot minden helyi felhasználó olvashatja a folyamat teljes élettartama alatt, ezért a jelszó fájlba vagy csőbe való, és soha nem az argumentumlistába. Tedd azt a fájlt csak annak a fióknak olvashatóvá, amely a szkriptet futtatja, és töröld, amikor a feladat véget ér. macOS-en a bináris általában ugyanazon az útvonalon van, mint Linuxon, de erősítsd meg a telepített helyet ahelyett, hogy feltételeznéd. Az a burkoló, amely mindkét útvonalat megvizsgálja, rövidebb, mint az incidensjegyzet.
printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.exampleNe hagyd a szkriptet sem a végtelenségig újrapróbálkozni. A megváltozott banner vagy az éjszaka lejárt jelszó a rögzített válaszfájlt újrapróbálkozási hurokká alakítja, és ez a hurok zárja ki a fiókot.
Bukj el egyszer, nyomtasd ki a kliens saját hibaüzenetét, és lépj ki. Az ütemezett feladatnak ugyanarra az identitás- és hitelesítőadat-elérhetőségi felülvizsgálatra van szüksége, mint bármely más felügyelet nélküli feladatnak, mert a csendesen lejáró hitelesítő adat nem különböztethető meg egy hajnali három órás kimaradástól.
Erősítsd meg a munkamenetet, mielőtt megbízol a kilépési kódban
A csatlakozott állapot bizonyítja, hogy az alagút létezik, és semmi többet. Tesztelj egy erőforrást, amelynek rajta keresztül elérhetőnek kell lennie, mielőtt a szkript valódi munkába kezd, és az ottani hibát a sikertelen bejelentkezéstől eltérő hibaként kezeld. Különben egy teljesen jó kapcsolatot próbálsz újra, amely egyszerűen nem éri el a célját.
Kérdezd meg a klienst az állapotáról a leválasztás előtt és után, mert egy elavult munkamenet elutasíthatja a következő kapcsolódást, miközben a szkripted sikert jelent.
/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnectJegyezd fel az állapot kimenetét a kilépési kód mellé, mert egy kód önmagában nem tudja elválasztani az elutasított bejelentkezést egy soha nem zárt munkamenettől. Amikor az átjáró második tényezőt vagy interaktív jóváhagyást követel, hagyd abba annak a lépésnek a szkriptelését, és használd helyette azt a mechanizmust, amelyet a kliens támogat. A rögzített válaszfájl kényelem egy általad ellenőrzött hitelesítő adathoz, nem pedig mód arra, hogy megkerülj egy általad nem ellenőrzött hitelesítési lépést. Tartsd ilyen szűken a hatókört, és ez rövid szkript marad.
Mikor rossz eszköz a rögzített válaszfájl
A második tényező vagy a jóváhagyási kérés teljesen legyőzi a mintát, és ez tervezési határ, nem szkriptrejtvény. Használd azt a mechanizmust, amelyet a kliens ehhez a lépéshez támogat ahelyett, hogy előre kitalálnád a választ. A rögzített fájl csak olyan hitelesítő adatokhoz működik, amelyek a futások között ugyanazok maradnak.
Két régebbi hitelesítőadat-stílust is összekevernek az AnyConnecttel. A vpnc profil más protokollt beszél, és a csoport nevét IPSec-azonosítóként akarja, majd egy megosztott csoporttitkot, majd a saját fiókadataidat.
Mivel a protokollok különböznek, a vpnc nem ér el olyan átjárót, amely csak AnyConnect-profilokat tesz közzé, és a szolgáltatás szokásos nyílt alternatívája az openconnect a kiválasztott anyconnect protokollal. A pcf fájl a régi Cisco klienshez tartozik, és bár a hosztja, csoportneve és csoportjelszava újra beírható egy még Cisco IPsecet beszélő kliensbe, a fájl nem vihető át a kliensek között. A szokatlan port vagy a nem szabványos alagútmód általában elveszik ebben az átvitelben. Döntsd el, melyik protokollt kínálja az átjáró, mielőtt eszközt választasz.