vpncli -s contro la GUI: accedere a Cisco Secure Client
vpncli -s legge un file di risposte preparato, mentre la GUI legge una persona. Confrontate quando lo script conviene, cosa serve al file e come dimostrarlo.
Cisco Secure Client offre due modi per rispondere agli stessi prompt di accesso: una persona che digita in vpnui.exe, oppure uno script che invia risposte a vpncli.exe tramite l’input standard con -s. Il secondo rende possibili le connessioni pianificate senza leggere lo schermo della GUI, e trasforma anche un accesso in un file da proteggere come una credenziale. Quale scegliere dipende dalla presenza di una persona davanti alla macchina e dalla frequenza con cui ruota la password. Nessuna delle due opzioni cambia ciò che chiede il gateway, solo chi risponde.
Entrambi i percorsi finiscono nello stesso tunnel, quindi il confronto riguarda la gestione, non il protocollo.
Due modi per rispondere agli stessi prompt
Il percorso della GUI è interattivo per progettazione: il client chiede, qualcuno risponde e la sessione vive finché quella persona la lascia in pace. È la scelta giusta su un portatile usato da una persona, perché i prompt si adattano al metodo di autenticazione del gateway e nessuno deve tenere una password in chiaro sul disco.
Il percorso dello script è adatto a un chiosco, a una macchina di laboratorio o a un’attività pianificata dove non c’è nessuno a digitare. Lo scambio è esplicito: si accetta un file di credenziali su disco in cambio di una connessione senza sorveglianza. Se il gateway offre autenticazione con certificato o SAML, di solito quello scambio non vale la pena, perché il file esiste solo per rispondere a prompt che un metodo più forte eviterebbe.
Non mescolate i due sulla stessa macchina contemporaneamente. La riga di comando e il client grafico competono per lo stesso stato di sessione, ed è il problema della sezione successiva.
Cosa deve contenere il file di risposte
Il client chiede in ordine — gateway, a volte una selezione di gruppo, nome utente, password e qualsiasi conferma del banner. Un file che risponde a tutto questo si presenta così, con i valori reali sostituiti:
connect vpn.example.com
MyGroup
alice
correct-horse-battery
yIl modo affidabile per costruire quel file è connettersi una volta a mano, annotare ogni riga digitata e ogni pressione di Invio, poi riprodurre esattamente quella sequenza. Le installazioni che memorizzano il gruppo e il nome utente nel profilo possono richiedere righe vuote dove quei prompt non compaiono più, e l’ultima riga ha comunque bisogno del proprio a capo. Un file a cui manca una riga di solito si blocca all’ultimo prompt invece di fallire con un errore chiaro, ed è per questo che se ne incolpa la rete. Confrontate il file con la vostra trascrizione due volte, una per l’ordine e una per le righe vuote.
Tenete il file fuori da qualsiasi cartella sincronizzata e leggibile solo dall’account che esegue l’attività. Quella password è testo in chiaro, quindi il file è una credenziale: niente repository, niente disco condiviso, niente allegato in un ticket. Il client non vi avviserà di nulla di tutto questo.
Perché la GUI deve andarsene per prima
Iniziate lo script terminando il processo della GUI, poi eseguite la CLI dalla sua cartella di installazione, perché contano sia la directory di lavoro sia la build del client. Un wrapper illustrativo:
@echo off
taskkill /IM vpnui.exe /F >nul 2>&1
cd /d "%PROGRAMFILES(x86)%\Cisco\Cisco Secure Client"
vpncli.exe -s < C:\secure\login.txtI codici di uscita non sono qui un segnale affidabile di successo. Il client stampa il proprio avanzamento e tiene il tunnel in un processo separato, quindi leggete l’output per la riga di stato della connessione e solo dopo iniziate il lavoro che dipende dalla VPN.
Se saltate l’uccisione della GUI, lo script può sembrare in esecuzione mentre la sessione esistente resta nello stato in cui l’utente l’ha lasciata. Quel guasto sembra intermittente, ed è esattamente il tipo di bug che sopravvive a una settimana di ipotesi.
Confermate una sessione, non datela per scontata
Quando lo script ritorna, verificate qualcosa che esiste solo dentro il tunnel — un host interno o un suffisso DNS a cui risponde solo il resolver aziendale. Leggete anche la riga di stato della connessione nell’output del client e trattate qualsiasi altra cosa come un guasto anziché un successo lento. Rieseguire il file con una sessione già attiva può lasciare il client mezzo configurato, quindi o disconnettete prima o saltate l’accesso quando la sessione è presente.
Poi decidete chi possiede la riconnessione. Un ciclo che fa ping a un indirizzo interno e riesegue l’accesso può mantenere un chiosco online per mesi, e può anche bloccare un account alla prima rotazione della password. Limitate il numero di tentativi, avvisate quando viene superato e lasciate che il team identità ruoti il file invece di lasciare una password scaduta a ritentare fino al blocco.
Il vecchio vpnclient.exe non è lo stesso strumento
La stessa automazione appare con un nome più vecchio, e i due non sono intercambiabili. Il client Cisco IPsec ritirato usava vpnclient.exe con argomenti in linea come un verbo connect, un nome di profilo, un utente e una password su un’unica riga di comando; vpncli.exe si aspetta invece una sequenza di prompt sull’input standard con -s. Copiare un vecchio script di forum su una macchina attuale produce quindi un comando che si esegue, non fa nulla di visibile e di cui si incolpa il gateway.
Prima di modificare qualsiasi argomento, verificate quale client è installato e quale lo script chiama davvero. La differenza nel nome è abbastanza piccola da sfuggire in un’attività pianificata, ed è la prima cosa da verificare quando uno script ereditato ha smesso di funzionare dopo un aggiornamento.