vpncli -s versus de GUI: inloggen op Cisco Secure Client
vpncli -s leest een voorbereid antwoordbestand, de GUI leest een mens. Vergelijk wanneer het script loont, wat het bestand nodig heeft en hoe u dat bewijst.
Cisco Secure Client biedt twee manieren om dezelfde inlogvragen te beantwoorden: iemand die in vpnui.exe typt, of een script dat antwoorden via de standaardinvoer met -s naar vpncli.exe stuurt. De tweede maakt geplande verbindingen mogelijk zonder het GUI-scherm af te lezen, en het verandert een login ook in een bestand dat als referentie moet worden beschermd. Welke u wilt, hangt ervan af of er een mens bij de machine zit en hoe vaak het wachtwoord roteert. Geen van beide opties verandert wat de gateway vraagt, alleen wie antwoordt.
Beide paden eindigen in dezelfde tunnel, dus de vergelijking gaat over beheer, niet over protocol.
Twee manieren om dezelfde vragen te beantwoorden
Het GUI-pad is van nature interactief: de client vraagt, iemand antwoordt, en de sessie leeft zolang die persoon hem met rust laat. Het is de juiste keuze op een laptop die een mens gebruikt, omdat de vragen zich aanpassen aan de authenticatiemethode van de gateway en niemand een wachtwoord als platte tekst op schijf hoeft te bewaren.
Het scriptpad is juist voor een kiosk, een labmachine of een geplande taak waar niemand is om te typen. De ruil is duidelijk: u accepteert een referentiebestand op schijf in ruil voor een onbeheerde verbinding. Als de gateway certificaat- of SAML-authenticatie biedt, is die ruil meestal niet de moeite waard, omdat het bestand alleen bestaat om vragen te beantwoorden die een sterker middel zou vermijden.
Meng de twee niet tegelijk op één machine. De opdrachtregel en de grafische client strijden om dezelfde sessietoestand, en dat is het probleem van de volgende sectie.
Wat het antwoordbestand moet bevatten
De client vraagt in volgorde — gateway, soms een groepskeuze, gebruikersnaam, wachtwoord en elke bannerbevestiging. Een bestand dat al die vragen beantwoordt, ziet er zo uit, met echte waarden ingevuld:
connect vpn.example.com
MyGroup
alice
correct-horse-battery
yDe betrouwbare manier om dat bestand te bouwen is één keer met de hand verbinden, elke regel die u typt en elke Enter die u indrukt opschrijven, en die reeks vervolgens exact reproduceren. Installaties die de groep en gebruikersnaam in het profiel opslaan, hebben mogelijk lege regels nodig waar die vragen niet meer verschijnen, en de laatste regel heeft nog steeds zijn eigen regeleinde nodig. Een bestand dat één regel te kort is, blijft meestal hangen bij de laatste vraag in plaats van te falen met een duidelijke fout, en daarom krijgt het netwerk de schuld. Vergelijk het bestand twee keer met uw transcriptie, één keer voor de volgorde en één keer voor de lege regels.
Houd het bestand buiten elke gesynchroniseerde map en alleen leesbaar voor het account dat de taak uitvoert. Dat wachtwoord is platte tekst, dus het bestand is een referentie: geen repository, geen gedeelde schijf, geen bijlage in een ticket. De client waarschuwt u voor niets daarvan.
Waarom de GUI eerst weg moet
Begin het script door het GUI-proces te beëindigen en start daarna de CLI vanuit zijn eigen installatiemap, want zowel de werkmap als de clientbuild telt. Een illustratieve wrapper:
@echo off
taskkill /IM vpnui.exe /F >nul 2>&1
cd /d "%PROGRAMFILES(x86)%\Cisco\Cisco Secure Client"
vpncli.exe -s < C:\secure\login.txtExitcodes zijn hier geen betrouwbaar succesvol signaal. De client drukt zijn voortgang af en houdt de tunnel in een apart proces, dus lees de uitvoer op de regel met de verbindingsstatus en begin pas daarna het werk dat van de VPN afhangt.
Slaat u het doden van de GUI over, dan lijkt het script te draaien terwijl de bestaande sessie blijft in de staat waarin de gebruiker hem achterliet. Die fout ziet er wisselvallig uit, en dat is precies het soort bug dat een week gissen overleeft.
Bevestig een sessie, ga er niet van uit
Controleer na terugkomst van het script iets dat alleen binnen de tunnel bestaat — een interne host of een DNS-achtervoegsel waarop alleen de bedrijfsresolver antwoordt. Lees ook de regel met de verbindingsstatus in de uitvoer van de client en behandel al het andere als een fout in plaats van een traag succes. Het bestand opnieuw draaien terwijl er al een sessie is, kan de client half geconfigureerd achterlaten, dus verbreek eerst de verbinding of sla de login over als de sessie er is.
Bepaal daarna wie de herverbinding bezit. Een lus die een intern adres pingt en de login opnieuw uitvoert, kan een kiosk maanden online houden, en kan ook een account vergrendelen bij de eerste wachtwoordrotatie. Begrens het aantal pogingen, alarmeer wanneer het wordt overschreden en laat het identiteitsteam het bestand roteren in plaats van een verouderd wachtwoord te laten herproberen tot een vergrendeling.
De oudere vpnclient.exe is niet hetzelfde gereedschap
Dezelfde automatisering verschijnt onder een oudere naam, en de twee zijn niet uitwisselbaar. De uitgefaseerde Cisco IPsec-client gebruikte vpnclient.exe met inline-argumenten zoals een connect-werkwoord, een profielnaam, een gebruiker en een wachtwoord op één opdrachtregel; vpncli.exe verwacht een reeks vragen op de standaardinvoer met -s. Een oud forumscript op een hedendaagse machine kopiëren levert daarom een opdracht op die draait, niets zichtbaars doet en waarvan de gateway de schuld krijgt.
Controleer voordat u argumenten aanpast welke client is geïnstalleerd en welke het script werkelijk aanroept. Het naamsverschil is klein genoeg om in een geplande taak te missen, en het is het eerste dat u moet verifiëren wanneer een overgenomen script na een upgrade stopt met werken.