Cisco ASA 5500 シリーズ コンフィギュレーション ガイド(CLI8.2 を使用)
ソフトウェアとコンフィギュレーションの管理
ソフトウェアとコンフィギュレーションの管理
発行日;2012/02/01 | 英語版ドキュメント(2011/09/19 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 21MB) | フィードバック

目次

ソフトウェアとコンフィギュレーションの管理

フラッシュ メモリ内のファイルの表示

フラッシュ メモリからのファイルの取得

フラッシュ メモリへのソフトウェアまたはコンフィギュレーション ファイルのダウンロード

特定の場所へのファイルのダウンロード

スタートアップ コンフィギュレーションまたは実行コンフィギュレーションへのファイルのダウンロード

ブートするアプリケーション イメージと ASDM イメージの設定

スタートアップ コンフィギュレーションとしてブートするファイルの設定

フェールオーバー ペアのゼロ ダウンタイム アップグレードの実行

Active/Standby フェールオーバー コンフィギュレーションのアップグレード

Active/Active フェールオーバー コンフィギュレーションのアップグレード

コンフィギュレーション ファイルのバックアップ

シングルモード コンフィギュレーションまたはマルチモード システム コンフィギュレーションのバックアップ

フラッシュ メモリ内のコンテキスト コンフィギュレーションのバックアップ

コンテキスト内でのコンテキスト コンフィギュレーションのバックアップ

端末の表示からのコンフィギュレーションのコピー

export および import コマンドを使用した追加ファイルのバックアップ

スクリプトを使用したファイルのバックアップおよび復元

前提条件

スクリプトの実行

サンプル スクリプト

Auto Update サポートの設定

Auto Update サーバとの通信の設定

Auto Update サーバとしてのクライアント アップデートの設定

Auto Update ステータスの表示

ソフトウェアとコンフィギュレーションの管理

この章では、 適応型セキュリティ アプライアンス のソフトウェアとコンフィギュレーションの管理について説明します。この章では、次の項目について説明します。

「フラッシュ メモリ内のファイルの表示」

「フラッシュ メモリからのファイルの取得」

「フラッシュ メモリへのソフトウェアまたはコンフィギュレーション ファイルのダウンロード」

「ブートするアプリケーション イメージと ASDM イメージの設定」

「スタートアップ コンフィギュレーションとしてブートするファイルの設定」

「フェールオーバー ペアのゼロ ダウンタイム アップグレードの実行」

「コンフィギュレーション ファイルのバックアップ」

「Auto Update サポートの設定」

フラッシュ メモリ内のファイルの表示

フラッシュ メモリ内のファイルを表示して、そのファイルに関する情報を参照できます。

フラッシュ メモリ内のファイルを表示するには、次のコマンドを入力します。

hostname# dir [flash: | disk0: | disk1:]
 

flash: キーワードは、PIX 500 シリーズ セキュリティ アプライアンスの内部フラッシュ メモリを表します。ASA 5500 シリーズ適応型セキュリティ アプライアンスの内部フラッシュ メモリの場合は、 flash: または disk0: を使用できます。 disk1: キーワードは、ASA の外部フラッシュ メモリを表します。内部フラッシュ メモリがデフォルトです。

次に例を示します。

hostname# dir
 
Directory of disk0:/
500 -rw- 4958208 22:56:20 Nov 29 2004 cdisk.bin
2513 -rw- 4634 19:32:48 Sep 17 2004 first-backup
2788 -rw- 21601 20:51:46 Nov 23 2004 backup.cfg
2927 -rw- 8670632 20:42:48 Dec 08 2004 asdmfile.bin
 

特定のファイルに関する拡張情報を表示するには、次のコマンドを入力します。

hostname# show file information [path:/]filename
 

デフォルト パスは、内部フラッシュ メモリ(flash:/ または disk0:/)のルート ディレクトリです。

次に例を示します。

hostname# show file information cdisk.bin
 
disk0:/cdisk.bin:
type is image (XXX) []
file size is 4976640 bytes version 7.0(1)
 

示されているファイル サイズは例にすぎません。

フラッシュ メモリからのファイルの取得

次の URL との HTTPS 接続を使用すると、フラッシュ ディスクからファイルを直接取得できます。この URL には、ASA IP アドレスとファイル名の値を指定します。

https://ASA_IP/disk0/filename
 

このオプションは、次のような作業を行う必要がある場合に便利です。

ASA バイナリ イメージを(バックアップとして)コピーする。

WebVPN キャプチャ ファイルをコピーする。

その他のフラッシュ ファイルをセキュリティでセキュア デスクトップにコピーする。

フラッシュ メモリへのソフトウェアまたはコンフィギュレーション ファイルのダウンロード

アプリケーション イメージ、ASDM イメージ、コンフィギュレーション ファイル、およびその他のファイルを、TFTP、FTP、HTTP、または HTTPS サーバから内部フラッシュ メモリに、あるいは ASA 5500 シリーズ適応型セキュリティ アプライアンスの場合は外部フラッシュ メモリにダウンロードできます。


) 文字の大文字と小文字が異なっていても、同じ名前の 2 つのファイルをフラッシュ メモリの同じディレクトリに保存できません。たとえば、config.cfg というファイルが存在する場所に Config.cfg というファイルのダウンロードを試みると、%Error opening disk0:/Config.cfg (File exists) というエラーが表示されます。


この項は、次の内容で構成されています。

「特定の場所へのファイルのダウンロード」

「スタートアップ コンフィギュレーションまたは実行コンフィギュレーションへのファイルのダウンロード」

特定の場所へのファイルのダウンロード

