目錄

簡介

必要條件

需求

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

使用saveconfig將配置儲存到指定主機

使用mailconfig將配置通過電子郵件傳送到電子郵件地址

安排任務定期運行(UNIX/Linux)

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

安排任務定期運行(Windows)

相關資訊

簡介

本文說明與為外部主機建立指令碼以針對思科郵件安全裝置(ESA)執行和檢索更新相關的基本概念和理解。

附註：本文是概念驗證，並提供了示例依據。雖然這些步驟已經過成功測試，但本文主要用於演示和說明目的。自定義指令碼超出思科的範圍和受支援範圍。思科技術支援不會隨時寫入、更新自定義外部指令碼或對其進行故障排除。

必要條件

需求

思科建議您瞭解以下主題：

- 作業系統指令碼編寫和任務排程

- SSH金鑰對配置和過程

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

當從CLI或通過GUI(系統管理>配置檔案)使用saveconfig或mailconfig時，會動態生成配置檔案。 要獲得能夠載入並應用到ESA的有效備份，最好「解密」密碼。這樣，裝置就可以在配置檔案中對本地管理帳戶設定雜湊形式的密碼。因此，我們不能簡單地從裝置複製平面「運行配置」檔案。此方法允許我們首先訪問裝置，發出命令以動態構建當前配置，並遠端儲存或郵寄此檔案的副本，無需任何使用者干預。完成此任務後，我們可以重複此任務或安排此任務定期執行。

要在未遮蔽密碼的情況下快速自動備份配置檔案，請執行以下操作：

1. 生成要使用的SSH金鑰對，並驗證您是否可以通過SSH訪問裝置而無需手動輸入密碼。

2. 建立指令碼以登入裝置、儲存配置並複製（或郵寄）。

附註：類似的邏輯可以應用於任何作業系統指令碼語言，例如VB或用於Windows的批處理指令碼。

使用saveconfig將配置儲存到指定主機

#! /bin/bash

#

# Simple script to save the ESA config, then copy locally via SCP.

#

# $HOSTNAME can be either FQDN or IP address.

HOSTNAME=[FQDN OR IP ADDRESS]

# $USERNAME assumes that you have preconfigured SSH key from this host to your ESA.

USERNAME=admin

FILENAME=`ssh $USERNAME@$HOSTNAME "saveconfig yes" | grep xml | sed -e 's/\/

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

scp $USERNAME@$HOSTNAME:/configuration/$FILENAME .

一旦執行指令碼，您應該會看到類似以下內容：

jsmith@linux_server:~$ ./esa_backup

C000V-564D1A718795ACFED603-1A77BAD60A5A-20140902T222913.xml 100% 158KB 157.9KB/

s 00:00

jsmith@linux_server:~$ ls -la

total 1196

drwx------ 10 jsmith jsmith 40960 Sep 2 22:29 .

drwxr-xr-x 13 root root 4096 Aug 13 22:22 ..

-rw-rw---- 1 jsmith jsmith 161642 Sep 2 22:29 C000V-564D1A718795ACFED603-

1A77BAD60A5A-20140902T222913.xml

運行命令ls -la將列出本地系統或主機上的目錄內容。應驗證檔名、時間戳和整體XML檔案大小。

使用mailconfig將配置通過電子郵件傳送到電子郵件地址

#! /bin/bash

#

# Simple script to email the ESA config to pre-specified email address.

#

# $HOSTNAME can be either FQDN or IP address.

HOSTNAME=[FQDN OR IP ADDRESS]

# $USERNAME assumes that you have preconfigured SSH key from this host to your ESA.

USERNAME=admin

# $MAILDEST is preconfigured email address

MAILDEST=backups@example.com

ssh $USERNAME@$HOSTNAME 'mailconfig $MAILDEST yes'

安排任務定期運行(UNIX/Linux)

使用cron(UNIX/Linux)定期啟動作業。cron由crontab（cron表）檔案驅動，該檔案指定按照給定計畫定期運行shell命令。crontab檔案儲存在儲存對cron守護程式的作業清單和其他指令的位置。

UNIX/Linux cron配置檔案通常採用以下格式：

分鐘(0-59)、小時（0-23,0 =午夜）、天(1-31)、月(1-12)、工作日（0-6,0 =星期日）、命令

因此，在每天凌晨2:00運行該指令碼的示例條目如下：

00 02 * * * /home/jsmith/esa_backup

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

執行以下步驟，可以定期從Windows系統備份配置檔案。

1. 安裝終端模擬器PuTTY 。

2. 使用mailconfig命令和有效的電子郵件地址建立名為「send_config」的文本檔案。 (為簡單起見，請將其放在C:\下)

mailconfig example@example.com

3. 使用以下PuTy命令建立名為「send_config_batch」的文本檔案。 (為簡單起見，請將其放在C:\下)

C:\putty.exe -ssh hostname -l admin -pw password -m C:\send_config.txt

exit

附註：請務必將主機名更改為ESA的FQDN或IP地址，並將密碼更改為管理員帳戶的實際密碼。

安排任務定期運行(Windows)

使用「任務計畫程式」或Windows中的類似計畫工具，查詢並新增「send_config_batch」到Windows的計畫任務。

ESA配置檔案將傳送到指定的「send_config」文本檔案中指定的地址。

附註：本文是概念驗證，並提供了示例依據。雖然這些步驟已經過成功測試，但本文主要用於演示和說明目的。自定義指令碼超出思科的範圍和受支援範圍。思科技術支援人員不會隨時編寫、更新自定義外部指令碼或對其進行故障排除。

相關資訊

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

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

- 技術支援與文件 - Cisco Systems