AnyConnect Linuxen: saio-hasieraren sekuentzia modu seguruan scriptatzea
Cisco AnyConnectekin datorren vpn bezeroak stdin-etik irakurtzen ditu erantzunak, eta hori nahikoa da errepikagarria den saio-hasiera baterako. Eraiki sekuentzia, babestu fitxategia, egiaztatu eta gelditu.
Cisco AnyConnectekin datorren vpn bezeroa elkarrizketa bat bezala jokatzen du: galdera bat inprimatzen du, lerro baten zain egoten da eta gero hurrengoa inprimatzen du. Elkarrizketa hori fitxategi edo hodi batetik elikatzen baduzu, binario bera gainbegiratu gabe exekutatzen da. Teknika birbideratze bat gehi erantzunen zerrenda ordenatu bat da, eta zerrendak, ez birbideratzeak, erabakitzen du scripta fidagarria den ala ez.
Praktikan bi gauzak hausten dute hori. Galderen ordena aldatzen da atebideak zerbait gehiago galdetzen duenean, eta gordetako pasahitz batek idazketa-hutsegite bat kontu-blokeo bihurtzen du. Sekuentzia atebidearen aldaketa bakoitzaren ondoren konparatu dezakezun datu bertsionatu gisa tratatu. Ozen huts egin berriro saiatu beharrean, zikloa baita gaizki idatzitako pasahitz bat kontu blokeatu bihurtzeko modu zehatza.
Sekuentzia bakarra, bezeroak eskatzen duen ordenan
Exekutatu bezeroa elkarrekintzaz behin eta idatzi galdera bakoitza agertzen den ordenan. Transkripzio hori erantzun-fitxategia bihurtzen da. Fitxategia binariora birbideratzen duzunean, lehen lerroa konexio-komandoa bera izan behar da, eta horregatik sekuentzia ostalari-izen batekin hasten da, ez erabiltzaile-izenarekin.
connect vpn.example.com
0
<username>
<password>
y
exit
0 soilak lehen konexio-profila hautatzen du atebideak zerrenda bat eskaintzen duenean; erabili zure atebideak inprimatzen duen indizea. y saio-hasierako banner bat onartzen du, beraz ezabatu lerro hori bannerik ez badago eta txertatu bat zure atebideak galdera gehigarri bat egiten duen tokian. Amaierako exit da bezeroari azken erantzuna kontsumitu ondoren garbi amaitzeko aukera ematen diona.
/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txt
Modu ez-elkarrekintzakoa ez da hautazkoa hemen. -s gabe bezeroak terminala har dezake eta birbideratutako sarrera ezikusi; harekin erantzunak fluxutik irakurtzen dira eta prozesua itzultzen da. Binarioak pribilegio altuak behar dituen lekuan, bildu deia sudo -n barruan, scriptak berehala huts egin dezan pasahitz-eskaera batean blokeatu beharrean.
Non isurtzen duen erantzun-fitxategiak
Pasahitz bat duen fitxategia kredentzial bat da, beraz eman iezazkiozu baten baimenak: 600 modua, lana exekutatzen duen kontuaren jabetzakoa, eta inoiz ez partekatutako edo sinkronizatutako direktorio baten barruan. Sortu modua jada aplikatuta duela, geroago zuzendu beharrean, fitxategia une batez guztientzat irakurgarria baita idazketaren eta chmod-aren artean.
install -m 600 /dev/null ~/.config/anyconnect.txt
chmod 700 ~/.config
Beste erdia argv da. Argumentu gisa pasatutako pasahitz bat prozesuak zerrendatzen dituen tokiko edozein erabiltzailerentzat ikusgai dago, eta shell historialean ere amaitzen da. Irakurri fitxategi-deskriptore batetik edo ingurune-aldagai batetik horren ordez, eta jarri karga komatxoen artean, shellean ezer hedatu ezin dezan.
printf '%s\n' 'connect vpn.example.com' '0' "$VPN_USER" "$VPN_PASS" 'y' 'exit' \
| sudo -n /opt/cisco/anyconnect/bin/vpn -s
Begiratu komatxoak. Komatxo bikoitzen barruan, ! duen pasahitz bat shell elkarrekintzazko batek heda dezake bezeroak inoiz ikusi aurretik, eta hutsegitea event-not-found errore generiko gisa iristen da, protokolo-arazo bat dirudiena.
Frogatu tunela, gero itxi
Konektatutako egoerak bezeroak saio bat duela uste duela baino ez du frogatzen. Aukeratu korporazio-sarearen barrutik soilik erantzuten duen ostalari bat eta probatu behin beste ezer egin aurretik. Hor huts egitea bideratze- edo politika-hutsegitea da, eta saio-hasiera berriro exekutatzeak ez du hori aldatuko.
/opt/cisco/anyconnect/bin/vpn state
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 10 https://<internal-host>/
/opt/cisco/anyconnect/bin/vpn disconnect
Egiaztatu egoera-irteera deskonexioaren aurretik eta ondoren. Saio zaharkitu batekin uzten den bezeroak hurrengo konexioa uka dezake scriptak oraindik arrakasta jakinarazten duen bitartean, eta hutsegite-modu hori ikusezina da irteera-kodeak soilik begiratzen badituzu. Konparatu bi irakurketak, bigarrenean soilik fidatu beharrean. Shell profileko aliasak nahikoak dira eguneroko erabilerarako, baina programatutako edozelek beste edozein gainbegiratu gabeko lanek bezalako kredentzial eta identitate berrikuspena merezi du.
Zerrenda finkoa segurua izateari uzten dionean
Erantzun-fitxategi batek gaur egungo galdera-ordena kodetzen du. Aldatutako banner batek, behartutako pasahitz-aldaketa batek edo bigarren faktoreko erronka batek kontua blokea dezakeen ziklo bihurtzen dute, eta horregatik scriptak lehen erantzun ustekabean irten behar du, berrabiarazi beharrean.
Harrapatu bezeroak inprimatutakoa, itzuli zero ez den egoera bat eta utzi deitzaileari erabakitzen. Atebideak bigarren faktorea eskatzen duen lekuan, erantzun zintzoa da gainbegiratu gabeko saio-hasiera ez dagoela erabilgarri profil horretarako, ez sekuentziak beste lerro bat behar duela.
Errotazioa berrikuspen berari dagokio. Kredentziala gordetzen bada, erabaki nori irakur dakiokeen, noiz aldatzen den eta zer ezabatzen duen ostalaria berreraikitzean. Pasahitza inork ukitu ez duelako urtebetez funtzionatzen duen script bat ez da diseinu bat, errotazio-politika baten zain dagoen istripu bat baizik.
AnyConnect ez diren profilak
Cisco kredentzial estilo zaharrago bi nahasten dira honekin. vpnc profil batek IPSec ID bat eskatzen du, benetan taldearen izena dena, gero talde-sekretu bat, gero zure kredentzialak, eta hirurak atebidea kudeatzen duenarengandik datoz. Cisco IPsec zaharra AnyConnect ez den beste protokolo bat da, beraz vpnc ezin da AnyConnect soilik den zerbitzu batera iritsi; openconnect --protocol=anyconnect da lan horretarako bezero irekia.
.pcf fitxategi batek bezero profil zaharragoa deskribatzen du. Bertako ostalaria, taldearen izena eta talde-pasahitza eskuz berriro sar daitezke Cisco IPsec hitz egiten duen bezero batean, nahiz eta fitxategia ez den inportazio unibertsala eta lehenetsia ez den edozein portu edo tunelatze-modu normalean transferentzian desagertzen da.
Hasi atebideak benetan eskaintzen duenetik, eta gero aukeratu protokolo hori hitz egiten duen bezeroa. Beste gune bateko profila kopiatzea da jendeak inoiz arazoa izan ez ziren kredentzialak arazten amaitzeko modua.