この項では、フラッシュ メモリにダウンロードする必要があるアプリケーション イメージ、ASDM ソフトウェア、コンフィギュレーション ファイル、またはその他のファイルをダウンロードする方法について説明します。実行コンフィギュレーションまたはスタートアップ コンフィギュレーションにダウンロードする場合は、「スタートアップ コンフィギュレーションまたは実行コンフィギュレーションへのファイルのダウンロード」を参照してください。

Cisco SSL VPN クライアントをインストールする方法の詳細については、『 Cisco AnyConnect VPN Client Administrator Guide 』を参照してください。セキュリティ アプライアンスに Cisco Secure Desktop をインストールする方法の詳細については、『 Cisco Secure Desktop Configuration Guide for Cisco ASA 5500 Series Administrators 』を参照してください。

複数のイメージがインストールされている場合、または外部フラッシュ メモリにイメージがインストールされている場合に、特定のアプリケーション イメージまたは ASDM イメージを使用するように適応型セキュリティ アプライアンスを設定する場合は、「ブートするアプリケーション イメージと ASDM イメージの設定」を参照してください。


) ASDM バージョン 6.0(1)を問題なくフラッシュ メモリにコピーするには、バージョン 8.0 が実行されている必要があります。


スタートアップ コンフィギュレーションとして特定のコンフィギュレーションを使用するように適応型セキュリティ アプライアンスを設定する場合は、「スタートアップ コンフィギュレーションとしてブートするファイルの設定」を参照してください。

マルチコンテキスト モードの場合は、システム実行スペース内にいる必要があります。

ファイルをフラッシュ メモリにダウンロードするには、各ダウンロード サーバ タイプ用の次のコマンドを参照してください。

TFTP サーバからコピーするには、次のコマンドを入力します。

hostname# copy tftp://server[/path]/filename {flash:/ | disk0:/ | disk1:/}[path/]filename
 

flash:/ キーワードは、PIX 500 シリーズ セキュリティ アプライアンスの内部フラッシュ メモリを表します。ASA 5500 シリーズ適応型セキュリティ アプライアンスの内部フラッシュ メモリの場合は、 flash:/ または disk0:/ を使用できます。 disk1:/ キーワードは、ASA の外部フラッシュ メモリを表します。

FTP サーバからコピーするには、次のコマンドを入力します。

hostname# copy ftp://[user[:password]@]server[/path]/filename {flash:/ | disk0:/ | disk1:/}[path/]filename
 

HTTP または HTTPS サーバからコピーするには、次のコマンドを入力します。

hostname# copy http[s]://[user[:password]@]server[:port][/path]/filename {flash:/ | disk0:/ | disk1:/}[path/]filename
 

セキュア コピーを使用するには、まず SSH をイネーブルにしてから、次のコマンドを入力します。

hostname# ssh scopy enable
 

その後、Linux クライアントから次のコマンドを入力します。

scp -v -pw password filename username@asa_address
 

-v は冗長を表します。 -pw が指定されていない場合は、パスワードの入力を求めるプロンプトが表示されます。

スタートアップ コンフィギュレーションまたは実行コンフィギュレーションへのファイルのダウンロード

テキスト ファイルは、TFTP、FTP、または HTTP(S)サーバから、またはフラッシュ メモリから、実行コンフィギュレーションまたはスタートアップ コンフィギュレーションにダウンロードできます。

スタートアップ コンフィギュレーションまたは実行コンフィギュレーションにファイルをコピーするには、適切なダウンロード サーバに対して次のコマンドのいずれかを入力します。


) コンフィギュレーションを実行コンフィギュレーションにコピーするには、2 つのコンフィギュレーションをマージします。マージによって、新しいコンフィギュレーションから実行コンフィギュレーションに新しいコマンドが追加されます。コンフィギュレーションが同じ場合、変更は発生しません。コマンドが衝突する場合、またはコマンドがコンテキストの実行に影響を与える場合、マージの結果はコマンドによって異なります。エラーが発生することも、予期できない結果が生じることもあります。


TFTP サーバからコピーするには、次のコマンドを入力します。

hostname# copy tftp://server[/path]/filename {startup-config | running-config}
 

FTP サーバからコピーするには、次のコマンドを入力します。

hostname# copy ftp://[user[:password]@]server[/path]/filename {startup-config | running-config}
 

HTTP または HTTPS サーバからコピーするには、次のコマンドを入力します。

hostname# copy http[s]://[user[:password]@]server[:port][/path]/filename {startup-config | running-config}
 

フラッシュ メモリからコピーするには、次のコマンドを入力します。

hostname# copy {flash:/ | disk0:/ | disk1:/}[path/]filename {startup-config | running-config}
 

たとえば、TFTP サーバからコンフィギュレーションをコピーするには、次のコマンドを入力します。

hostname# copy tftp://209.165.200.226/configs/startup.cfg startup-config
 

FTP サーバからコンフィギュレーションをコピーするには、次のコマンドを入力します。

hostname# copy ftp://admin:letmein@209.165.200.227/configs/startup.cfg startup-config
 

HTTP サーバからコンフィギュレーションをコピーするには、次のコマンドを入力します。

hostname# copy http://209.165.200.228/configs/startup.cfg startup-config
 

ブートするアプリケーション イメージと ASDM イメージの設定

