Introdução
Este documento descreve o conceito básico de criação de script para salvar uma configuração do Cisco Secure Email and Web Manager (SMA).
Pré-requisitos
Requisitos
Observação: este artigo é uma prova de conceito e fornecido como base de exemplo. Embora essas etapas tenham sido testadas com êxito, este artigo destina-se principalmente para fins de demonstração e ilustração. Os scripts personalizados estão fora do escopo e da capacidade de suporte da Cisco. O Cisco Technical Assistance Center não pode gravar, atualizar ou solucionar problemas de scripts externos personalizados a qualquer momento. Antes de tentar e construir qualquer script, certifique-se de ter conhecimento de script ao construir o script final.
A Cisco recomenda que você tenha conhecimento destes tópicos:
Backup Manual do Arquivo de Configuração
O backup da configuração pode ser salvo manualmente com o uso do comando saveconfig
or mailconfig
a partir do CLI ou através do SMA GUI > System Administration > Configuration File
.
As senhas de máscara não permitem que o equipamento carregue a configuração, pois o equipamento não pode ter a forma de hash das senhas das contas administrativas locais no arquivo de configuração.
Para ter um backup eficaz que possa ser carregado e aplicado a um SMA, é melhor criptografar senhas.
Depois, espera-se uma notificação de que o arquivo foi salvo na configuração na respectiva máquina.
sma01.local> saveconfig
Choose the passphrase option:
1. Mask passphrases (Files with masked passphrases cannot be loaded with loadconfig command)
2. Encrypt passphrases
[1]> 2
The file M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
has been saved in the configuration directory on machine "sma01.local".
Como posso automatizar ou criar scripts de backups de arquivos de configuração?
O resultado desejado é acessar o dispositivo, emitir um comando para gerar a configuração atual e salvá-la remotamente ou enviar uma cópia de correio, sem qualquer intervenção do usuário.
Para realizar essa tarefa com eficiência, você deve:
- Gere um par de chaves SSH, sem a necessidade de digitar manualmente uma senha.
- Crie um script para fazer login no equipamento, salvar a configuração e enviá-la para remotamente ou por e-mail.
Observação: uma lógica semelhante pode ser aplicada em qualquer linguagem de script de SO, como VB ou scripts em lote para Windows.
Gerar um par de chaves SSH
Para isso, é necessário criar uma chave RSA privada/pública. Isso pode ser feito com o uso de:
ssh-keygen -b 2048 -t rsa -f ~/.ssh/
Script para salvar configuração em um Host Especificado
Este é um exemplo de um script que pode ser usado para:
- Faça login no SMA via SSH.
- Salve a configuração para criptografar senhas.
- Envie a saída no host remoto com o protocolo SCP (Secure Copy Protocol).
O script contém variáveis que devem ser modificadas com base nas necessidades comerciais.
- HOSTNAME é o FQDN (Fully Qualified Domain Name, nome de domínio totalmente qualificado) ou o endereço IP do SMA.
- USERNAME é a conta de nome de usuário pré-configurada no SMA.
- BACKUP_PATH é o diretório desejado no qual você deve salvar a configuração.
Observação: antes de qualquer construção, certifique-se de ter conhecimento de script e bom entendimento dessas variáveis.
Depois que o script for criado, torne-o executável e execute o script.
chmod +x sma_backup.sh
./sma_backup.sh
#!/usr/bin/env bash
#
# Simple script to save the SMA config, then copy locally via SCP.
#
# $HOSTNAME can be either FQDN or IP address.
HOSTNAME= [FQDN/IP ADDRESS of SMA]
#
# $USERNAME assumes that you have preconfigured SSH key from this host to your SMA.
USERNAME=admin
#
# $BACKUP_PATH is the directory location on the local system.
BACKUP_PATH= [/local/path/as/desired]
#
# $FILENAME contains the actual script that calls the SMA and issues the 'saveconfig 2' command.
# The rest of the string removes the unnecessary part and isolates the name of the configuration file <model>-<serial number>-<timestamp>.xml.
#
FILENAME=$(ssh -q $USERNAME@$HOSTNAME 'saveconfig 2' | awk '/xml/ {print $3}')
#
# Notification that new generated config file saved locally.
echo
echo "Processing SMA config ${FILENAME}"
#
# SCP saves the configuration to the respective folder that has been defined under "BACKUP_PATH"
scp -q ${USERNAME}@${HOSTNAME}:/configuration/${FILENAME} ${BACKUP_PATH}
#
# Notification that configuration saved properly on the desired folder.
echo "Saving ${FILENAME} under path ${BACKUP_PATH}"
#
# </SCRIPT>
#
A saída do script deve ter este formato:
etrianti@linux:~$ ./sma_backup.sh
Processing SMA config M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
Saving M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml under path /home/etrianti/
Programe sua tarefa para ser executada regularmente (UNIX/Linux)
Use o cron (UNIX/Linux) para iniciar o trabalho regularmente. O Cron é orientado por um arquivo crontab (cron table), um arquivo de configuração que especifica os comandos do shell a serem executados periodicamente em um determinado cronograma. Os arquivos crontab são armazenados onde as listas de trabalhos e outras instruções para o daemon cron são mantidas.
O arquivo de configuração cron do UNIX/Linux normalmente está neste formato:
minuto (0-59), hora (0-23, 0 = meia-noite), dia (1-31), mês (1-12), dia da semana (0-6, 0 = domingo), comando
Um bom exemplo de entrada para executar este script todos os dias à 1h é semelhante a:
00 01 * * * /home/etrianti/sma_backup.sh
Troubleshooting
- Uso
cli_logs
para verificar se o script ocorreu corretamente e avaliar o que foi executado:
User
login
define que o usuário conseguiu fazer login com êxito no SMA.
executed batch command: 'saveconfig 2'
revela o comando executado no script para salvar a configuração.
scp -f /configuration/
define a configuração que foi buscada no SMA
Exemplo de uma chamada bem-sucedida do script:
sma01.local> tail cli_logs
Press Ctrl-C to stop.
Thu Apr 20 12:25:33 2023 Info: PID 61539: User admin login from 10.61.94.7 on 172.16.200.30
Thu Apr 20 12:25:34 2023 Info: PID 61539: User admin executed batch command: 'saveconfig 2'
Thu Apr 20 12:25:39 2023 Info: PID 61582: User admin login from 10.61.94.7 on 172.16.200.30
Thu Apr 20 12:25:39 2023 Info: PID 61582: User admin executed batch command: 'scp -f /configuration/M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml'
- Adicionar comando
set -x
na parte superior do script, para ativar o modo de depuração em bash e confirmar a execução correta do script. O comando set
permite habilitar certos sinalizadores no script Bash para que o script tenha determinados comportamentos e características.
Cuidado: SMA com mensagem de "boas-vindas" configurada em CLI > adminaccessconfig for appliance administration login
, não permite que o script execute SCP. Nesse caso, a mensagem de boas-vindas deve ser removida, embora não haja nenhum problema com a mensagem do banner.
Informações Relacionadas