Introducción
Este documento describe el concepto básico de creación de scripts para guardar una configuración de Cisco Secure Email and Web Manager (SMA).
Prerequisites
Requirements
Nota: este artículo es una prueba de concepto y se proporciona como base de ejemplo. Aunque estos pasos se han probado con éxito, este artículo está pensado principalmente para fines de demostración e ilustración. Las secuencias de comandos personalizadas están fuera del alcance y la compatibilidad de Cisco. Cisco Technical Assistance Center no puede escribir, actualizar ni solucionar problemas de scripts externos personalizados en ningún momento. Antes de intentar crear secuencias de comandos, asegúrese de que dispone de conocimientos sobre secuencias de comandos cuando cree la secuencia de comandos final.
Cisco recomienda que tenga conocimiento sobre estos temas:
Copia de seguridad manual del archivo de configuración
La copia de seguridad de la configuración se puede guardar manualmente con el comando saveconfig
or mailconfig
desde la CLI o a través de la SMA GUI > System Administration > Configuration File
.
Las frases de contraseña de máscara no permiten que el dispositivo cargue la configuración, ya que el dispositivo no puede aplicar un hash a las contraseñas de las cuentas administrativas locales en el archivo de configuración.
Para tener una copia de seguridad efectiva que pueda cargarse y aplicarse a un SMA, lo mejor es Cifrar frases de contraseña.
Después, se espera una notificación de que el archivo se ha guardado en la configuración de la máquina respectiva.
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".
¿Cómo puedo automatizar o realizar copias de seguridad de archivos de configuración de scripts?
El resultado deseado es acceder al dispositivo, ejecutar un comando para generar la configuración actual y guardarla de forma remota o enviar una copia por correo electrónico, sin la intervención del usuario.
Para llevar a cabo esta tarea de una manera eficaz, debe:
- Genere un par de claves SSH, sin necesidad de introducir manualmente una contraseña.
- Cree una secuencia de comandos para iniciar sesión en el dispositivo, guardar la configuración y enviarla a de forma remota o por correo electrónico.
Nota: Se puede aplicar una lógica similar en cualquier lenguaje de scripting del sistema operativo, como VB o scripts por lotes para Windows.
Generar un par de claves SSH
Para ello, es necesario crear una o varias claves RSA privadas/públicas. Esto puede lograrse mediante el uso de:
ssh-keygen -b 2048 -t rsa -f ~/.ssh/
Script para guardar la configuración en un host especificado
Este es un ejemplo de un script que se puede utilizar para:
- Inicie sesión en SMA mediante SSH.
- Guarde la configuración para cifrar frases de contraseña.
- Envíe el resultado a un host remoto con el protocolo de copia segura (SCP).
La secuencia de comandos contiene variables que se deben modificar en función de las necesidades empresariales.
- HOSTNAME es el nombre de dominio completo (FQDN) o dirección IP del SMA.
- USERNAME es el nombre de usuario preconfigurado en el SMA.
- BACKUP_PATH es el directorio deseado en el que debe guardar la configuración.
Nota: Antes de cualquier construcción asegúrese de tener conocimiento de scripting y buena comprensión de estas variables.
Una vez creado el script, conviértalo en ejecutable y ejecute el 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>
#
La salida del script debe tener 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 la ejecución de la tarea de forma regular (UNIX/Linux)
Utilice cron (UNIX/Linux) para iniciar el trabajo con regularidad. Cron está controlado por un archivo crontab (tabla cron), un archivo de configuración que especifica los comandos shell que se ejecutarán periódicamente en una programación determinada. Los archivos crontab se almacenan donde se guardan las listas de trabajos y otras instrucciones al demonio cron.
El archivo cron config de UNIX/Linux normalmente tiene este formato:
minuto (0-59), hora (0-23, 0 = medianoche), día (1-31), mes (1-12), día de la semana (0-6, 0 = domingo), comando
Un buen ejemplo de entrada para ejecutar este script todos los días a la 1:00 a.m. es similar a:
00 01 * * * /home/etrianti/sma_backup.sh
Troubleshoot
- Uso
cli_logs
para revisar si la secuencia de comandos se ha realizado correctamente y evaluar qué se ha realizado:
User
login
define que el usuario pudo iniciar sesión correctamente en SMA.
executed batch command: 'saveconfig 2'
revela el comando que se ha ejecutado en el script para guardar la configuración.
scp -f /configuration/
define la configuración obtenida de SMA
Ejemplo de una llamada correcta del 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'
- Agregar, comando
set -x
en la parte superior del script, para habilitar el modo de depuración en bash y confirmar que el script se ejecute correctamente. El comando set
le permite habilitar ciertos indicadores en su script Bash para que el script tenga ciertos comportamientos y características.
Precaución: SMA con mensaje de "bienvenida" configurado en CLI > adminaccessconfig for appliance administration login
, no permite que el script ejecute SCP. En este caso, el mensaje de bienvenida debe eliminarse, pero no hay ningún problema con el mensaje del banner.
Información Relacionada