Introduction
Ce document décrit comment utiliser des commandes par lots afin d'enregistrer une configuration à partir d'une appliance dans un cluster sur l'appliance de sécurité de la messagerie Cisco (ESA). Il peut être utilisé sur toutes les versions d'AsyncOS pour ESA.
Avant la version 8.5 d'AsyncOS, les appliances en cluster ne pouvaient pas enregistrer une configuration utilisable pour restaurer une configuration sur un ESA Cisco. Pour obtenir une configuration utilisable à partir de l'appliance, vous deviez supprimer l'appliance du cluster et enregistrer la configuration en tant qu'appliance autonome.
Conditions préalables
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 n'écrira, ne mettra à jour ni ne dépannera les scripts externes personnalisés à aucun moment. Avant d'essayer et de construire des scripts, assurez-vous d'avoir une bonne connaissance des scripts lorsque vous construisez le script final.
Recueillez ces informations auprès des ESA dans le cluster :
- Adresses IP et/ou nom d'hôte
- Nom du cluster
- Nom du groupe de clusters (le cas échéant)
Consultez le Guide de référence CLI pour votre version d'AsyncOS for Email Security, car il y a des modifications de lot CLI qui dépendent de la révision que votre ESA exécute.
Lisez et comprenez ces TechNotes :
Automatiser ou créer un script pour la sauvegarde d'un fichier de configuration d'une appliance en cluster
Pour les versions d'AsyncOS antérieures à la version 8.5, lorsque vous tentez d'enregistrer la configuration alors que vous êtes en cluster avec la commande saveconfig ou mailconfig, l'ESA génère cet avertissement :
WARNING: Clustered machines do not support loadconfig. Your configuration file has
complete data for the entire cluster, but cannot be used to restore a configuration.
[an error occurred while processing this directive]
Dans AsyncOS version 8.5 et ultérieures, les configurations enregistrées contiennent désormais la configuration au niveau de l'ordinateur et la configuration du cluster. Ce sujet est traité en détail dans le Guide de l'utilisateur des versions 8.5 et ultérieures. Reportez-vous aux Guides de l'utilisateur final pour obtenir des informations détaillées.
Il n'est pas nécessaire de sauvegarder la configuration de chaque appliance d'un cluster. Cependant, il peut y avoir plusieurs clusters dans un réseau, avec plusieurs groupes configurés pour chaque cluster. Il est assez difficile de supprimer chaque appliance du cluster, puis d'enregistrer la configuration et de rejoindre à nouveau le cluster manuellement.
Ces commandes peuvent être utilisées si vous vous connectez à l'ESA, supprimez l'ESA du cluster, enregistrez ou envoyez la configuration par courrier électronique, puis rejoignez à nouveau le cluster.
Pour commencer, il est important de connaître le nom de la machine et le numéro de série des ESA dans le cluster et le nom du groupe. Cela peut être obtenu si vous entrez clusterconfig list sur la CLI :
(Cluster ESA1_ESA2)> clusterconfig list
Cluster esaA_esaB
=====================
Group Main_Group:
Machine ESA1.local (Serial #: 0000E878109A-G091111)
Machine ESA2.local (Serial #: 0000E878525D-9091111)
[an error occurred while processing this directive]
Afin de supprimer l'appliance du cluster, utilisez la commande clusterconfig removemachine <nom de l'appliance> :
(Cluster ESA1_ESA2)> clusterconfig removemachine ESA1.local
Please wait, this operation may take a minute...
Machine ESA1.local removed from the cluster.
[an error occurred while processing this directive]
À l'aide de la commande saveconfig, enregistrez la configuration sur l'appliance avec des mots de passe. Comme indiqué, « Les fichiers avec des mots de passe masqués ne peuvent pas être chargés à l'aide de la commande loadconfig. » Par conséquent, veillez à entrer N lorsque vous y êtes invité :
ESA1.local> saveconfig
Do you want to mask the password? Files with masked passwords cannot be loaded
using loadconfig command. [Y]> n
File written on machine "esaA.local" to the location
"/configuration/C100V-0000E878109A-G091111-20140909T184724.xml".
Configuration saved.
[an error occurred while processing this directive]
Vous pouvez également utiliser mailconfig afin d'envoyer la configuration à un destinataire d'e-mail valide. Comme indiqué, « Les fichiers avec des mots de passe masqués ne peuvent pas être chargés à l'aide de la commande loadconfig. » Par conséquent, veillez à entrer N lorsque vous y êtes invité :
ESA1.local> mailconfig
Please enter the email address to which you want to send the configuration file.
Separate multiple addresses with commas.
[]> joe@example.com
Do you want to mask the password? Files with masked passwords cannot be loaded
using loadconfig command. [Y]> n
The configuration file has been sent to joe@example.com.
[an error occurred while processing this directive]
Enfin, utilisez la commande clusterconfig batch afin de joindre de nouveau l'appliance au cluster :
clusterconfig join [--port=xx] <ip_of_remote_cluster> <admin_username>
<admin_password> <groupname>
[an error occurred while processing this directive]
Afin de poursuivre avec l'exemple précédent, ceci serait exécuté dans cette commande :
esaA.local> clusterconfig join --port=22 172.16.6.161 admin ironport Main_Group
Joining a cluster takes effect immediately, there is no need to commit.
(Cluster ESA1_ESA2)>
[an error occurred while processing this directive]
Vous remarquerez le changement automatique de l'invite de commande en nom de niveau de cluster, comme indiqué dans l'exemple précédent sous la forme "Cluster ESA1_ESA2)".
Sauvegardes avancées de fichiers de configuration automatisée ou par script
À partir d'un hôte externe (UNIX/Linux/OSX), vous pouvez utiliser les commandes précédentes afin de créer un script pour le processus.
Voici un exemple du processus entier écrit dans le script, avec l'hypothèse que le cluster s'exécute sur Secure Shell (SSH), port 22 :
#! /bin/bash
#
# Script to save the ESA config, then copy locally via SCP. This is assuming you
wish to
# have the cluster in SSH via port 22. This script has been written and tested against
# AsyncOS 9.0.0-390 (01/15/2014).
#
# *NOTE* This script is a proof-of-concept and provided as an example basis. While
these steps have
# been successfully tested, this script is for demonstration and illustration purposes.
Custom
# scripts are outside of the scope and supportability of Cisco. Cisco Technical
Assistance will
# not write, update, or troubleshoot custom external scripts at any time.
#
# <SCRIPT>
#
# $HOSTNAME & $HOSTNAME2 can be either the FQDN or IP address of the ESAs in cluster.
#
HOSTNAME= [IP/HOSTNAME ESA1]
HOSTNAME2= [IP/HOSTNAME ESA2]
#
# $MACHINENAME is the local name for ESA1.
#
MACHINENAME= [MACHINENAME AS LISTED FROM 'clusterconfig list']
#
# $USERNAME assumes that you have preconfigured SSH key from this host to your ESA.
# http://www.cisco.com/c/en/us/support/docs/security/email-security-appliance/
118305-technote-esa-00.html
#
USERNAME=admin
#
# $BACKUP_PATH is the directory location on the local system.
#
BACKUP_PATH= [/local/path/as/desired]
#
# Following will remove ESA1 from cluster in order to backup standalone config.
# "2> /dev/null" at the end of string will quiet any additional output of the
clustermode command.
#
echo "|=== PHASE 1 ===| REMOVING $MACHINENAME FROM CLUSTER"
ssh $USERNAME@$HOSTNAME "clustermode cluster; clusterconfig removemachine
$MACHINENAME" 2> /dev/null
#
# $FILENAME contains the actual script that calls the ESA, issues the 'saveconfig'
command.
# The rest of the string is the cleanup action to reflect only the <model>-
<serial number>-<timestamp>.xml.
#
echo "|=== PHASE 2 ===| BACKUP CONFIGURATION ON ESA"
FILENAME=`ssh -q $USERNAME@$HOSTNAME "saveconfig y 1" | grep xml | sed -e
's/\/configuration\///g' | sed 's/\.$//g' | tr -d "\""`
#
# The 'scp' command will secure copy the $FILENAME from the ESA to specified
backup path, as entered above.
# The -q option for 'scp' will disable the copy meter/progress bar.
#
echo "|=== PHASE 3 ===| COPY XML FROM ESA TO LOCAL"
scp -q $USERNAME@$HOSTNAME:/configuration/$FILENAME $BACKUP_PATH
#
# Following will re-add ESA1 back into cluster.
#
echo "|=== PHASE 4 ===| ADDING $MACHINENAME BACK TO CLUSTER"
ssh $USERNAME@$HOSTNAME "clusterconfig join $HOSTNAME2 admin ironport
Main_Group" 2> /dev/null
#
echo "|=== COMPLETE ===| $FILENAME successfully saved to $BACKUP_PATH"
#
# </SCRIPT>
#
[an error occurred while processing this directive]
Voici un examen des principales commandes intégrées dans le script :
- Retirez ESA1 du cluster :
ssh $USERNAME@$HOSTNAME "clustermode cluster; clusterconfig removemachine
$MACHINENAME" 2> /dev/null
[an error occurred while processing this directive]
- Télécharger le fichier de configuration autonome :
FILENAME=`ssh -q $USERNAME@$HOSTNAME "saveconfig y 1" | grep xml | sed -e 's/
\/configuration\///g' | sed 's/\.$//g' | tr -d "\""`
[an error occurred while processing this directive]
- Copiez le fichier XML de ESA1 vers l'hôte local :
scp -q $USERNAME@$HOSTNAME:/configuration/$FILENAME $BACKUP_PATH
[an error occurred while processing this directive]
- Réinsérez ESA1 dans le cluster.
ssh $USERNAME@$HOSTNAME "clusterconfig join $HOSTNAME2 admin ironport
Main_Group" 2> /dev/null
[an error occurred while processing this directive]
Un exemple complet du script en action doit aboutir à ceci :
my_host$ ./cluster_backup
|=== PHASE 1 ===| REMOVING ESA1.local FROM CLUSTER
Please wait, this operation may take a minute...
Machine ESA1.local removed from the cluster.
|=== PHASE 2 ===| BACKUP CONFIGURATION ON ESA
|=== PHASE 3 ===| COPY XML FROM ESA TO LOCAL
|=== PHASE 4 ===| ADDING ESA1.local BACK TO CLUSTER
Joining a cluster takes effect immediately, there is no need to commit.
|=== COMPLETE ===| C100V-0000E878109A-G091111-20150116T192955.xml successfully
saved to /Users/saved_esa_configurations/
[an error occurred while processing this directive]
Informations connexes