Introduction
Ce document décrit le concept de base de la création de scripts pour enregistrer une configuration à partir de Cisco Secure Email and Web Manager (SMA).
Conditions préalables
Exigences
Remarque : cet article est une preuve de concept et fourni à titre d'exemple. Bien que ces étapes aient été testées avec succès, cet article est principalement destiné à des fins de démonstration et d'illustration. Les scripts personnalisés sortent du cadre et de la prise en charge de Cisco. Le Centre d'assistance technique Cisco ne peut à aucun moment écrire, mettre à jour ou dépanner des scripts externes personnalisés. Avant d'essayer et de construire des scripts, assurez-vous d'avoir une bonne connaissance des scripts lorsque vous construisez le script final.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Sauvegarde manuelle du fichier de configuration
La sauvegarde de la configuration peut être enregistrée manuellement à l'aide de la commande saveconfig
ou mailconfig
à partir de l'interface de ligne de commande ou via SMA GUI > System Administration > Configuration File
.
Les phrases de passe de masque ne permettent pas à l'appliance de charger la configuration, car elle ne peut pas hacher la forme des mots de passe des comptes d'administration locaux dans le fichier de configuration.
Pour disposer d'une sauvegarde efficace qui puisse être chargée et appliquée à un SMA, il est préférable de chiffrer les phrases de passe.
Ensuite, il est attendu une notification que le fichier a été enregistré dans la configuration sur la machine respective.
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".
Comment automatiser ou créer des scripts de sauvegarde de fichiers de configuration ?
Le résultat souhaité est d'accéder à l'appliance, d'émettre une commande pour générer la configuration actuelle et de l'enregistrer à distance ou d'envoyer une copie du message, sans aucune intervention de l'utilisateur.
Pour accomplir cette tâche de manière efficace, vous devez :
- Générez une paire de clés SSH, sans avoir à saisir manuellement un mot de passe.
- Créez un script pour vous connecter à l'appliance, enregistrez la configuration et envoyez-la à distance ou par courrier électronique.
Remarque : une logique similaire peut être appliquée à n'importe quel langage de script de système d'exploitation, tel que VB ou les scripts par lots pour Windows.
Générer une paire de clés SSH
Pour cela, il est nécessaire de créer une ou plusieurs clés RSA privées/publiques. Pour ce faire, vous pouvez utiliser les éléments suivants :
ssh-keygen -b 2048 -t rsa -f ~/.ssh/
Script d'enregistrement de la configuration sur un hôte spécifié
Voici un exemple de script qui peut être utilisé pour :
- Connectez-vous à SMA via SSH.
- Enregistrez la configuration pour crypter les phrases de passe.
- Envoyez le résultat sur l'hôte distant avec le protocole Secure Copy Protocol (SCP).
Le script contient des variables qui doivent être modifiées en fonction des besoins de l'entreprise.
- HOSTNAME est le nom de domaine complet (FQDN) ou l'adresse IP du SMA.
- USERNAME est le compte de nom d'utilisateur préconfiguré sur le SMA.
- BACKUP_PATH est le répertoire souhaité dans lequel vous devez enregistrer la configuration.
Remarque : avant toute construction, assurez-vous d'avoir une bonne connaissance des scripts et de ces variables.
Une fois le script créé, rendez-le exécutable et exécutez-le.
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 sortie du script doit avoir le format suivant :
etrianti@linux:~$ ./sma_backup.sh
Processing SMA config M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
Saving M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml under path /home/etrianti/
Planifier l'exécution de votre tâche sur une base régulière (UNIX/Linux)
Utilisez cron (UNIX/Linux) pour démarrer le travail régulièrement. Cron est piloté par un fichier crontab (table cron), un fichier de configuration qui spécifie les commandes shell à exécuter périodiquement selon un planning donné. Les fichiers crontab sont stockés à l'endroit où sont conservées les listes de tâches et autres instructions au démon cron.
Le fichier de configuration cron UNIX/Linux est généralement au format suivant :
minute (0-59), hour (0-23, 0 = minuit), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), commande
Un bon exemple d'entrée pour exécuter ce script tous les jours à 1:00 du matin ressemble à :
00 01 * * * /home/etrianti/sma_backup.sh
Dépannage
- Utilisation
cli_logs
pour vérifier si le script s'est déroulé correctement et évaluer ce qui a été effectué :
User
login
définit que l'utilisateur a réussi à se connecter sur SMA.
executed batch command: 'saveconfig 2'
indique la commande qui a été exécutée sur le script pour enregistrer la configuration.
scp -f /configuration/
Définit la configuration extraite de SMA
Exemple d'appel réussi du 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'
- Ajouter, commande
set -x
dans la partie supérieure du script, pour activer le mode debug dans bash et confirmer que le script s'exécute correctement. La commande set
vous permet d'activer certains indicateurs dans votre script Bash afin que le script ait certains comportements et caractéristiques.
Attention : SMA avec message de bienvenue configuré sous CLI > adminaccessconfig for appliance administration login
, ne permet pas au script d'exécuter SCP. Dans ce cas, le message de bienvenue doit être supprimé, tant qu'il n'y a pas de problème avec le message de bannière.
Informations connexes