デフォルトでは、適応型セキュリティ アプライアンスは内部フラッシュ メモリ内で見つけた最初のアプリケーション イメージをブートします。また、内部フラッシュ メモリ内で見つけた最初の ASDM イメージをブートするか、内部フラッシュ メモリ内にない場合は外部フラッシュ メモリ内の ASDM イメージをブートします。複数のイメージがある場合は、ブートするイメージを指定する必要があります。ASDM イメージの場合は、ブートするイメージを指定しないと、インストールされているイメージが 1 つしかなくても、適応型セキュリティ アプライアンスは asdm image コマンドを実行コンフィギュレーションに挿入します。Auto Update(設定されている場合)の問題を避けるため、また起動時ごとのイメージ検索を回避するため、ブートする ASDM イメージをスタートアップ コンフィギュレーションで指定する必要があります。

ブートするアプリケーション イメージを設定するには、次のコマンドを入力します。

hostname(config)# boot system url
 

ここで、 url は次のいずれかです。

{flash:/ | disk0:/ | disk1:/}[path/]filename

flash:/ キーワードは、PIX 500 シリーズ セキュリティ アプライアンスの内部フラッシュ メモリを表します。ASA 5500 シリーズ適応型セキュリティ アプライアンスの内部フラッシュ メモリの場合は、 flash:/ または disk0:/ を使用できます。 disk1:/ キーワードは、ASA の外部フラッシュ メモリを表します。

tftp://[user[:password]@]server[:port]/[path/]filename

このオプションは、ASA 5500 シリーズ適応型セキュリティ アプライアンスでのみサポートされています。

最大 4 つの boot system コマンド エントリを入力して、ブートする別々のイメージを順番に指定することができます。適応型セキュリティ アプライアンスは、最初に見つけたイメージをブートします。設定できる boot system tftp コマンドは 1 つだけです。これは、最初に設定する必要があります。


) 適応型セキュリティ アプライアンスが連続ブートのサイクルから抜け出せない場合は、適応型セキュリティ アプライアンスを ROMMON モードにリブートします。ROMMON モードの詳細については、「ソフトウェア イメージをロードするための ROM モニタの使用」を参照してください。


ブートする ASDM イメージを設定するには、次のコマンドを入力します。

hostname(config)# asdm image {flash:/ | disk0:/ | disk1:/}[path/]filename
 

スタートアップ コンフィギュレーションとしてブートするファイルの設定

デフォルトでは、適応型セキュリティ アプライアンスは、隠しファイルであるスタートアップ コンフィギュレーションからブートします。あるいは、次のコマンドを入力して、任意のコンフィギュレーションをスタートアップ コンフィギュレーションとして設定することもできます。

hostname(config)# boot config {flash:/ | disk0:/ | disk1:/}[path/]filename
 

flash:/ キーワードは、PIX 500 シリーズ セキュリティ アプライアンスの内部フラッシュ メモリを表します。ASA 5500 シリーズ適応型セキュリティ アプライアンスの内部フラッシュ メモリの場合は、 flash:/ または disk0:/ を使用できます。 disk1:/ キーワードは、ASA の外部フラッシュ メモリを表します。

フェールオーバー ペアのゼロ ダウンタイム アップグレードの実行

フェールオーバー コンフィギュレーション内の 2 つの装置は、メジャー(最初の番号)およびマイナー(2 番目の番号)のソフトウェア バージョンが同じになるようにします。ただし、アップグレード プロセス中に装置のバージョン パリティを維持する必要はありません。それぞれの装置で実行されるソフトウェアのバージョンが異なっていても、フェールオーバーのサポートを維持できます。長期の互換性および安定性を確保するために、両方の装置をできるだけ早く同じバージョンにアップグレードすることをお勧めします。

表 77-1 に、フェールオーバー ペアでゼロダウンタイム アップグレードを実行する場合にサポートされる事例を示します。

 

表 77-1 ゼロダウンタイム アップグレードのサポート

アップグレードのタイプ
サポート

メンテナンス リリース

任意のメンテナンス リリースを、マイナー リリース内の他のメンテナンス リリースにアップグレードできます。

たとえば、中間のメンテナンス リリースをあらかじめインストールしなくても、7.0(1)から 7.0(4)にアップグレードできます。

マイナー リリース

マイナー リリースから次のマイナー リリースにアップグレードできます。マイナー リリースはスキップできません。

たとえば、7.0 から 7.1 にアップグレードできます。ただし、ゼロダウンタイム アップグレードでは 7.0 から 7.2 への直接のアップグレードはサポートされておらず、まず 7.1 にアップグレードする必要があります。

メジャー リリース

前のバージョンの最後のマイナー リリースから次のメジャー リリースにアップグレードできます。

たとえば、7.9 が 7.x リリースの最後のマイナー バージョンであれば、7.9 から 8.0 にアップグレードできます。

フェールオーバー ペアのソフトウェアをアップグレードする場合の詳細については、次の各項目を参照してください。

「Active/Standby フェールオーバー コンフィギュレーションのアップグレード」

「Active/Active フェールオーバー コンフィギュレーションのアップグレード」

Active/Standby フェールオーバー コンフィギュレーションのアップグレード

Active/Standby フェールオーバー コンフィギュレーションの 2 つの装置をアップグレードするには、次の手順を実行します。


ステップ 1 両方の装置に新規ソフトウェアをダウンロードし、ロードする新規イメージを boot system コマンド(「ブートするアプリケーション イメージと ASDM イメージの設定」を参照)で指定します。

ステップ 2 アクティブ装置で次のコマンドを入力して、スタンバイ装置をリロードして新規イメージをブートします。

active# failover reload-standby
 

ステップ 3 スタンバイ装置がリロードを終了して Standby Ready 状態になったら、アクティブ装置で次のコマンドを入力して、アクティブ装置をスタンバイ装置に強制的にフェールオーバーします。


