目錄

簡介

必要條件

自動執行或編寫集群中裝置的配置檔案備份

高級自動或指令碼化配置檔案備份

相關資訊

簡介

本文說明如何使用批處理命令將配置從思科郵件安全裝置(ESA)群集中的裝置儲存。 這可以在所有版本的AsyncOS for ESA上使用。

在AsyncOS版本8.5之前，集群裝置無法儲存可用配置，以便用於將配置還原到Cisco ESA。為了從裝置獲取可用配置，您必須從群集中移除裝置並將配置儲存為獨立裝置。

必要條件

附註：本文是概念驗證，並提供了示例依據。雖然這些步驟已經過成功測試，但本文主要用於演示和說明目的。自定義指令碼超出思科的範圍和受支援範圍。思科技術支援中心不會隨時編寫、更新自定義外部指令碼或對其進行故障排除。 在嘗試和構建任何指令碼之前，請確保您在構建最終指令碼時具有指令碼編寫知識。

從群集中的ESA收集以下資訊：

- IP地址和/或主機名

- 群集名稱

- 群集組名稱（如果適用）

有關適用於郵件安全的AsyncOS版本，請參閱CLI參考指南，因為CLI批次更改取決於ESA運行的修訂版。

閱讀並理解以下TechNotes:

- 如何自動執行配置檔案備份或為其編寫指令碼？

- 如何配置SSH公鑰身份驗證，以便在不使用密碼的情況下登入ESA

自動執行或編寫集群中裝置的配置檔案備份

對於低於8.5版的AsyncOS版本，當您嘗試使用saveconfig或mailconfig命令在集群中儲存配置時，ESA會生成以下警告：

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.

在AsyncOS版本8.5及更高版本中，儲存的配置現在包含機器級配置和群集配置。《8.5版及更高版本使用手冊》對此進行了詳細介紹。請參閱一般使用者指南以瞭解全部詳細資訊。

無需備份集群中每台裝置的配置。但是，網路中可以有多個集群，每個集群配置多個組。從群集中移除每台裝置，然後儲存配置並重新手動重新加入集群是非常困難的。

如果您登入到ESA，從群集中刪除ESA，儲存或傳送配置，然後重新加入集群，則可以使用這些命令。

要開始操作，必須知道群集中ESA的電腦名稱和序列號以及組名稱。如果您在CLI上輸入clusterconfig list，就可以獲得此資訊：

(Cluster ESA1_ESA2)> clusterconfig list

Cluster esaA_esaB

=====================

Group Main_Group:

Machine ESA1.local (Serial #: 0000E878109A-G091111)

Machine ESA2.local (Serial #: 0000E878525D-9091111)

若要從群集中刪除裝置，請使用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.

使用saveconfig命令，使用密碼將配置儲存到裝置上。如前所述，「不能使用loadconfig命令載入帶有遮蔽密碼的檔案。」 因此，當系統提示時，請務必輸入N:

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.

或者，使用mailconfig以將配置通過電子郵件傳送給有效的電子郵件收件人。如前所述，「不能使用loadconfig命令載入帶有遮蔽密碼的檔案。」 因此，當系統提示時，請務必輸入N:

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.

最後，使用clusterconfig batch命令將裝置重新加入群集：

clusterconfig join [--port=xx] <ip_of_remote_cluster> <admin_username>

<admin_password> <groupname>

若要繼續上一個範例，將在以下命令中執行此動作：

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)>

您會注意到命令提示符自動更改為集群級別名稱，如前面的示例中提到的「集群ESA1_ESA2)」。

高級自動或指令碼化配置檔案備份

在外部主機(UNIX/Linux/OSX)上，您可以使用前面的命令對進程編寫指令碼。

以下是寫入指令碼的整個過程的示例，其中假定群集通過安全外殼(SSH)埠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>

#

以下是指令碼中嵌入的主要命令的檢查：

- 從群集中刪除ESA1:

ssh $USERNAME@$HOSTNAME "clustermode cluster; clusterconfig removemachine

$MACHINENAME" 2> /dev/null

- 下載獨立配置檔案：

FILENAME=`ssh -q $USERNAME@$HOSTNAME "saveconfig y 1" | grep xml | sed -e 's/

\/configuration\///g' | sed 's/\.$//g' | tr -d "\""`

- 將XML從ESA1複製到本地主機：

scp -q $USERNAME@$HOSTNAME:/configuration/$FILENAME $BACKUP_PATH

- 將ESA1放回集群中。

ssh $USERNAME@$HOSTNAME "clusterconfig join $HOSTNAME2 admin ironport

Main_Group" 2> /dev/null

操作中的指令碼的完整示例應會產生以下結果：

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/

相關資訊

- Cisco Email Security Appliance — 最終使用手冊

- 技術支援與文件 - Cisco Systems