Inleiding
Dit document beschrijft hoe u Cisco Secure Client-scripting met Secure Firewall ASA en FTD kunt configureren.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- SSL Cisco Secure-clientconfiguratie via Secure Firewall ASA en Secure Firewall Threat Defence beheerd door Cisco Secure Firewall Management Center (FMC)
- ASDM-toegang
- FTD-SSH-toegang
- OnConnect- en OnDisconnect-scripts
Gebruikte componenten
- Secure-firewall ASA
- Beveiligde bescherming tegen firewalls
- Cisco Secure Firewall Management Center
- Cisco Secure-client 5.0.03072
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
We behandelen 2 verschillende configuratievoorbeelden:
- Beveiligde clientscripts instellen met Secure Firewall ASA die worden beheerd door ASDM.
- Beveiligde clientscripting instellen met Secure Firewall Threat Defence, beheerd door Cisco Secure Firewall Management Center.
Met FTD beheerd door FMC wordt dit nog steeds niet officieel ondersteund door het FMC, dus we gaan een tijdelijke oplossing implementeren voor het verbeteringsverzoek Cisco bug ID
Configureren
Configuraties
Installeren van Secure Client-scripting met Secure Firewall ASA beheerd met ASDM-configuratievoorbeeld:
Stap 1. Een beveiligd clientprofiel maken en Scripting in voorkeuren inschakelen (deel 2).
AnyConnect XML-profieleditor
Extra opties uit het xml-profiel:
- Controleer Scriptbeëindiging op volgende gebeurtenis om de client in staat te stellen een actief scriptproces te beëindigen als er een overgang naar een andere scriptable gebeurtenis plaatsvindt. De client beëindigt bijvoorbeeld een actief On Connect-script als de VPN-sessie wordt beëindigd en een actief OnDisconnect-script wordt beëindigd als Cisco Secure Client een nieuwe VPN-sessie start. Op Microsoft Windows, beëindigt de client ook alle scripts die het On Connect- of OnDisconnect-script is gestart en al hun scriptafstammelingen. Op macOS en Linux, beëindigt de client alleen het On Connect- of OnDisconnect-script; het beëindigt geen kindscripts.
- Controleer Post SBL On Connect Script inschakelen (standaard ingeschakeld) om de client het On Connect-script te laten starten (indien aanwezig) als SBL de VPN-sessie start.
Zorg ervoor dat u het AnyConnect-profiel toewijst aan het juiste groepsbeleid:
XML-groepsbeleidstoewijzing
Stap 2. Configureer je script.
Aangezien Cisco voorbeeldscripts of door de klant geschreven scripts niet ondersteunt, hebben we enkele voorbeelden die u kunt testen afhankelijk van uw behoeften:
Windows-scripts
Waarschuwing: Zorg ervoor dat u opdrachten gebruikt die worden ondersteund door de 32-bits cmd.exe.
1. Script om een station in kaart te brengen:
OnConnect.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample AnyConnect OnConnect script."
Dim strDriveLetter, strRemotePath
strDriveLetter = "REPLACE_WITH_DRIVE_LETTER:"
strRemotePath = "\\REPLACE_WITH_SERVER_NAME\REPLACE_WITH_SHARE"
Set objNetwork = CreateObject("WScript.Network")
' remove old mapping (if any)
objNetwork.RemoveNetworkDrive strDriveLetter
' add new mapping
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath
If Err.Number <> 0 Then
objShell.LogEvent 0, "Failed to map network drive." & vbCrLf & Err.Number & ": " & Err.Description
End If
WScript.Quit
OnDisconnect.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample AnyConnect OnDisconnect script."
Dim strDriveLetter
strDriveLetter = "REPLACE_WITH_DRIVE_LETTER:"
Set objNetwork = CreateObject("WScript.Network")
' remove old mapping (if any)
objNetwork.RemoveNetworkDrive strDriveLetter
WScript.Quit
2. Script om een Windows-groepsbeleid te vernieuwen:
OnConnect.vbs of OnDisconnect.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample AnyConnect OnConnect script."
' refreshes local and Active Directory-based Group Policy settings, including security settings
returnCode = objShell.Run("gpupdate.exe /force", 0, True)
If returnCode <> 0 Then
objShell.LogEvent 0, "Failed to update Group Policy settings." & vbCrLf & Err.Number & ": " & Err.Description
End If
objShell.LogEvent 0, "User's Group Policy settings have been updated."
WScript.Quit
3. Meerdere scripts starten:
Script 1.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample script 1."
WScript.Quit
Script 2.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample script 2."
WScript.Quit 5
Script 3.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample script 3."
WScript.Quit
OnConnect.vbs of OnDisconnect.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample AnyConnect OnConnect script."
' launch each script after the previous has completed
returnCode = objShell.Run("wscript.exe Script1.vbs", 0, True)
objShell.LogEvent 0, "Script1.vbs returned = " & returnCode
returnCode = objShell.Run("wscript.exe Script2.vbs", 0, True)
objShell.LogEvent 0, "Script2.vbs returned = " & returnCode
returnCode = objShell.Run("wscript.exe Script3.vbs", 0, True)
objShell.LogEvent 0, "Script3.vbs returned = " & returnCode
WScript.Quit
Opmerking: deze monsters worden geleverd zonder impliciete garantie of ondersteuning. Het is ontworpen om u te helpen bij het gebruik van de Cisco AnyConnect-scriptfunctie. Er wordt aangenomen dat u deze steekproef slechts als referentie noemt.
Linux-scripts
1. Meerdere scripts starten:
Script 1.sh
#!/bin/sh
logger "Sample script 1."
Script 2.sh
#!/bin/sh
logger "Sample script 2."
Script 3.sh
#!/bin/sh
logger "Sample script 3."
OnConnect.sh of OnDisconnect.sh
#!/bin/sh
logger "Sample AnyConnect OnConnect script."
# launch each script after the previous has completed
./Script1.sh
logger "Script1.sh returned = $?"
./Script2.sh
logger "Script2.sh returned = $?"
./Script3.sh
logger "Script3.sh returned = $?"
Opmerking: deze monsters worden geleverd zonder impliciete garantie of ondersteuning. Het is ontworpen om u te helpen bij het gebruik van de Cisco AnyConnect-scriptfunctie. Er wordt aangenomen dat u deze steekproef slechts als referentie noemt.
MacOS-scripts
1. AppleScript starten:
Script 1.scpt
#!/bin/sh
say "This is a Sample AppleScript"
OnConnect.sh
#!/bin/sh
logger "Sample AnyConnect OnConnect script."
# launch the AppleScript script
/usr/bin/osascript Script1.scpt
2. Meerdere scripts starten
Script 1.sh
#!/bin/sh
logger "Sample script 1."
Script 2.sh
#!/bin/sh
logger "Sample script 2."
Script 3.sh
#!/bin/sh
logger "Sample script 3."
OnConnect.sh
#!/bin/sh
logger "Sample AnyConnect OnConnect script."
# launch each script after the previous has completed
./Script1.sh
logger "Script1.sh returned = $?"
./Script2.sh
logger "Script2.sh returned = $?"
./Script3.sh
logger "Script3.sh returned = $?"
Opmerking: deze monsters worden geleverd zonder impliciete garantie of ondersteuning. Het is ontworpen om u te helpen bij het gebruik van de Cisco AnyConnect-scriptfunctie. Er wordt aangenomen dat u deze steekproef slechts als referentie noemt.
Stap 3. Het script importeren via ASDM
AnyConnect Scripting-instellingen ASDM
Beveiligde clientscripts instellen met FTD die wordt beheerd door FMC
Op dit moment wordt Secure Client Scripting niet ondersteund door het FMC, maar er is een verzoek voor verbetering van Cisco bug ID CSCvt58044 om het te ondersteunen. Op basis daarvan hebben we een tijdelijke oplossing om de configuratie en implementatie van de scripts mogelijk te maken.
Stap 1. Maak een beveiligd clientprofiel en schakel Scripting in Voorkeuren (deel 2) in met de VPN-profieleditor.
Pictogram voor VPN Profile Editor
Secure Client 5-profieleditor
Stap 2. Het script maken (dezelfde scriptvoorbeelden van boven)
Stap 3. Let op de grootte van het bestand in bytes
Open de scripteigenschappen door met de rechtermuisknop op het te klikken, in het tabblad Algemeen controleer de grootte en schrijf het op.
Script-eigenschappen
Stap 4. Voer het script in:
Optie 1. TFTP/FTP-overdracht:
SSH naar FTD-applicatie en ENTER-systeemondersteuning diagnostische client
Kopieer het script van je TFTP/FTP server naar de flitser:
TFTP:
>system support diagnostic-cli
FTD#copy tftp:/<serverip>/<filename> flash:/<filename>
FTP:
>system support diagnostic-cli
FTD#copy ftp:<username>:<password>@<serverip>/<filename> flash:/<filename>
Importeer de webvpn AnyConnect-aanpassing:
De bestandsnaam moet vooraf worden ingesteld op scripts_OnConnect_
FTD#import webvpn AnyConnect-customization type binary platform win name scripts_OnConnect_login.vbs flash:/scripts_OnConnect_login.vbs
Optie2. Kopieert het script rechtstreeks naar de CLI:
SSH naar FTD-applicatie en ENTER-systeemondersteuning diagnostische client
Voer deze opdracht in:
De bestandsnaam moet vooraf worden ingesteld op scripts_OnConnect_
FTD#import webvpn AnyConnect-customization type binary platform win name scripts_OnConnect_login.vbs stdin 943
Opmerkingen: De stdin is de grootte in bytes van het script vanaf Stap 2.
Na het invoeren van de importopdracht moet je het eigenlijke script op de CLI plakken en ook al gaat dit niet de output tonen die je gewoon moet doen om een paar tijd in te voeren tot je terug bent bij de CLI.
Opmerking: Het plakken van het script in de CLI kan enige tijd duren, afhankelijk van de grootte van het script.
U kunt controleren of het script goed is geïmporteerd door de opdracht uit te voeren:
FTD#export webvpn AnyConnect-customization type binary platform win name <scriptname>.vbs flash:/<scriptname>.vbs
FTD#more flash:/<scriptname>.vbs
Als u het script moet verwijderen, kunt u de volgende opdracht uitvoeren vanuit de CLI:
FTD#revert webvpn AnyConnect-customization type binary platform win name <scriptname>
Stap 5. Upload het beveiligde client-VPN-profiel naar het VCC en pas dit toe op het groepsbeleid:
Ga naar Apparaten> Externe toegang> selecteer het Verbindingsprofiel en Bewerk> Geavanceerd> Groepsbeleid> Bewerk het Groepsbeleid> Beveiligde client> Profiel> U kunt het profiel selecteren als het reeds naar het VCC is geüpload of u kunt op de plus-optie klikken en het profiel vanaf daar uploaden.
Configuratie van FMC-groepsbeleid
Verifiëren
Nadat u verbinding hebt gemaakt met VPN kunt u bevestigen dat het script is geïmplementeerd door dit pad te controleren, afhankelijk van het besturingssysteem:
Microsoft Windows |
%ALLUSERSPROFILE%\Cisco\Secure Client\VPN\Script |
Linux (Voor Linux, wijs uit voeren toestemmingen aan het dossier voor Gebruiker, Groep en Andere.) |
/opt/cisco/secureclient/vpn/script |
macOS |
/opt/cisco/secureclient/vpn/script |
Problemen oplossen
1. Zorg ervoor dat het script een OnConnect
of OnDisconnect
prefixnaam heeft, Als u ASDM versie 6.3 of hoger gebruikt, voegt de Secure Firewall ASA het prefix scripts_ en het prefix OnConnect of OnDisconnect toe aan uw bestandsnaam om het bestand als een script te identificeren. Wanneer de client verbinding maakt, downloadt het security apparaat het script naar de juiste doelmap op de externe computer, verwijdert het script en verlaat de OnConnect of OnDisconnect prefix. Als u bijvoorbeeld het script myscript.bat importeert, wordt het script op het security apparaat weergegeven als scripts_OnConnect_myscript.bat. Op de computer op afstand wordt het script weergegeven als OnConnect_myscript.bat.
2. Probeer het script vanaf de opdrachtregel uit te voeren. De client kan het script niet uitvoeren als de client niet vanaf de opdrachtregel kan worden uitgevoerd. Als het script niet kan worden uitgevoerd op de opdrachtregel, zorg dan dat de applicatie die het script uitvoert is geïnstalleerd en probeer het script op dat besturingssysteem te herschrijven.
3. Controleer of er slechts één OnConnect-script en slechts één OnDisconnect-script is in de scriptmap op het VPN-eindpunt. Als de client een OnConnect-script van de Secure Firewall ASA downloadt, dan downloadt een tweede OnConnect-script met een ander bestandsnaam-achtervoegsel voor een andere Secure Firewall ASA, dan kan de client het script dat u wilde uitvoeren niet uitvoeren. Als het scriptpad meer dan één OnConnect- of OnDisconnect-script bevat en u de Secure Firewall ASA gebruikt om scripts te implementeren, verwijdert u de inhoud van de scriptmap en start u een VPN-sessie opnieuw. Als het scriptpad meer dan één OnConnect- of OnDisconnect-script bevat en u de handmatige implementatiemethode gebruikt, verwijder dan de ongewenste scripts en start een VPN-sessie opnieuw.
4. Als het besturingssysteem Linux of MacOS is, zorg er dan voor dat de toegang voor het script-bestand is ingesteld op executeren, als de toestemming niet is ingesteld op executeren, dan kunt u deze opdracht uitvoeren om het uitvoerbaar te maken:
$ cd YourScriptDirectory
$ sudo chmod +755 <scriptname>
5. Zorg dat in het clientprofiel scripting is ingeschakeld.
6. Afhankelijk van hoe u uw script schrijft moet u een optie hebben om de voortgang van het script te registreren, bijvoorbeeld met de .vbs kunt u objShell.LogEvent gebruiken en dan kunt u naar de gebeurtenisviewer van Windows gaan en controleren of dit werkte of faalde:
Als voorbeeld gebruiken het script voorbeeld Script om een Windows groep beleid te vernieuwen
Logboeken in gebeurtenisviewer