show failover コマンドを使用して、スタンバイ装置が Standby Ready 状態かどうかを検証します。


active# no failover active
 

ステップ 4 次のコマンドを入力して、前のアクティブ装置(現在の新規スタンバイ装置)をリロードします。

newstandby# reload
 

ステップ 5 新しいスタンバイ装置がリロードを終了して Standby Ready 状態になったら、次のコマンドを入力して、元のアクティブ装置をアクティブ ステータスに戻します。

newstandby# failover active
 


 

Active/Active フェールオーバー コンフィギュレーションのアップグレード

Active/Active フェールオーバー コンフィギュレーションの 2 つの装置をアップグレードするには、次の手順を実行します。


ステップ 1 両方の装置に新規ソフトウェアをダウンロードし、ロードする新規イメージを boot system コマンド(「ブートするアプリケーション イメージと ASDM イメージの設定」を参照)で指定します。

ステップ 2 プライマリ装置のシステム実行スペースで次のコマンドを入力して、プライマリ装置の両方のフェールオーバー グループをアクティブにします。

primary# failover active
 

ステップ 3 プライマリ装置のシステム実行スペースで次のコマンドを入力して、セカンダリ装置をリロードして新規イメージをブートします。

primary# failover reload-standby
 

ステップ 4 セカンダリ装置がリロードを終了し、その装置で両方のフェールオーバー グループが Standby Ready 状態になったら、プライマリ装置のシステム実行スペースで次のコマンドを使用して、セカンダリ装置の両方のフィールオーバー グループをアクティブにします。


show failover コマンドを使用して、セカンダリ装置の両方のフェールオーバー グループが Standby Ready 状態かどうかを検証します。


primary# no failover active
 

ステップ 5 プライマリ装置の両方のフェールオーバー グループが Standby Ready 状態になっていることを確認してから、次のコマンドを使用してプライマリ装置をリロードします。

primary# reload
 

ステップ 6 フェールオーバー グループは、 preempt コマンドを使用して設定されると、プリエンプト遅延の経過後、指定された装置で自動的にアクティブになります。フェールオーバー グループが preempt コマンドによって設定されていない場合は、 failover active group コマンドを使用して、指定された装置でそれらのステータスをアクティブに戻すことができます。


 

コンフィギュレーション ファイルのバックアップ

コンフィギュレーションをバックアップするには、次のいずれかの方法を使用します。

「シングルモード コンフィギュレーションまたはマルチモード システム コンフィギュレーションのバックアップ」

「フラッシュ メモリ内のコンテキスト コンフィギュレーションのバックアップ」

「コンテキスト内でのコンテキスト コンフィギュレーションのバックアップ」

「端末の表示からのコンフィギュレーションのコピー」

シングルモード コンフィギュレーションまたはマルチモード システム コンフィギュレーションのバックアップ

シングルコンテキスト モードで、またはマルチモードのシステム コンフィギュレーションから、スタートアップ コンフィギュレーションまたは実行コンフィギュレーションを外部サーバまたはローカル フラッシュ メモリにコピーできます。

TFTP サーバにコピーするには、次のコマンドを入力します。

hostname# copy {startup-config | running-config} tftp://server[/path]/filename
 

FTP サーバにコピーするには、次のコマンドを入力します。

hostname# copy {startup-config | running-config} ftp://[user[:password]@]server[/path]/filename
 

ローカル フラッシュ メモリにコピーするには、次のコマンドを入力します。

hostname# copy {startup-config | running-config} {flash:/ | disk0:/ | disk1:/}[path/]filename
 

宛先ディレクトリが存在することを確認してください。存在しない場合は、まず mkdir コマンドを使用してディレクトリを作成します。

バックアップします。

フラッシュ メモリ内のコンテキスト コンフィギュレーションのバックアップ

マルチコンテキスト モードで、次のコマンドの 1 つをシステム実行スペースで入力して、ローカル フラッシュ メモリにあるコンテキスト コンフィギュレーションをコピーします。

TFTP サーバにコピーするには、次のコマンドを入力します。

hostname# copy disk:[path/]filename tftp://server[/path]/filename
 

FTP サーバにコピーするには、次のコマンドを入力します。

hostname# copy disk:[path/]filename ftp://[user[:password]@]server[/path]/filename
 

ローカル フラッシュ メモリにコピーするには、次のコマンドを入力します。

hostname# copy {flash:/ | disk0:/ | disk1:/}[path/]filename {flash:/ | disk0:/ | disk1:/}[path/]newfilename
 

宛先ディレクトリが存在することを確認してください。存在しない場合は、まず mkdir コマンドを使用してディレクトリを作成します。

コンテキスト内でのコンテキスト コンフィギュレーションのバックアップ

マルチコンテキスト モードでは、コンテキスト内から次のバックアップを実行できます。

(admin コンテキストに接続された)スタートアップ コンフィギュレーション サーバに実行コンフィギュレーションをコピーするには、次のコマンドを入力します。

hostname/contexta# copy running-config startup-config
 

コンテキスト ネットワークに接続された TFTP サーバに実行コンフィギュレーションをコピーするには、次のコマンドを入力します。

hostname/contexta# copy running-config tftp:/server[/path]/filename
 

端末の表示からのコンフィギュレーションのコピー

コンフィギュレーションを端末に表示するには、次のコマンドを入力します。

hostname# show running-config
 

このコマンドの出力をコピーし、テキスト ファイルにコンフィギュレーションを貼り付けます。

export および import コマンドを使用した追加ファイルのバックアップ

コンフィギュレーションに欠かせない追加ファイルは次のとおりです。

