Einleitung
In diesem Dokument wird die Verwendung von Batch-Befehlen zum Speichern einer Konfiguration von einer Appliance in einem Cluster auf der Cisco Email Security Appliance (ESA) beschrieben. Dies kann auf allen Versionen von AsyncOS für ESA verwendet werden.
Vor der AsyncOS-Version 8.5 konnten in den geclusterten Appliances keine verwendbare Konfiguration gespeichert werden, die zur Wiederherstellung einer Konfiguration auf einer Cisco ESA verwendet werden konnte. Um eine verwendbare Konfiguration von der Appliance zu erhalten, mussten Sie die Appliance aus dem Cluster entfernen und die Konfiguration als Standalone-Appliance speichern.
Voraussetzungen
Hinweis: Dieser Artikel dient als Basis für eine Machbarkeitsstudie. Obwohl diese Schritte erfolgreich getestet wurden, ist dieser Artikel in erster Linie für Demonstrations- und Illustrationszwecke bestimmt. Benutzerdefinierte Skripte sind nicht Bestandteil des Leistungsumfangs und der Unterstützung von Cisco. Das Cisco Technical Assistance Center erstellt, aktualisiert oder behebt keine benutzerdefinierten externen Skripts zu einem beliebigen Zeitpunkt. Bevor Sie versuchen, Skripte zu erstellen, stellen Sie sicher, dass Sie Skriptkenntnisse haben, wenn Sie das fertige Skript erstellen.
Sammeln Sie diese Informationen von den ESAs im Cluster:
- IP-Adressen und/oder Hostname
- Cluster-Name
- Cluster-Gruppenname (falls zutreffend)
Informationen zu Ihrer Version von AsyncOS für E-Mail Security finden Sie im CLI-Referenzhandbuch, da es CLI-Batchänderungen gibt, die von der Version Ihrer ESA abhängen.
Lesen und verstehen Sie diese TechNotes:
Automatisieren oder Skripterstellung für eine Konfigurationsdatei-Sicherung einer Appliance im Cluster
Wenn Sie bei AsyncOS-Versionen vor Version 8.5 versuchen, die Konfiguration im Cluster mit dem Befehl saveconfig oder mailconfig zu speichern, generiert die ESA folgende Warnung:
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]
In AsyncOS Version 8.5 und höher enthalten gespeicherte Konfigurationen jetzt sowohl die Konfiguration auf Computerebene als auch die Cluster-Konfiguration. Dies wird ausführlich im Benutzerhandbuch für Version 8.5 und höher beschrieben. Ausführliche Informationen finden Sie in den Endbenutzer-Handbüchern.
Es ist nicht erforderlich, die Konfiguration für jede Appliance in einem Cluster zu sichern. In einem Netzwerk können jedoch mehrere Cluster vorhanden sein, wobei für jeden Cluster mehrere Gruppen konfiguriert sein können. Es ist sehr schwierig, alle Appliances aus dem Cluster zu entfernen, die Konfiguration zu speichern und manuell erneut dem Cluster beizutreten.
Diese Befehle können verwendet werden, wenn Sie sich bei der ESA anmelden, die ESA aus dem Cluster entfernen, die Konfiguration speichern oder per E-Mail versenden und dann wieder dem Cluster beitreten.
Zu Beginn ist es wichtig, den Computernamen und die Seriennummer der ESAs im Cluster und den Gruppennamen zu kennen. Dies ist möglich, wenn Sie clusterconfig list in CLI eingeben:
(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]
Um die Appliance aus dem Cluster zu entfernen, verwenden Sie den Befehl clusterconfig removemachine <Appliance-Name>:
(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]
Speichern Sie die Konfiguration mit dem Befehl saveconfig in der Appliance mit Kennwörtern. Wie bereits erwähnt, können "Dateien mit maskierten Passwörtern nicht mit dem Befehl loadconfig geladen werden." Geben Sie bei entsprechender Aufforderung also N ein:
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]
Alternativ können Sie mailconfig verwenden, um die Konfiguration per E-Mail an einen gültigen E-Mail-Empfänger zu senden. Wie bereits erwähnt, können "Dateien mit maskierten Passwörtern nicht mit dem Befehl loadconfig geladen werden." Geben Sie bei entsprechender Aufforderung also N ein:
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]
Verwenden Sie abschließend den Befehl clusterconfig batch, um die Appliance wieder in den Cluster einzubinden:
clusterconfig join [--port=xx] <ip_of_remote_cluster> <admin_username>
<admin_password> <groupname>
[an error occurred while processing this directive]
Um mit dem vorherigen Beispiel fortzufahren, wird dieser Befehl wie folgt ausgeführt:
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]
Sie werden feststellen, dass die Eingabeaufforderung automatisch in den Namen auf Cluster-Ebene geändert wird, wie im vorherigen Beispiel als "Cluster ESA1_ESA2)" angegeben.
Erweiterte automatisierte oder skriptbasierte Backups von Konfigurationsdateien
Von einem externen Host (UNIX/Linux/OSX) aus können Sie die vorherigen Befehle verwenden, um den Prozess als Skript auszuführen.
Im Folgenden finden Sie ein Beispiel für den gesamten Prozess, der in das Skript geschrieben wurde. Dabei wird davon ausgegangen, dass der Cluster über Secure Shell (SSH), Port 22, ausgeführt wird:
#! /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]
Im Folgenden werden die im Skript eingebetteten Hauptbefehle untersucht:
- Entfernen Sie ESA1 aus dem Cluster:
ssh $USERNAME@$HOSTNAME "clustermode cluster; clusterconfig removemachine
$MACHINENAME" 2> /dev/null
[an error occurred while processing this directive]
- Eigenständige Konfigurationsdatei herunterladen:
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]
- Kopieren Sie die XML aus ESA1 auf den lokalen Host:
scp -q $USERNAME@$HOSTNAME:/configuration/$FILENAME $BACKUP_PATH
[an error occurred while processing this directive]
- Setzen Sie die ESA1 wieder in den Cluster ein.
ssh $USERNAME@$HOSTNAME "clusterconfig join $HOSTNAME2 admin ironport
Main_Group" 2> /dev/null
[an error occurred while processing this directive]
Ein vollständiges Beispiel für das Skript in Aktion sollte folgende Ergebnisse liefern:
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]
Zugehörige Informationen