Introduzione
In questo documento viene descritto il concetto di base per la creazione di script in modo da salvare una configurazione da Cisco Secure Email e Web Manager (SMA).
Prerequisiti
Requisiti
Nota: questo articolo è una prova di concetto e viene fornito come base di esempio. Benché questi passaggi siano stati testati con successo, il presente articolo è destinato principalmente a scopi dimostrativi e illustrativi. Gli script personalizzati non rientrano nell'ambito e nella supportabilità di Cisco. Il Technical Assistance Center di Cisco non è in grado di scrivere, aggiornare o risolvere i problemi relativi agli script esterni personalizzati in alcun momento. Prima di provare a creare uno script, accertatevi di disporre delle conoscenze necessarie per creare lo script finale.
Cisco raccomanda la conoscenza dei seguenti argomenti:
Backup manuale dei file di configurazione
Il backup della configurazione può essere salvato manualmente utilizzando il comando saveconfig
o mailconfig
dalla CLI o tramite SMA GUI > System Administration > Configuration File
.
Le passphrase di maschera non consentono all'accessorio di caricare la configurazione, in quanto l'accessorio non può eseguire l'hashing delle password per gli account amministrativi locali nel file di configurazione.
Per un backup efficace che possa essere caricato e applicato a un SMA, è consigliabile crittografare le passphrase.
In seguito è prevista una notifica del salvataggio del file nella configurazione sul computer corrispondente.
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".
Come posso automatizzare o creare script per i backup dei file di configurazione?
Il risultato desiderato è l'accesso all'accessorio, l'esecuzione di un comando per generare la configurazione corrente e il relativo salvataggio in remoto o l'invio di una copia della posta elettronica, senza alcun intervento da parte dell'utente.
Per eseguire questa operazione in modo efficiente, è necessario:
- Generare una coppia di chiavi SSH senza dover immettere manualmente una password.
- Creare uno script per accedere all'accessorio, salvare la configurazione e inviarla in remoto o per posta.
Nota: una logica simile può essere applicata in qualsiasi linguaggio di script del sistema operativo, ad esempio VB o script batch per Windows.
Generazione di una coppia di chiavi SSH
A tal fine, è necessario creare una chiave RSA pubblica/privata. A tale scopo, è possibile utilizzare:
ssh-keygen -b 2048 -t rsa -f ~/.ssh/
Script per salvare la configurazione in un host specificato
Questo è un esempio di script che può essere utilizzato per:
- Accedere a SMA tramite SSH.
- Salvare la configurazione per crittografare le passphrase.
- Inviare l'output sull'host remoto con il protocollo SCP (Secure Copy Protocol).
Lo script contiene variabili che devono essere modificate in base alle esigenze aziendali.
- HOSTNAME è il nome di dominio completo (FQDN) o l'indirizzo IP dell'SMA.
- USERNAME è l'account del nome utente preconfigurato sull'SMA.
- BACKUP_PATH è la directory desiderata in cui salvare la configurazione.
Nota: prima di qualsiasi costruzione, assicurarsi di avere una conoscenza di scripting e una buona comprensione di queste variabili.
Una volta creato lo script, renderlo eseguibile ed eseguirlo.
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>
#
L'output dello script deve avere il seguente formato:
etrianti@linux:~$ ./sma_backup.sh
Processing SMA config M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
Saving M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml under path /home/etrianti/
Pianificare l'attività per l'esecuzione regolare (UNIX/Linux)
Utilizzare cron (UNIX/Linux) per avviare il processo regolarmente. Cron è guidato da un file crontab (tabella cron), un file di configurazione che specifica i comandi della shell da eseguire periodicamente in base a una determinata pianificazione. I file crontab vengono memorizzati dove vengono conservati gli elenchi dei job e le altre istruzioni per il daemon cron.
Il file di configurazione cron UNIX/Linux è in genere nel seguente formato:
minuto (0-59), ora (0-23, 0 = mezzanotte), giorno (1-31), mese (1-12), giorno feriale (0-6, 0 = domenica), comando
Una buona voce di esempio per eseguire questo script ogni giorno alle 13.00 ha il seguente aspetto:
00 01 * * * /home/etrianti/sma_backup.sh
Risoluzione dei problemi
- Utilizzo
cli_logs
per verificare se lo script ha avuto luogo correttamente e valutare le operazioni eseguite:
User
login
definisce che l'utente è riuscito ad accedere a SMA.
executed batch command: 'saveconfig 2'
indica il comando che è stato eseguito sullo script per salvare la configurazione.
scp -f /configuration/
definisce la configurazione recuperata da SMA
Esempio di chiamata riuscita dello 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'
- Aggiungi, comando
set -x
nella parte superiore dello script, per abilitare la modalità di debug in bash e confermare che lo script venga eseguito correttamente. Il comando set
consente di attivare determinati flag nello script Bash in modo che lo script abbia determinati comportamenti e caratteristiche.
Attenzione: SMA con messaggio di benvenuto configurato in CLI > adminaccessconfig for appliance administration login
, non consente l'esecuzione di SCP da parte dello script. In questo caso il messaggio di benvenuto deve essere rimosso, mentre non c'è alcun problema con il messaggio di intestazione.
Informazioni correlate