import webvpn コマンドを使用してインポートするファイル。現在これらのファイルには、カスタマイゼーション、URL リスト、Web コンテンツ、プラグイン、および言語翻訳などがあります。

DAP ポリシー(dap.xml)。

CSD コンフィギュレーション(data.xml)。

デジタル キーおよびデジタル証明書。

ローカル CA ユーザ データベース ファイルと証明書ステータス ファイル。

CLI では、 export コマンドと import コマンドを使用して、コンフィギュレーションの個々の要素をバックアップおよび復元できます。たとえば import webvpn コマンドを使用してインポートされたファイル、または証明書をバックアップするには、次の手順を実行します。


ステップ 1 適切な show コマンドを発行します。次に例を示します。

hostname # show import webvpn plug-in
ica
rdp
ssh,telnet
vnc
hostname#

ステップ 2 バックアップするファイルに対して export コマンドを発行します。この例では rdp ファイルです。

hostname # export webvpn plug-in protocol rdp tftp://tftpserver/backupfilename

hostname #


 

スクリプトを使用したファイルのバックアップおよび復元

スクリプトを使用して、セキュリティ アプライアンスのコンフィギュレーション ファイルをバックアップおよび復元できます。これには、 import webvpn CLI によってインポートする拡張機能のすべて、CSD コンフィギュレーションの XML ファイル、および DAP コンフィギュレーションの XML ファイルが含まれます。セキュリティ上の理由により、デジタル キーと証明書、またはローカル CA キーの自動バックアップを実行することはお勧めしません。

この項では、自動バックアップの手順について説明します。また、そのまま使用することも、環境要件に合せて修正することもできるサンプル スクリプトを示します。サンプル スクリプトは Linux システムに固有のスクリプトです。Microsoft Windows システムで使用するには、サンプルのロジックを使用して修正する必要があります。


) 既存の CLI では、copyexport、および import コマンドを使用して個々のファイルをバックアップおよび復元できます。ただし、1 回の操作ですべての ASA コンフィギュレーション ファイルをバックアップする機能はありません。スクリプトを実行すると、複数の CLI を使用できます。


前提条件

スクリプトを使用して ASA コンフィギュレーションをバックアップおよび復元するには、まず次の作業を実行します。

Expect モジュールとともに Perl をインストールする。

ASA に到達可能な SSH クライアントをインストールする。

TFTP サーバをインストールして、ASA からバックアップ サイトにファイルを送信する。

別の選択肢としては、市販のツールを使用します。このスクリプトのロジックをそれらのツールに取り入れることができます。

スクリプトの実行

バックアップおよび復元のスクリプトを実行するには、次の手順を実行します。


ステップ 1 システムの任意の場所に、スクリプト ファイルをダウンロードまたはカット アンド ペーストします。

ステップ 2 コマンド ラインで、 Perl scriptname と入力します。 scriptname はスクリプト ファイルの名前です。

ステップ 3 Enter を押します。

ステップ 4 それぞれのオプションに値の入力を求めるプロンプトが表示されます。あるいは、 Perl scriptname コマンドを入力するときにオプションの値を入力してから、 Enter を押すことができます。どちらの方法でも、スクリプトによりオプションごとに値を入力するよう求められます。

ステップ 5 このスクリプトが実行され、発行されるコマンドが出力されます。この出力は CLI の記録となります。これらの CLI は後で行われる復元に使用できます。特に、ファイルを 1 つまたは 2 つだけ復元する場合に便利です。


 

サンプル スクリプト

#!/usr/bin/perl

#Function: Backup/restore configuration/extensions to/from a TFTP server.

#Description: The objective of this script is to show how to back up configurations/extensions

# before the backup/restore command is developed.

# It currently backs up the running configuration, all extensions imported via "import webvpn"

# command, the CSD configuration XML file, and the DAP configuration XML file.

#Requirements: Perl with Expect, SSH to the ASA, and a TFTP server.

#Usage: backupasa -option option_value

# -h: ASA hostname or IP address

# -u: User name to log in via SSH

# -w: Password to log in via SSH

# -e: The Enable password on the security appliance

# -p: Global configuration mode prompt

# -s: Host name or IP address of the TFTP server to store the configurations

# -r: Restore with an argument that specifies the the file name.This file is produced during backup.

#If you don't enter an option, the script will prompt for it prior to backup.

#

#Make sure that you can SSH to the ASA.

use Expect;

use Getopt::Std;

#global variables

%options=();

$restore = 0; #does backup by default

$restore_file = '';

$asa = '';

$storage = '';

$user = '';

$password = '';

$enable = '';

$prompt = '';

$date = `date +%F`;

chop($date);

my $exp = new Expect();

getopts("h:u:p:w:e:s:r:",\%options);

do process_options();

do login($exp);

do enable($exp);

if ($restore) {

do restore($exp,$restore_file);

}

else {

$restore_file = "$prompt-restore-$date.cli";

open(OUT,">$restore_file") or die "Can't open $restore_file\n";

do running_config($exp);

do lang_trans($exp);

do customization($exp);

do plugin($exp);

do url_list($exp);

do webcontent($exp);

do dap($exp);

do csd($exp);

close(OUT);

}

do finish($exp);

sub enable {

$obj = shift;

$obj->send("enable\n");

unless ($obj->expect(15, 'Password:')) {

print "timed out waiting for Password:\n";

}

$obj->send("$enable\n");

unless ($obj->expect(15, "$prompt#")) {

print "timed out waiting for $prompt#\n";

}

}

