Introduction
Ce document décrit les concepts de base et les connaissances associées à la création de scripts pour un hôte externe afin d'effectuer et de récupérer des mises à jour par rapport à un appareil de sécurité de la messagerie Cisco (ESA).
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. L'assistance technique Cisco n'écrira, ne mettra à jour ni ne dépannera les scripts externes personnalisés à aucun moment.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Script OS et planification des tâches
- Configuration et procédures de la paire de clés SSH
Comment automatiser ou créer des scripts de sauvegarde de fichiers de configuration ?
Le fichier de configuration est généré dynamiquement lors de l'utilisation de saveconfig ou mailconfig à partir de l'interface de ligne de commande, ou des options de sauvegarde associées via l'interface graphique utilisateur (Administration système > Fichier de configuration). Pour disposer d'une sauvegarde efficace pouvant être chargée et appliquée à un ESA, il est préférable de « démasquer » les mots de passe. Cela permet à l'appliance de placer une forme hachée des mots de passe des comptes d'administration locaux dans le fichier de configuration. Pour cette raison, nous ne pouvons pas simplement copier un fichier plat de « configuration en cours » à partir du périphérique. Cette méthode nous permet d'accéder d'abord à la solution matérielle-logicielle, d'émettre une commande pour générer dynamiquement la configuration actuelle, et d'enregistrer ou d'envoyer une copie de ce fichier quelque part à distance, sans aucune intervention de l'utilisateur. Une fois cette tâche accomplie, nous pouvons la répéter ou la planifier de façon à ce qu'elle se produise régulièrement.
Pour sauvegarder rapidement et automatiquement les fichiers de configuration avec des mots de passe démasqués :
- Générez une paire de clés SSH à utiliser et vérifiez que vous pouvez accéder à votre appliance via SSH sans avoir à saisir manuellement un mot de passe.
- Créez un script pour vous connecter à l'appliance, enregistrez la configuration et copiez-la (ou envoyez-la 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.
Enregistrement de la configuration sur un hôte spécifié à l'aide de la commande saveconfig
#! /bin/bash
#
# Simple script to save the ESA config, then copy locally via SCP.
#
# $HOSTNAME can be either FQDN or IP address.
HOSTNAME=[FQDN OR IP ADDRESS]
# $USERNAME assumes that you have preconfigured SSH key from this host to your ESA.
USERNAME=admin
FILENAME=`ssh $USERNAME@$HOSTNAME "saveconfig yes" | grep xml | sed -e 's/\/
configuration\///g' | sed 's/\.$//g' | tr -d "\""`
scp $USERNAME@$HOSTNAME:/configuration/$FILENAME .
Une fois que vous avez rendu le script exécutable, vous devriez voir similaire à ce qui suit :
jsmith@linux_server:~$ ./esa_backup
C000V-564D1A718795ACFED603-1A77BAD60A5A-20140902T222913.xml 100% 158KB 157.9KB/
s 00:00
jsmith@linux_server:~$ ls -la
total 1196
drwx------ 10 jsmith jsmith 40960 Sep 2 22:29 .
drwxr-xr-x 13 root root 4096 Aug 13 22:22 ..
-rw-rw---- 1 jsmith jsmith 161642 Sep 2 22:29 C000V-564D1A718795ACFED603-
1A77BAD60A5A-20140902T222913.xml
L'exécution de la commande ls -la liste le contenu du répertoire sur votre système local ou hôte. Vous devez vérifier le nom du fichier, l'horodatage et la taille globale du fichier XML.
Envoi de la configuration à une adresse e-mail à l'aide de mailconfig
#! /bin/bash
#
# Simple script to email the ESA config to pre-specified email address.
#
# $HOSTNAME can be either FQDN or IP address.
HOSTNAME=[FQDN OR IP ADDRESS]
# $USERNAME assumes that you have preconfigured SSH key from this host to your ESA.
USERNAME=admin
# $MAILDEST is preconfigured email address
MAILDEST=backups@example.com
ssh $USERNAME@$HOSTNAME 'mailconfig $MAILDEST yes'
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
Ainsi, un bon exemple d'entrée pour exécuter ce script tous les jours à 2:00 AM ressemblerait à ceci :
00 02 * * * /home/jsmith/esa_backup
Comment puis-je automatiser ou créer des scripts de sauvegarde de fichiers de configuration à partir d'un système Windows ?
La procédure suivante vous permet de sauvegarder régulièrement le fichier de configuration à partir d'un système Windows.
- Installez l'émulateur de terminal PuTTY.
- Créez un fichier texte nommé « send_config » avec la commande mailconfig et une adresse e-mail valide. (Pour plus de simplicité, placez-le sous C:\)
mailconfig example@example.com
- Créez un fichier texte nommé « send_config_batch » avec la commande PuTTy suivante. (Pour plus de simplicité, placez-le également sous C:\)
C:\putty.exe -ssh hostname -l admin -pw password -m C:\send_config.txt
exit
Remarque : veillez à remplacer le nom d'hôte par FQDN ou l'adresse IP de votre ESA, et le mot de passe par votre mot de passe réel pour le compte admin.
Planifier l'exécution régulière de votre tâche (Windows)
À l'aide du Planificateur de tâches ou d'un outil de planification similaire sous Windows, recherchez et ajoutez le « send_config_batch » aux tâches planifiées de Windows.
Le fichier de configuration ESA est envoyé à l'adresse spécifiée dans le fichier texte « send_config », comme indiqué.
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. L'assistance technique Cisco n'écrira, ne mettra à jour ni ne dépannera les scripts externes personnalisés à aucun moment.
Informations connexes