简介
本文档介绍与为外部主机创建脚本以对思科邮件安全设备(ESA)执行和检索更新相关的基本概念和理解。
注意:本文是概念验证,并提供了示例基础。虽然这些步骤已经过成功测试,但本文主要用于演示和说明。自定义脚本不属于思科的范围和受支持范围。思科技术支持不会随时编写、更新或诊断自定义外部脚本。
先决条件
要求
Cisco 建议您了解以下主题:
- 操作系统脚本编写和任务调度
- 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 table)文件驱动,该文件是一个配置文件,指定了在给定计划上定期运行的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地址,并将密码更改为管理员帐户的实际密码。
安排任务定期运行(Windows)
使用“任务计划程序”或Windows中的类似计划工具,查找并添加“send_config_batch”到Windows的计划任务。
ESA配置文件将发送到指定的“send_config”文本文件中指定的地址。
注意:本文是概念验证,并提供了示例基础。虽然这些步骤已经过成功测试,但本文主要用于演示和说明。 自定义脚本不属于思科的范围和受支持范围。 思科技术支持不会随时编写、更新或诊断自定义外部脚本。
相关信息