Introdução
Este documento descreve como configurar o script do Cisco Secure Client com o Secure Firewall ASA e FTD.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Configuração SSL do Cisco Secure Client através do Secure Firewall ASA e Secure Firewall Threat Defense gerenciados pelo Cisco Secure Firewall Management Center (FMC)
- acesso ASDM
- Acesso FTD SSH
- Scripts OnConnect e OnDisconnect
Componentes Utilizados
- ASA com firewall seguro
- Defesa contra ameaças de firewall seguro
- Cisco Secure Firewall Management Center
- Cisco Secure Client 5.0.03072
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
Abordamos dois exemplos de configuração diferentes:
- Configuração do script do Secure Client com o Secure Firewall ASA gerenciado pelo ASDM.
- Configuração de scripts do Secure Client com o Secure Firewall Threat Defense gerenciado pelo Cisco Secure Firewall Management Center.
Com o FTD gerenciado pelo FMC, isso ainda não é oficialmente suportado pelo FMC, então vamos implementar uma solução alternativa para a solicitação de aprimoramento ID de bug da Cisco CSCvt58044 .
Configurar
Configurações
Exemplo de configuração da criação de scripts do Secure Client com o Secure Firewall ASA gerenciado pelo ASDM:
Etapa 1. Crie um perfil de cliente seguro e ative o script nas preferências (parte 2).
Editor de perfis XML do AnyConnect
Opções adicionais do perfil xml:
- Marque Terminar script no próximo evento para permitir que o cliente termine um processo de script em execução se ocorrer uma transição para outro evento de script. Por exemplo, o cliente encerra um script On Connect em execução se a sessão VPN for encerrada e encerra um script OnDisconnect em execução se o Cisco Secure Client iniciar uma nova sessão VPN. No Microsoft Windows, o cliente também encerra todos os scripts iniciados por On Connect ou OnDisconnect e todos os seus descendentes de script. No macOS e no Linux, o cliente encerra somente o script On Connect ou OnDisconnect; ele não encerra scripts filhos.
- Marque Enable Post SBL On Connect Script (habilitado por padrão) para permitir que o cliente inicie o script On Connect (se presente) se o SBL estabelecer a sessão VPN.
Certifique-se de atribuir o Perfil do AnyConnect à Política de grupo apropriada:
Atribuição de Política de Grupo XML
Etapa 2. Configure seu script.
Como a Cisco não oferece suporte a scripts de exemplo ou scripts escritos por clientes, temos alguns exemplos que você pode testar de acordo com suas necessidades:
Scripts do Windows
Cuidado: Certifique-se de usar os comandos suportados pelo cmd.exe de 32 bits.
1. Script para mapear uma unidade:
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 atualizar uma política de grupo do Windows:
OnConnect.vbs ou 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. Iniciando vários 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 ou 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
Observação: esses exemplos são fornecidos como estão sem garantia ou suporte implícitos. Ele foi projetado para ajudá-lo a usar o recurso de script do Cisco AnyConnect. Supõe-se que você esteja se referindo a este exemplo apenas como referência.
Script Linux
1. Iniciando vários 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 ou 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 = $?"
Observação: esses exemplos são fornecidos como estão sem garantia ou suporte implícitos. Ele foi projetado para ajudá-lo a usar o recurso de script do Cisco AnyConnect. Supõe-se que você esteja se referindo a este exemplo apenas como referência.
Scripts MacOS
1. Iniciando o 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. Iniciando vários 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 = $?"
Observação: esses exemplos são fornecidos como estão sem garantia ou suporte implícitos. Ele foi projetado para ajudá-lo a usar o recurso de script do Cisco AnyConnect. Supõe-se que você esteja se referindo a este exemplo apenas como referência.
Etapa 3. Importar o script por meio do ASDM
Configurações de script do AnyConnect ASDM
Configuração de scripts de cliente seguro com FTD gerenciado pelo FMC
No momento, a configuração do script do Secure Client não é suportada pelo FMC. Há uma solicitação de aprimoramento da ID de bug da Cisco CSCvt58044 para suportá-la. Com base nisso, temos uma solução alternativa para permitir a configuração e a implantação dos scripts.
Etapa 1. Crie um perfil de cliente seguro e ative o script nas preferências (parte 2) com o editor de perfil VPN.
Ícone do Editor de perfis VPN
Editor de perfil do Secure Client 5
Etapa 2. Criar o script (os mesmos exemplos de script acima)
Etapa 3. Observe o tamanho do arquivo em bytes
Abra as propriedades do script clicando com o botão direito sobre ele, na guia Geral verifique o Tamanho e anote-o.
Propriedades do script
Etapa 4. Importar o script:
Opção 1. Transferência TFTP/FTP:
SSH para dispositivo FTD e digite system support diagnostic-cli
Copie o script do servidor TFTP/FTP para a flash:
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>
Importe a personalização do WebVPN AnyConnect:
O nome do arquivo deve ter o prefixo scripts_OnConnect_
FTD#import webvpn AnyConnect-customization type binary platform win name scripts_OnConnect_login.vbs flash:/scripts_OnConnect_login.vbs
Opção 2. Copie o script diretamente na CLI:
SSH para dispositivo FTD e digite system support diagnostic-cli
Digite este comando:
O nome do arquivo deve ter o prefixo scripts_OnConnect_
FTD#import webvpn AnyConnect-customization type binary platform win name scripts_OnConnect_login.vbs stdin 943
Observações: O stdin é o tamanho em bytes do script da Etapa 2.
Depois de inserir o comando import, você precisa colar o script real na CLI e, mesmo que isso não vá mostrar a saída, você só precisa inserir alguns minutos até voltar para a CLI.
Observação: a colagem do script na CLI pode demorar um pouco, dependendo do tamanho do script.
Você pode verificar se o script foi importado corretamente executando o comando:
FTD#export webvpn AnyConnect-customization type binary platform win name <scriptname>.vbs flash:/<scriptname>.vbs
FTD#more flash:/<scriptname>.vbs
Se precisar remover o script, você pode executar o seguinte comando da CLI:
FTD#revert webvpn AnyConnect-customization type binary platform win name <scriptname>
Etapa 5. Carregue o perfil do Secure Client VPN para o FMC e aplique-o à Política de Grupo:
Vá para Devices> Remote Access> selecione Connection Profile e Edit> Advanced> Group Policies> edite a Group Policy> Secure Client> Profile> você pode selecionar o perfil se já estiver carregado no FMC ou você pode clicar na opção plus e carregar o perfil de lá.
Configuração da política de grupo do FMC
Verificar
Depois de se conectar pela VPN, você pode confirmar se o script foi implantado com êxito verificando este caminho, dependendo do SO:
Microsoft Windows |
%ALLUSERSPROFILE%\Cisco\Cisco Secure Client\VPN\Script |
Linux (No Linux, atribua permissões de execução ao arquivo para Usuário, Grupo e Outros.) |
/opt/cisco/secureclient/vpn/script |
MacOS |
/opt/cisco/secureclient/vpn/script |
Troubleshooting
1. Verifique se o script tem um nome de prefixo OnConnect
ou OnDisconnect
. Se você usar o ASDM versão 6.3 ou posterior, o Secure Firewall ASA adicionará o prefixo scripts_ e o prefixo OnConnect ou OnDisconnect ao seu nome de arquivo para identificar o arquivo como um script. Quando o cliente se conecta, o Security Appliance baixa o script para o diretório de destino apropriado no computador remoto, remove o prefixo scripts_ e deixa o prefixo OnConnect ou OnDisconnect. Por exemplo, se você importar o script myscript.bat, o script aparecerá no Security Appliance como scripts_OnConnect_myscript.bat. No computador remoto, o script aparece como OnConnect_myscript.bat.
2. Tente executar o script a partir da linha de comando. O cliente não pode executar o script se não puder executar a partir da linha de comando. Se o script falhar ao ser executado na linha de comando, verifique se o aplicativo que executa o script está instalado e tente regravar o script nesse sistema operacional.
3. Verifique se há apenas um script OnConnect e apenas um script OnDisconnect no diretório de scripts do ponto de extremidade da VPN. Se o cliente fizer download de um script do OnConnect do ASA do Firewall Seguro e, em seguida, fizer download de um segundo script do OnConnect com um sufixo de nome de arquivo diferente para outro ASA do Firewall Seguro, o cliente não poderá executar o script que você pretende executar. Se o caminho do script contiver mais de um script OnConnect ou OnDisconnect e você estiver usando o Secure Firewall ASA para implantar scripts, remova o conteúdo do diretório de scripts e restabeleça uma sessão VPN. Se o caminho do script contiver mais de um script OnConnect ou OnDisconnect e você estiver usando o método de implantação manual, remova os scripts indesejados e restabeleça uma sessão VPN.
4. Se o sistema operacional for Linux ou MacOS, certifique-se de que as permissões do arquivo de script estejam definidas para execução. Se a permissão não estiver definida para execução, você poderá executar este comando para torná-la executável:
$ cd YourScriptDirectory
$ sudo chmod +755 <scriptname>
5. Certifique-se de que o perfil do cliente tenha scripts ativados.
6. Dependendo de como você está escrevendo seu script, você precisa ter uma opção para registrar o progresso do script, por exemplo, com o .vbs, você pode usar objShell.LogEvent e, em seguida, pode ir para o visualizador de eventos do Windows e verificar se isso funcionou ou falhou:
Usando como exemplo o script exemplo Script para atualizar uma política de grupo do Windows
Logs do Visualizador de Eventos