簡介
本文檔介紹與為外部主機建立指令碼以對思科郵件安全裝置(ESA)執行和檢索更新相關的基本概念和理解。
註:本文為概念驗證,可作為示例基礎。雖然這些步驟已經過成功測試,但本文主要用於示範和說明目的。自定義指令碼不在思科的範圍和受支援範圍之內。思科技術支援不會隨時編寫、更新或診斷自定義外部指令碼。
必要條件
需求
思科建議您瞭解以下主題:
- 作業系統指令碼編寫和任務排程
- SSH金鑰對配置和過程
如何自動執行或編寫配置檔案備份指令碼?
當從CLI使用saveconfig或mailconfig,或者透過GUI(System Administration > Configuration File)使用關聯的備份選項時,將動態生成配置檔案。要擁有能夠載入並應用到ESA的有效備份,最好「解密」密碼。這允許裝置將本地管理帳戶的密碼的雜湊形式放置在配置檔案中。因此,我們不能簡單地從裝置複製平面「運行配置」檔案。此方法允許我們首先訪問裝置,發出命令以動態構建當前配置,然後將此檔案的副本儲存或郵寄到某個遠端位置,無需使用者干預。完成此任務後,我們便可重複或安排此任務定期執行。
若要快速且自動備份未遮罩密碼的組態檔:
- 生成要使用的SSH金鑰對,並驗證您可以透過SSH訪問裝置而無需手動輸入密碼。
- 建立指令碼以登入裝置、儲存配置並複製(或郵寄)。
注意:類似的邏輯可以套用到任何作業系統指令碼語言,例如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系統備份組態檔。
- 安裝終端模擬器PuTTY。
- 使用mailconfig命令和有效的電子郵件地址建立名為「send_config」的文本檔案。 (為簡單起見,請將其放在C:\下)
mailconfig example@example.com
- 使用以下PuTy命令建立一個名為「send_config_batch」的文本檔案。 (為簡單起見,請將其放在C:\下)
C:\putty.exe -ssh hostname -l admin -pw password -m C:\send_config.txt
exit
注意:請確保將ESA的主機名更改為FQDN或IP地址,並將admin帳戶密碼更改為實際密碼。
排定作業定期執行(Windows)
使用Task Scheduler或Windows中的類似計畫工具,查詢並增加「send_config_batch」到Windows的計畫任務。
ESA配置檔案將傳送到指定的「send_config」文本檔案中指定的地址。
註:本文為概念驗證,可作為示例基礎。雖然這些步驟已經過成功測試,但本文主要用於示範和說明目的。 自定義指令碼不在思科的範圍和受支援範圍之內。 思科技術支援不會隨時編寫、更新或診斷自定義外部指令碼。
相關資訊