sub lang_trans {

$obj = shift;

$obj->clear_accum();

$obj->send("show import webvpn translation-table\n");

$obj->expect(15, "$prompt#" );

$output = $obj->before();

@items = split(/\n+/, $output);

for (@items) {

s/^\s+//;

s/\s+$//;

next if /show import/ or /Translation Tables/;

next unless (/^.+\s+.+$/);

($lang, $transtable) = split(/\s+/,$_);

$cli = "export webvpn translation-table $transtable language $lang $storage/$prompt-$date-$transtable-$lang.po";

$ocli = $cli;

$ocli =~ s/^export/import/;

print "$cli\n";

print OUT "$ocli\n";

$obj->send("$cli\n");

$obj->expect(15, "$prompt#" );

}

}

sub running_config {

$obj = shift;

$obj->clear_accum();

$cli ="copy /noconfirm running-config $storage/$prompt-$date.cfg";

print "$cli\n";

$obj->send("$cli\n");

$obj->expect(15, "$prompt#" );

}

sub customization {

$obj = shift;

$obj->clear_accum();

$obj->send("show import webvpn customization\n");

$obj->expect(15, "$prompt#" );

$output = $obj->before();

@items = split(/\n+/, $output);

for (@items) {

chop;

next if /^Template/ or /show import/ or /^\s*$/;

$cli = "export webvpn customization $_ $storage/$prompt-$date-cust-$_.xml";

$ocli = $cli;

$ocli =~ s/^export/import/;

print "$cli\n";

print OUT "$ocli\n";

$obj->send("$cli\n");

$obj->expect(15, "$prompt#" );

}

}

sub plugin {

$obj = shift;

$obj->clear_accum();

$obj->send("show import webvpn plug-in\n");

$obj->expect(15, "$prompt#" );

$output = $obj->before();

@items = split(/\n+/, $output);

for (@items) {

chop;

next if /^Template/ or /show import/ or /^\s*$/;

$cli = "export webvpn plug-in protocol $_ $storage/$prompt-$date-plugin-$_.jar";

$ocli = $cli;

$ocli =~ s/^export/import/;

print "$cli\n";

print OUT "$ocli\n";

$obj->send("$cli\n");

$obj->expect(15, "$prompt#" );

}

}

sub url_list {

$obj = shift;

$obj->clear_accum();

$obj->send("show import webvpn url-list\n");

$obj->expect(15, "$prompt#" );

$output = $obj->before();

@items = split(/\n+/, $output);

for (@items) {

chop;

next if /^Template/ or /show import/ or /^\s*$/ or /No bookmarks/;

$cli="export webvpn url-list $_ $storage/$prompt-$date-urllist-$_.xml";

$ocli = $cli;

$ocli =~ s/^export/import/;

print "$cli\n";

print OUT "$ocli\n";

$obj->send("$cli\n");

$obj->expect(15, "$prompt#" );

}

}

sub dap {

$obj = shift;

$obj->clear_accum();

$obj->send("dir dap.xml\n");

$obj->expect(15, "$prompt#" );

$output = $obj->before();

return 0 if($output =~ /Error/);

$cli="copy /noconfirm dap.xml $storage/$prompt-$date-dap.xml";

$ocli="copy /noconfirm $storage/$prompt-$date-dap.xml disk0:/dap.xml";

print "$cli\n";

print OUT "$ocli\n";

$obj->send("$cli\n");

$obj->expect(15, "$prompt#" );

}

sub csd {

$obj = shift;

$obj->clear_accum();

$obj->send("dir sdesktop\n");

$obj->expect(15, "$prompt#" );

$output = $obj->before();

return 0 if($output =~ /Error/);

$cli="copy /noconfirm sdesktop/data.xml $storage/$prompt-$date-data.xml";

$ocli="copy /noconfirm $storage/$prompt-$date-data.xml disk0:/sdesktop/data.xml";

print "$cli\n";

print OUT "$ocli\n";

$obj->send("$cli\n");

$obj->expect(15, "$prompt#" );

}

sub webcontent {

$obj = shift;

$obj->clear_accum();

$obj->send("show import webvpn webcontent\n");

$obj->expect(15, "$prompt#" );

$output = $obj->before();

@items = split(/\n+/, $output);

for (@items) {

s/^\s+//;

s/\s+$//;

next if /show import/ or /No custom/;

next unless (/^.+\s+.+$/);

($url, $type) = split(/\s+/,$_);

$turl = $url;

$turl =~ s/\/\+//;

$turl =~ s/\+\//-/;

$cli = "export webvpn webcontent $url $storage/$prompt-$date-$turl";

$ocli = $cli;

$ocli =~ s/^export/import/;

print "$cli\n";

print OUT "$ocli\n";

$obj->send("$cli\n");

$obj->expect(15, "$prompt#" );

}

}

sub login {

$obj = shift;

$obj->raw_pty(1);

$obj->log_stdout(0); #turn off console logging.

$obj->spawn("/usr/bin/ssh $user\@$asa") or die "can't spawn ssh\n";

unless ($obj->expect(15, "password:" )) {

die "timeout waiting for password:\n";

}

$obj->send("$password\n");

unless ($obj->expect(15, "$prompt>" )) {

die "timeout waiting for $prompt>\n";

}

}

sub finish {

$obj = shift;

$obj->hard_close();

print "\n\n";

}

sub restore {

$obj = shift;

my $file = shift;

my $output;

open(IN,"$file") or die "can't open $file\n";

while (<IN>) {

$obj->send("$_");

$obj->expect(15, "$prompt#" );

$output = $obj->before();

print "$output\n";

}

close(IN);

}

