Introducción
Este documento describe cómo utilizar comandos por lotes para guardar una configuración de un dispositivo en un clúster en el dispositivo de seguridad Cisco Email Security Appliance (ESA). Esto se puede utilizar en todas las versiones de AsyncOS para ESA.
Antes de la versión 8.5 de AsyncOS, los dispositivos agrupados no podían guardar una configuración utilizable para restaurar una configuración en un Cisco ESA. Para obtener una configuración utilizable del dispositivo, tenía que quitar el dispositivo del clúster y guardar la configuración como un dispositivo independiente.
Prerequisites
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 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.
Recopile esta información de los ESA en el clúster:
- Direcciones IP y/o nombre de host
- Nombre del clúster
- Nombre del grupo de clústeres (si procede)
Consulte la Guía de referencia de CLI para obtener su versión de AsyncOS para Email Security, ya que hay cambios por lotes de CLI que dependen de la revisión que ejecute su ESA.
Lea y comprenda estas notas técnicas:
Automatización o creación de scripts para la copia de seguridad de un archivo de configuración de un dispositivo en el clúster
Para las versiones de AsyncOS anteriores a la versión 8.5, cuando intenta guardar la configuración mientras está en el clúster con el comando saveconfig o mailconfig, el ESA genera esta advertencia:
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]
En la versión 8.5 y posteriores de AsyncOS, las configuraciones guardadas ahora contienen tanto la configuración de nivel de máquina como la configuración de clúster. Esto se trata en detalle en la versión 8.5 y posterior de la Guía del usuario. Consulte las guías del usuario final para obtener más información.
No es necesario realizar una copia de seguridad de la configuración de cada dispositivo de un clúster. Sin embargo, puede haber varios clústeres en una red, con varios grupos configurados para cada clúster. Es bastante difícil quitar todos los dispositivos del clúster y, a continuación, guardar la configuración y volver a unirse al clúster manualmente.
Estos comandos se pueden utilizar si inicia sesión en el ESA, quita el ESA del clúster, guarda o envía por correo la configuración y luego se vuelve a unir al clúster.
Para comenzar, es importante conocer el nombre de la máquina y el número de serie de los ESA en el clúster y el nombre del grupo. Esto se puede obtener si ingresa clusterconfig list en 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]
Para quitar el dispositivo del clúster, utilice el comando clusterconfig removemachine <nombre del dispositivo>:
(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]
Con el comando saveconfig, guarde la configuración en el dispositivo con contraseñas. Como se ha indicado, "los archivos con contraseñas enmascaradas no se pueden cargar mediante el comando loadconfig". Por lo tanto, asegúrese de ingresar N cuando se le solicite:
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]
Alternativamente, utilice mailconfig para enviar la configuración por correo electrónico a un destinatario de correo electrónico válido. Como se ha indicado, "los archivos con contraseñas enmascaradas no se pueden cargar mediante el comando loadconfig". Por lo tanto, asegúrese de ingresar N cuando se le solicite:
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]
Por último, utilice el comando clusterconfig batch para unir el dispositivo de nuevo al clúster:
clusterconfig join [--port=xx] <ip_of_remote_cluster> <admin_username>
<admin_password> <groupname>
[an error occurred while processing this directive]
Para continuar con el ejemplo anterior, esto se ejecutaría en este comando:
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]
Observará el cambio automático del símbolo del sistema al nombre de nivel de clúster, como se indicó en el ejemplo anterior como "Cluster ESA1_ESA2)".
Copias de seguridad avanzadas de archivos de configuración automatizados o con scripts
Desde un host externo (UNIX/Linux/OSX), puede utilizar los comandos anteriores para realizar un script del proceso.
A continuación se muestra un ejemplo de todo el proceso escrito en el script, con la suposición de que el clúster se ejecuta en Secure Shell (SSH), puerto 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]
A continuación se presenta un examen de los principales comandos incorporados en el script:
- Quite ESA1 del clúster:
ssh $USERNAME@$HOSTNAME "clustermode cluster; clusterconfig removemachine
$MACHINENAME" 2> /dev/null
[an error occurred while processing this directive]
- Descargar archivo de configuración independiente:
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]
- Copie el XML de ESA1 en el host local:
scp -q $USERNAME@$HOSTNAME:/configuration/$FILENAME $BACKUP_PATH
[an error occurred while processing this directive]
- Vuelva a colocar el ESA1 en el clúster.
ssh $USERNAME@$HOSTNAME "clusterconfig join $HOSTNAME2 admin ironport
Main_Group" 2> /dev/null
[an error occurred while processing this directive]
Un ejemplo completo de la secuencia de comandos en acción debería dar como resultado lo siguiente:
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]
Información Relacionada