簡介
本文檔介紹了通過指令碼建立來儲存思科安全郵件和Web管理器(SMA)配置的基本概念。
必要條件
需求
註:本文為概念驗證,並提供了示例依據。雖然這些步驟已經過成功測試,但本文主要用於演示和說明目的。自定義指令碼超出思科的範圍和受支援範圍。思科技術支援中心無法隨時編寫、更新自定義外部指令碼或對其進行故障排除。 在嘗試和構建任何指令碼之前,請確保您在構建最終指令碼時具有指令碼編寫知識。
思科建議您瞭解以下主題:
手動配置檔案備份
可使用命令手動儲存配置備份 saveconfig
或 mailconfig
通過CLI或通過 SMA GUI > System Administration > Configuration File
.
掩碼密碼不允許裝置載入配置,因為裝置無法在配置檔案中對本地管理帳戶的密碼進行雜湊處理。
要獲得能夠載入並應用於SMA的有效備份,最好對密碼進行加密。
然後,會收到通知,說明檔案已儲存在各自電腦上的配置中。
sma01.local> saveconfig
Choose the passphrase option:
1. Mask passphrases (Files with masked passphrases cannot be loaded with loadconfig command)
2. Encrypt passphrases
[1]> 2
The file M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
has been saved in the configuration directory on machine "sma01.local".
如何自動執行配置檔案備份或為其編寫指令碼?
理想的結果是訪問裝置,發出命令以生成當前配置,並遠端儲存或傳送郵件副本,而無需任何使用者干預。
要高效地完成此任務,您必須:
- 生成SSH金鑰對,無需手動輸入密碼。
- 建立用於登入裝置的指令碼,儲存配置,並將其遠端或郵件傳送到。
注意:類似的邏輯可以應用於任何作業系統指令碼語言,如VB或用於Windows的批處理指令碼。
生成SSH金鑰對
為此,需要建立私有/公有RSA金鑰。可以使用以下工具完成此操作:
- 用於Windows的PuTTYgen生成SSH金鑰對。
- Unix/Linux/OS X終端/CLI上的「ssh-keygen」:
ssh-keygen -b 2048 -t rsa -f ~/.ssh/
用於將配置儲存到指定主機的指令碼
以下是可用於以下操作的指令碼示例:
- 通過SSH登入SMA。
- 儲存加密密碼的組態。
- 使用安全複製協定(SCP)協定在遠端主機上傳送輸出。
指令碼包含變數,必須根據業務需求對其進行修改。
- 主機名是SMA的完全限定域名(FQDN)或IP地址。
- USERNAME是SMA上預配置的使用者名稱帳戶。
- BACKUP_PATH是必須儲存配置的所需目錄。
注意:在任何構建之前,請確保您具備指令碼編寫知識並很好地瞭解這些變數。
建立指令碼後,使其可執行,然後運行指令碼。
chmod +x sma_backup.sh
./sma_backup.sh
#!/usr/bin/env bash
#
# Simple script to save the SMA config, then copy locally via SCP.
#
# $HOSTNAME can be either FQDN or IP address.
HOSTNAME= [FQDN/IP ADDRESS of SMA]
#
# $USERNAME assumes that you have preconfigured SSH key from this host to your SMA.
USERNAME=admin
#
# $BACKUP_PATH is the directory location on the local system.
BACKUP_PATH= [/local/path/as/desired]
#
# $FILENAME contains the actual script that calls the SMA and issues the 'saveconfig 2' command.
# The rest of the string removes the unnecessary part and isolates the name of the configuration file <model>-<serial number>-<timestamp>.xml.
#
FILENAME=$(ssh -q $USERNAME@$HOSTNAME 'saveconfig 2' | awk '/xml/ {print $3}')
#
# Notification that new generated config file saved locally.
echo
echo "Processing SMA config ${FILENAME}"
#
# SCP saves the configuration to the respective folder that has been defined under "BACKUP_PATH"
scp -q ${USERNAME}@${HOSTNAME}:/configuration/${FILENAME} ${BACKUP_PATH}
#
# Notification that configuration saved properly on the desired folder.
echo "Saving ${FILENAME} under path ${BACKUP_PATH}"
#
# </SCRIPT>
#
指令碼的輸出必須採用以下格式:
etrianti@linux:~$ ./sma_backup.sh
Processing SMA config M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
Saving M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml under path /home/etrianti/
安排任務定期運行(UNIX/Linux)
使用cron(UNIX/Linux)定期啟動作業。 Cron由crontab(cron表)檔案驅動,該檔案是一個配置檔案,指定按照給定計畫定期運行外殼命令。crontab檔案儲存在儲存對cron守護程式的作業清單和其他指令的位置。
UNIX/Linux cron配置檔案通常採用以下格式:
分鐘(0-59)、小時(0-23,0 =午夜)、天(1-31)、月(1-12)、工作日(0-6,0 =星期日)、命令
每天凌晨1:00運行該指令碼的良好示例條目如下所示:
00 01 * * * /home/etrianti/sma_backup.sh
疑難排解
- 使用
cli_logs
要檢查指令碼是否正確執行,並評估已執行的操作,請執行以下操作:
User
login
定義使用者能夠成功登入SMA。
executed batch command: 'saveconfig 2'
顯示已在指令碼上執行的命令以儲存配置。
scp -f /configuration/
定義從SMA提取的配置
成功呼叫指令碼的示例:
sma01.local> tail cli_logs
Press Ctrl-C to stop.
Thu Apr 20 12:25:33 2023 Info: PID 61539: User admin login from 10.61.94.7 on 172.16.200.30
Thu Apr 20 12:25:34 2023 Info: PID 61539: User admin executed batch command: 'saveconfig 2'
Thu Apr 20 12:25:39 2023 Info: PID 61582: User admin login from 10.61.94.7 on 172.16.200.30
Thu Apr 20 12:25:39 2023 Info: PID 61582: User admin executed batch command: 'scp -f /configuration/M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml'
- Add命令
set -x
在指令碼的頂部,啟用bash的調試模式並確認指令碼正常運行。指令 set
允許您在Bash指令碼中啟用某些標誌,以便指令碼具有某些行為和特徵。
注意:SMA的「歡迎」消息配置在 CLI > adminaccessconfig for appliance administration login
,不允許指令碼運行SCP。 在這種情況下,必須刪除歡迎消息,但標語消息沒有問題。
相關資訊