sub process_options {

if (defined($options{s})) {

$tstr= $options{s};

$storage = "tftp://$tstr";

}

else {

print "Enter TFTP host name or IP address:";

chop($tstr=<>);

$storage = "tftp://$tstr";

}

if (defined($options{h})) {

$asa = $options{h};

}

else {

print "Enter ASA host name or IP address:";

chop($asa=<>);

}

if (defined ($options{u})) {

$user= $options{u};

}

else {

print "Enter user name:";

chop($user=<>);

}

if (defined ($options{w})) {

$password= $options{w};

}

else {

print "Enter password:";

chop($password=<>);

}

if (defined ($options{p})) {

$prompt= $options{p};

}

else {

print "Enter ASA prompt:";

chop($prompt=<>);

}

if (defined ($options{e})) {

$enable = $options{e};

}

else {

print "Enter enable password:";

chop($enable=<>);

}

if (defined ($options{r})) {

$restore = 1;

$restore_file = $options{r};

}

}

Auto Update サポートの設定

Auto Update は、Auto Update サーバがコンフィギュレーションおよびソフトウェア イメージを多数の適応型セキュリティ アプライアンスにダウンロードすることを許可し、中央からの適応型セキュリティ アプライアンスの基本的なモニタリングを提供するプロトコル仕様です。

適応型セキュリティ アプライアンスは、クライアントまたはサーバとして設定できます。Auto Update クライアントとして動作する場合は、ソフトウェア イメージおよびコンフィギュレーション ファイルへのアップデートのため、Auto Update サーバを定期的にポーリングします。Auto Update サーバとして動作する場合は、Auto Update クライアントとして設定された適応型セキュリティ アプライアンスのアップデートを発行します。


) Auto Update は、シングルコンテキスト モードでのみサポートされます。


この項は、次の内容で構成されています。

「Auto Update サーバとの通信の設定」

「Auto Update サーバとしてのクライアント アップデートの設定」

「Auto Update ステータスの表示」

Auto Update サーバとの通信の設定

適応型セキュリティ アプライアンスを Auto Update クライアントとして設定するには、次の手順を実行します。


ステップ 1 AUS の URL を指定するには、次のコマンドを使用します。

hostname(config)# auto-update server url [source interface] [verify-certificate]
 

ここで、url には次のシンタックスがあります。

http[s]://[user:password@]server_ip[:port]/pathname
 

https を指定すると、SSL が使用されます。URL の user 引数と password 引数は、サーバにログインするときの基本認証に使用されます。 write terminal show configuration 、または show tech-support コマンドを使用してコンフィギュレーションを表示した場合、ユーザとパスワードは「********」に置換されます。

HTTP のデフォルト ポートは 80、HTTPS のデフォルト ポートは 443 です。

source interface 引数は、AUS に要求を送信するときに使用するインターフェイスを指定します。 management-access コマンドで指定したインターフェイスと同じインターフェイスを指定すると、Auto Update の要求は管理アクセスで使用されるのと同じ IPSec VPN トンネルを通過します。

verify-certificate キーワードは、AUS によって戻される証明書を確認します。

ステップ 2 (オプション)AUS と通信する際に送信するデバイス ID を識別するには、次のコマンドを入力します。

hostname(config)# auto-update device-id {hardware-serial | hostname | ipaddress [if-name] | mac-address [if-name] | string text}
 

使用する ID は、次のいずれかのパラメータによって決まります。

hardware-serial:適応型セキュリティ アプライアンスのシリアル番号を使用します。

hostname:適応型セキュリティ アプライアンスのホスト名を使用します。

ipaddress :指定したインターフェイスの IP アドレスを使用します。インターフェイス名を指定しない場合、AUS との通信に使用するインターフェイスの IP アドレスを使用します。

mac-address:指定したインターフェイスの MAC アドレスを使用します。インターフェイス名を指定しない場合、AUS との通信に使用するインターフェイスの MAC アドレスを使用します。

string:指定されたテキスト識別子を使用します。空白や '、"、、>、&、? は使用できません。

ステップ 3 (オプション)コンフィギュレーション、またはイメージの更新を要求するために AUS がポーリングする回数を指定するには、次のコマンドを入力します。

hostname(config)# auto-update poll-period poll-period [retry-count [retry-period]]
 

poll-period 引数は、更新を確認する間隔(分単位)を指定します。デフォルトは 720 分(12 時間)です。

retry-count 引数は、サーバへの最初の接続に失敗した場合に、リトライする回数を指定します。デフォルトは 0 です。

retry-period 引数は、リトライの間の待機時間(分単位)を指定します。デフォルトは 5 です。

ステップ 4 (オプション)セキュリティ アプライアンスが Auto Update サーバをポーリングする特定の時刻をスケジュールするには、次のコマンドを使用します。

hostname(config)# auto-update poll-at days-of-the-week time [randomize minutes] [retry_count [retry_period]]
 

days-of-the-week は、Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、および Sunday の中の任意の 1 日または複数日の組み合せです。それ以外に、daily(月曜日から日曜日)、weekdays(月曜日から金曜日)、および weekend(土曜日と日曜日)の値が設定可能です。

time は、ポーリングの開始時刻を HH:MM 形式で指定します。たとえば、8:00 は 8:00 AM、20:00 は 8:00 PM となります。

randomize minutes は、指定した開始時刻に続いてポーリングをランダムに実行する期間を指定します。範囲は 1 ~ 1439 分です。

retry_count は、最初の接続に失敗したときに、Auto Update サーバへの再接続を試みる回数を指定します。デフォルトは 0 です。

