はじめに
このドキュメントでは、外部ホストが Cisco E メール セキュリティ アプライアンス(ESA)に対して更新を実行、取得するためのスクリプトの作成に関連する基本概念と情報を説明します。
注:この記事は概念実証であり、サンプルとして提供されています。これらの手順は正常にテストされていますが、この記事は主に説明と説明を目的としています。カスタムスクリプトは、シスコの範囲およびサポート対象外です。Cisco Technical Assistanceは、カスタム外部スクリプトの記述、更新、トラブルシューティングを行いません。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- OSスクリプトとタスクスケジューリング
- SSHキーペアの設定と手順
設定ファイルのバックアップを自動化またはスクリプト化するにはどうしますか。
CLIからsaveconfigまたはmailconfigを使用するか、GUIから関連するバックアップオプション(System Administration > Configuration File)を使用すると、コンフィギュレーションファイルが動的に生成されます。ESAにロードして適用できる効果的なバックアップを作成するには、パスワードの「マスク解除」が最適です。これにより、アプライアンスはローカル管理アカウントのパスワードのハッシュ形式をコンフィギュレーションファイルに配置できます。このため、デバイスからフラットな「実行コンフィギュレーション」ファイルを単純にコピーすることはできません。この方法を使用すると、最初にアプライアンスにアクセスし、現在の設定を動的に構築するコマンドを発行し、ユーザの介入なしにリモートでこのファイルのコピーを保存またはメール送信することができます。これが完了したら、このタスクを繰り返したり、定期的に実行するようにスケジュールしたりできます。
パスワードがマスクされていない構成ファイルを迅速かつ自動的にバックアップするには、次の手順に従います。
- 使用するSSHキーペアを生成し、パスワードを手動で入力しなくてもSSH経由でアプライアンスにアクセスできることを確認します。
- アプライアンスにログインするスクリプトを作成し、設定を保存して、コピー(またはメール送信)します。
注:同様のロジックは、VBやWindows用のバッチスクリプトなど、任意のOSスクリプト言語で適用できます。
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テーブル)ファイルによって制御されます。このファイルは、シェルコマンドが特定のスケジュールで定期的に実行されるように指定する構成ファイルです。crontabファイルは、cronデーモンに対するジョブやその他の命令のリストが保存されている場所に保存されます。
UNIX/Linuxのcron構成ファイルは、通常は次の形式に従います。
分(0 ~ 59)、時(0 ~ 23、0 =深夜)、日(1 ~ 31)、月(1 ~ 12)、曜日(0 ~ 6、0 =日曜日)、コマンド
したがって、このスクリプトを毎日午前2時に実行するエントリの例は、次のようになります。
00 02 * * * /home/jsmith/esa_backup
Windowsシステムからの設定ファイルのバックアップを自動化またはスクリプト化する方法
次の手順を使用すると、Windowsシステムからコンフィギュレーションファイルを定期的にバックアップできます。
- ターミナルエミュレータPuTTYをインストールします。
- mailconfigコマンドと有効なメールアドレスを使用して、「send_config」という名前のテキストファイルを作成します。 (分かりやすくするために、C:\の下に配置します)
mailconfig example@example.com
- 次のPuTTyコマンドを使用して、「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」テキストファイルで指定されたアドレスに送信されます。
注:この記事は概念実証であり、サンプルとして提供されています。これらの手順は正常にテストされていますが、この記事は主に説明と説明を目的としています。 カスタムスクリプトは、シスコの範囲およびサポート対象外です。 Cisco Technical Assistanceは、カスタム外部スクリプトの記述、更新、トラブルシューティングを行いません。
関連情報