Introdução
Este documento descreve como usar comandos de lote para salvar uma configuração de um dispositivo em cluster no Cisco Email Security Appliance (ESA). Isso pode ser usado em todas as versões do AsyncOS para ESA.
Antes do AsyncOS versão 8.5, os dispositivos em cluster não podiam salvar uma configuração utilizável a ser usada para restaurar uma configuração em um Cisco ESA. Para obter uma configuração utilizável do equipamento, você teve que remover o equipamento do cluster e salvar a configuração como um equipamento autônomo.
Pré-requisitos
Observação: este artigo é uma prova de conceito e fornecido como base de exemplo. Embora essas etapas tenham sido testadas com êxito, este artigo destina-se principalmente para fins de demonstração e ilustração. Os scripts personalizados estão fora do escopo e da capacidade de suporte da Cisco. O Cisco Technical Assistance Center não gravará, atualizará ou solucionará problemas de scripts externos personalizados a qualquer momento. Antes de tentar e construir qualquer script, certifique-se de ter conhecimento de script ao construir o script final.
Colete essas informações dos ESAs no cluster:
- Endereços IP e/ou nome de host
- Nome do cluster
- Nome do grupo de clusters (se aplicável)
Consulte o Guia de referência CLI para obter a sua versão do AsyncOS para segurança de e-mail, pois há alterações em lote de CLI que dependem da revisão executada pelo ESA.
Leia e compreenda estas notas técnicas:
Automatizar ou criar scripts de um arquivo de configuração de backup de um dispositivo em cluster
Para versões do AsyncOS anteriores à versão 8.5, quando você tenta salvar a configuração no cluster com o comando saveconfig ou mailconfig, o ESA gera este aviso:
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]
No AsyncOS versão 8.5 e posterior, as configurações salvas agora contêm a configuração em nível de máquina e a configuração de cluster. Isso é abordado em detalhes no Guia do usuário da versão 8.5 e posterior. Consulte os Guias do Usuário Final para obter detalhes completos.
Não há necessidade de fazer backup da configuração de cada dispositivo em um cluster. No entanto, pode haver vários clusters em uma rede, com vários grupos configurados para cada cluster. É muito difícil remover todos os dispositivos do cluster e depois salvar a configuração e reingressar no cluster manualmente.
Esses comandos podem ser usados se você fizer login no ESA, remover o ESA do cluster, salvar ou enviar a configuração por e-mail e depois reingressar no cluster.
Para começar, é importante saber o nome da máquina e o número de série dos ESAs no cluster e o nome do grupo. Isso pode ser obtido se você digitar clusterconfig list na 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 remover o equipamento do cluster, use o comando clusterconfig removemachine <nome do equipamento>:
(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]
Com o comando saveconfig, salve a configuração no equipamento com senhas. Como observado, "Arquivos com senhas mascaradas não podem ser carregados usando o comando loadconfig." Portanto, digite N quando solicitado:
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]
Como alternativa, use mailconfig para enviar a configuração por e-mail a um destinatário de e-mail válido. Como observado, "Arquivos com senhas mascaradas não podem ser carregados usando o comando loadconfig." Portanto, digite N quando solicitado:
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]
Finalmente, use o comando clusterconfig batch para unir o dispositivo de volta ao cluster:
clusterconfig join [--port=xx] <ip_of_remote_cluster> <admin_username>
<admin_password> <groupname>
[an error occurred while processing this directive]
Para continuar com o exemplo anterior, isso seria executado neste 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]
Você observará a alteração automática do prompt de comando para o nome no nível do cluster, conforme observado no exemplo anterior como "Cluster ESA1_ESA2)".
Backups avançados de arquivos de configuração automatizados ou com script
A partir de um host externo (UNIX/Linux/OSX), você pode usar os comandos anteriores para fazer o script do processo.
Aqui está um exemplo de todo o processo escrito em script, com a suposição de que o cluster é executado sobre Secure Shell (SSH), porta 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]
Aqui está um exame dos principais comandos incorporados no script:
- Remova o ESA1 do cluster:
ssh $USERNAME@$HOSTNAME "clustermode cluster; clusterconfig removemachine
$MACHINENAME" 2> /dev/null
[an error occurred while processing this directive]
- Fazer download do arquivo de configuração autônomo:
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 o XML do ESA1 para o host local:
scp -q $USERNAME@$HOSTNAME:/configuration/$FILENAME $BACKUP_PATH
[an error occurred while processing this directive]
- Coloque o ESA1 de volta no cluster.
ssh $USERNAME@$HOSTNAME "clusterconfig join $HOSTNAME2 admin ironport
Main_Group" 2> /dev/null
[an error occurred while processing this directive]
Um exemplo completo do script em ação deve resultar em:
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]
Informações Relacionadas