retry_period は、接続の試行から次の試行までの待機時間を指定します。デフォルトは 5 分です。範囲は 1 ~ 35791 分です。

ステップ 5 (オプション)Auto Update サーバ に一定期間アクセスがなかった場合にトラフィックの通過を中断するには、次のコマンドを使用します。

hostname(config)# auto-update timeout period
 

ここで、 period は 1 ~ 35791 の範囲で分単位のタイムアウト期間を指定します。デフォルトはタイムアウトなし(0)です。デフォルトに戻すには、このコマンドの no 形式を使用します。

適応型セキュリティ アプライアンスに最新のイメージとコンフィギュレーションがあることを確認するには、このコマンドを使用します。この状態は、システム ログ メッセージ 201008 で報告されます。


 

次の例では、適応型セキュリティ アプライアンスが外部インターフェイスから証明書の検証付きで、IP アドレス 209.165.200.224、ポート番号 1742 で AUS をポーリングするように設定されています。

また、デバイス ID として適応型セキュリティ アプライアンスのホスト名を使用するように設定されます。ポーリングは、金曜日と土曜日ごとに、10:00 p.m. から 11:00 p.m. の間の任意の時刻に実行するように設定されます。ポーリングに失敗した場合は、AUS への再接続を 10 回試行し、再接続と再接続の間に 3 分間待機します。

hostname(config)# auto-update server https://jcrichton:farscape@209.165.200.224:1742/management source outside verify-certificate
hostname(config)# auto-update device-id hostname
hostname(config)# auto-update poll-at Friday Saturday 22:00 randomize 60 2 10

Auto Update サーバとしてのクライアント アップデートの設定

client-update コマンドを使用して、Auto Update クライアントとして設定された適応型セキュリティ アプライアンスのアップデートをイネーブルにできます。このコマンドでは、ソフトウェア コンポーネントのタイプ(asdm または boot image)、適応型セキュリティ アプライアンスのタイプまたはファミリ、アップデートを適用するリビジョン番号、アップデートの取得元となる URL または IP アドレスを指定できます。

適応型セキュリティ アプライアンスを Auto Update サーバとして設定するには、次の手順を実行します。


ステップ 1 グローバル コンフィギュレーション モードで、次のコマンドを入力してクライアント アップデートをイネーブルにします。

hostname(config)# client-update enable
hostname(config)#
 

ステップ 2 次のように、 client-update コマンドを使用して適応型セキュリティ アプライアンスに適用するクライアント アップデートのパラメータを設定します。

client-update { component { asdm | image } | device-id dev_string |
family family_name | type type } url url-string rev-nums rev-nums }

component { asdm | image } は、ASDM または適応型セキュリティ アプライアンスのブート イメージのいずれかをソフトウェア コンポーネントとして指定します。

device-id dev_string は、Auto Update クライアントが自身を識別するために使用する固有の文字列を指定します。最大長は 63 文字です。

family family_name は、Auto Update クライアントが自身を識別するために使用するファミリ名を指定します。asa、pix、または 7 文字以内のテキスト文字列を指定します。

rev-nums rev-nums は、このクライアントのソフトウェアまたはファームウェア イメージを指定します。最大 4 個のイメージを、任意の順序でカンマで区切って指定します。

type type は、クライアント アップデートを通知するクライアントのタイプを指定します。このコマンドは、Windows クライアントのアップデートでも使用されるため、クライアントのリストには Windows オペレーティング システムも複数含まれています。リストに含まれる適応型セキュリティ アプライアンスには、次のものがあります。

pix-515:Cisco PIX 515 Firewall

pix-515e:Cisco PIX 515E Firewall

pix-525:Cisco PIX 525 Firewall

pix-535:Cisco PIX 535 Firewall

asa5505:Cisco 5505 適応型セキュリティ アプライアンス

asa5510:Cisco 5510 適応型セキュリティ アプライアンス

asa5520:Cisco 5520 適応型セキュリティ アプライアンス

asa5540:Cisco 適応型セキュリティ アプライアンス

url url-string は、ソフトウェア/ファームウェア イメージの URL を指定します。この URL は、クライアントに適合するファイルを指している必要があります。すべての Auto Update クライアントには、URL のプレフィックスとして「http://」または「https://」プロトコルを使用する必要があります。

特定のタイプの適応型セキュリティ アプライアンスすべてに適用するクライアント アップデートのパラメータを設定します。つまり、適応型セキュリティ アプライアンスのタイプと、アップデートされたイメージの取得元 URL または IP アドレスを指定します。また、リビジョン番号も指定する必要があります。リモート適応型セキュリティ アプライアンスのリビジョン番号が、指定したリビジョン番号の 1 つと一致する場合は、アップデートは不要です。クライアントはそのアップデートを無視します。

次の例では、Cisco 5520 適応型セキュリティ アプライアンスのクライアント アップデートを設定しています。

hostname(config)# client-update type asa5520 component asdm url http://192.168.1.114/aus/asdm601.bin rev-nums 8.0(1)
 


 

Auto Update ステータスの表示

Auto Update のステータスを表示するには、次のコマンドを入力します。

hostname(config)# show auto-update
 

次に、 show auto-update コマンドの出力例を示します。

hostname(config)# show auto-update
Server: https://********@209.165.200.224:1742/management.cgi?1276
Certificate will be verified
Poll period: 720 minutes, retry count: 2, retry period: 5 minutes
Timeout: none
Device ID: host name [corporate]
Next poll in 4.93 minutes
Last poll: 11:36:46 PST Tue Nov 13 2004
Last PDM update: 23:36:46 PST Tue Nov 12 2004