El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe cómo configurar Cisco Secure Client scripting con Secure Firewall ASA y FTD.
Cisco recomienda que tenga conocimiento sobre estos temas:
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Tratamos dos ejemplos de configuración diferentes:
Con el FTD administrado por FMC, el FMC aún no ofrece soporte oficial para esto, por lo que vamos a implementar una solución alternativa para la solicitud de mejora Cisco bug ID CSCvt58044 .
Opciones adicionales del perfil xml:
Asegúrese de asignar el perfil de AnyConnect a la política de grupo adecuada:
Dado que Cisco no admite scripts de ejemplo ni scripts escritos por el cliente, tenemos algunos ejemplos que puede probar según sus necesidades:
Precaución: Asegúrese de utilizar los comandos admitidos por cmd.exe de 32 bits.
1. Script para asignar una unidad:
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 para actualizar una política de grupo de ventanas:
OnConnect.vbs u 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. Inicio de varios scripts:
Script1.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample script 1."
WScript.Quit
Script2.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample script 2."
WScript.Quit 5
Script3.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample script 3."
WScript.Quit
OnConnect.vbs u 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
Nota: estos ejemplos se suministran tal cual, sin garantía ni asistencia implícitas. Se ha diseñado para ayudarle a utilizar la función de scripting de Cisco AnyConnect. Se supone que se está refiriendo a este ejemplo sólo como referencia.
1. Inicio de varios scripts:
Script1.sh
#!/bin/sh
logger "Sample script 1."
Script2.sh
#!/bin/sh
logger "Sample script 2."
Script3.sh
#!/bin/sh
logger "Sample script 3."
OnConnect.sh u 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 = $?"
Nota: estos ejemplos se suministran tal cual, sin garantía ni asistencia implícitas. Se ha diseñado para ayudarle a utilizar la función de scripting de Cisco AnyConnect. Se supone que se está refiriendo a este ejemplo sólo como referencia.
1. Inicio de AppleScript:
Script1.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. Inicio de varios scripts
Script1.sh
#!/bin/sh
logger "Sample script 1."
Script2.sh
#!/bin/sh
logger "Sample script 2."
Script3.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 = $?"
Nota: estos ejemplos se suministran tal cual, sin garantía ni asistencia implícitas. Se ha diseñado para ayudarle a utilizar la función de scripting de Cisco AnyConnect. Se supone que se está refiriendo a este ejemplo sólo como referencia.
La configuración actual de Secure Client scripting no es compatible con FMC, hay una solicitud de mejora Cisco bug ID CSCvt58044 para apoyarlo. En función de esto, contamos con una solución alternativa para permitir la configuración e implementación de los scripts.
Nota: Puede encontrar el editor de perfiles de VPN aquí: Secure Client 5 Profile Editor
Abra las propiedades del script haciendo clic con el botón derecho del ratón en él, en la ficha General marque el Tamaño y anótelo.
SSH a dispositivo FTD e introduzca la cli de diagnóstico de soporte del sistema
Ingrese este comando:
El nombre de archivo debe ir precedido de scripts_OnConnect_
import webvpn anyConnect-customization type binary platform win name scripts_OnConnect_login.vbs stdin 943
Nota: El stdin es el tamaño en bytes del script del paso 2.
Después de ingresar el comando de importación, debe pegar la secuencia de comandos real en la CLI y, aunque esto no va a mostrar la salida, solo debe ingresar un par de veces hasta que regrese a la CLI.
Puede verificar que la secuencia de comandos se importó correctamente ejecutando el comando:
more <scriptname>.vbs
Vaya a Devices> Remote Access> select the Connection Profile and Edit> Advanced> Group Policies> edit the Group Policy> Secure Client> Profile> puede seleccionar el perfil si ya está cargado en el FMC o puede hacer clic en la opción más y cargar el perfil desde allí.
Después de conectarse a través de la VPN, puede confirmar que la secuencia de comandos se implementó correctamente marcando esta ruta en función del sistema operativo:
Microsoft Windows |
%ALLUSERSPROFILE%\Cisco\Cisco Secure Client\VPN\Script |
Linux (En Linux, asigne permisos de ejecución al archivo para Usuario, Grupo y Otros.) |
/opt/cisco/secureclient/vpn/script |
macOS |
/opt/cisco/secureclient/vpn/script |
1. Asegúrese de que la secuencia de comandos tenga un nombre de prefijo OnConnect
o OnDisconnect
. Si utiliza ASDM versión 6.3 o posterior, Secure Firewall ASA agrega el prefijo scripts_ y el prefijo OnConnect u OnDisconnect al nombre de archivo para identificar el archivo como secuencia de comandos. Cuando el cliente se conecta, el dispositivo de seguridad descarga la secuencia de comandos en el directorio de destino adecuado del equipo remoto, quita el prefijo scripts_ y deja el prefijo OnConnect u OnDisconnect. Por ejemplo, si importa la secuencia de comandos myscript.bat, la secuencia de comandos aparecerá en el dispositivo de seguridad como scripts_OnConnect_myscript.bat. En el equipo remoto, el script aparece como OnConnect_myscript.bat.
2. Intente ejecutar la secuencia de comandos desde la línea de comandos. El cliente no puede ejecutar la secuencia de comandos si no se puede ejecutar desde la línea de comandos. Si la secuencia de comandos no se puede ejecutar en la línea de comandos, asegúrese de que la aplicación que ejecuta la secuencia de comandos está instalada e intente volver a escribir la secuencia de comandos en ese sistema operativo.
3. Compruebe que sólo hay una secuencia de comandos OnConnect y una secuencia de comandos OnDisconnect en el directorio de secuencias de comandos del extremo VPN. Si el cliente descarga una secuencia de comandos de OnConnect desde Secure Firewall ASA, descarga una segunda secuencia de comandos de OnConnect con un sufijo de nombre de archivo diferente para otro ASA de Secure Firewall, el cliente no podrá ejecutar la secuencia de comandos que pretendía ejecutar. Si la ruta de acceso de la secuencia de comandos contiene más de una secuencia de comandos OnConnect u OnDisconnect y está utilizando Secure Firewall ASA para implementar secuencias de comandos, quite el contenido del directorio de secuencias de comandos y restablezca una sesión VPN. Si la ruta de acceso de la secuencia de comandos contiene más de una secuencia de comandos OnConnect u OnDisconnect y está utilizando el método de implementación manual, quite las secuencias de comandos no deseadas y restablezca una sesión VPN.
4. Si el sistema operativo es Linux o MacOS, asegúrese de que los permisos del archivo de script están configurados para ejecutarse; si el permiso no está configurado para ejecutarse, puede ejecutar este comando para que sea ejecutable:
$ cd YourScriptDirectory
$ sudo chmod +755 <scriptname>
5. Asegúrese de que el perfil de cliente tiene habilitada la secuencia de comandos.
6. Dependiendo de cómo esté escribiendo el script, necesita tener una opción para registrar el progreso del script, por ejemplo, con el .vbs puede utilizar objShell.LogEvent y, a continuación, puede ir al visor de eventos de Windows y comprobar si funcionó o no:
Utilizar como ejemplo el ejemplo de script Script para actualizar una directiva de grupo de Windows
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
27-Jul-2023 |
Versión inicial |