Catalyst 6500 シリーズ スイッチ SSL サービス モジュール コンフィギュレーション ノート
SSLサービス モジュールの高度な設定
SSLサービス モジュールの高度な設定
発行日;2012/02/05 | ドキュメントご利用ガイド | ダウンロード ; この章pdf | フィードバック

目次

SSLサービス モジュールの高度な設定

ポリシーの設定

SSLポリシーの設定

TCPポリシーの設定

HTTPヘッダー挿入

プレフィクス

クライアント証明書ヘッダー

クライアントIPおよびポート アドレス ヘッダー

カスタム ヘッダー

SSLセッション ヘッダー

HTTPヘッダー挿入の設定

URL書き換えの設定

NATの設定

サーバNAT

クライアントNAT

冗長性の設定

TACACS、TACACS+、およびRADIUSの設定

SNMPトラップの設定

暗号セルフテストのイネーブル化

統計情報の表示

クラッシュ情報の収集

VTSデバッグのイネーブル化

ポリシーの設定

プロキシ サービスにポリシーを適用する手順については、「SSLプロキシ サービスの設定」を参照してください。

ここでは、Secure Socket Layer(SSL)ポリシーおよびTCPポリシーの設定方法について説明します。

「SSLポリシーの設定」

「TCPポリシーの設定」

「HTTPヘッダー挿入」

「URL書き換えの設定」

SSLポリシーの設定


) SSLサービス モジュールのSSLコマンドは、グローバルにも、または特定のプロキシ サーバにも適用されます。


SSLポリシー テンプレートを使用すると、SSLスタックに関連付けられたパラメータを定義することができます。

設定できるパラメータの1つに、SSL終了プロトコル動作があります。SSL終了プロトコルでは、各SSLピア(クライアント/サーバ)が、終了通知アラートの送信および終了通知アラートの受信を行ってから、接続を適切に閉じる必要があることを指定しています。SSL接続が適切に終了しない場合は、セッションが削除されるので、以後のSSL接続で同じSSLセッションIDを使用することができません。

ただし、厳密にはSSL終了プロトコルより先に実行されるSSL動作は多数あります(たとえば、SSLピアは終了通知アラートを送信しますが、リモートSSLピアからの終了通知アラートを待機せずに接続を閉じます)。

SSLピアが、終了接続シーケンスを開始すると、厳密にはSSLモジュールが終了通知アラート メッセージを期待します。SSLピアが終了通知アラートを送信しない場合、SSLモジュールはセッション キャッシュからのセッションを削除するので、以後のSSL接続で同じSSLセッションIDを使用することができません。

SSLモジュールが終了接続シーケンスを開始すると、次の終了プロトコル オプションを設定することができます。

strict ― SSLモジュールは、SSLピアに終了通知アラート メッセージを送信し、SSLモジュールはSSLピアからの終了通知アラート メッセージを期待します。SSLモジュールが終了通知アラートを受信しなければ、このセッションに関するSSLの続行が許可されません。

none ― SSLモジュールは、SSLピアに終了通知アラート メッセージを送信せず、SSLモジュールはSSLピアからの終了通知アラート メッセージを期待しません。SSLモジュールがSSLピアから終了通知アラートを受信すると、SSLモジュールがセッション情報を維持するので、以後のSSL接続でSSL再開を使用できます。ただし、SSLモジュールがSSLピアから終了通知アラートを受信しなければ、このセッションのSSL再開が許可されません。

disabled(デフォルト) ― SSLモジュールは終了通知アラート メッセージをSSLピアに送信します。ただし、SSLピアからの終了通知アラート メッセージを待機せずに、セッションを削除します。SSLピアが終了通知を送信してもしなくても、セッション情報は維持され、以後のSSL接続でSSLの再開が許可されます。

特定のプロキシ サーバにSSLポリシーが関連付けられていない場合、プロキシ サーバはデフォルトで、サポート対象の暗号スイートおよびプロトコル バージョンをすべてイネーブルにします。

SSLポリシー テンプレートを定義して、特定のプロキシ サーバにSSLポリシーを関連付ける手順は、次のとおりです。

 

コマンド
目的

ステップ 1

ssl-proxy (config)# ssl-proxy policy ssl ssl_policy_name

SSLポリシー テンプレートを定義します。

ステップ 2

ssl-proxy (config-ssl-policy)# cipher { rsa-with-rc4-128-md5 | rsa-with-rc4-128-sha | rsa-with-des-cbc-sha | rsa-with-3des-ede-cbc-sha | others... }

プロキシ サーバが受け入れ可能な暗号スイートの名前一覧を設定します。暗号スイート名の表記法は、既存のSSLスタックの表記法と同じです。

ステップ 3

ssl-proxy (config-ssl-policy)# protocol { ssl3 | tls1 | all }

プロキシ サーバでサポートされる各種プロトコル バージョンを定義します。

ステップ 4

ssl-proxy (config-ssl-policy)# timeout handshake time

モジュールがハンドシェイク フェーズで接続を維持できる時間を設定します。有効範囲は0~65,535秒です。

ステップ 5

ssl-proxy (config-ssl-policy)# close-protocol { strict | none }

SSL終了プロトコルの動作を設定します。終了プロトコルは、デフォルトでディセーブルです。

ステップ 6

ssl-proxy (config-ssl-policy)# session-cache

セッション キャッシュ機能をイネーブルにします。セッション キャッシュはデフォルトでイネーブルです。

ステップ 7

ssl-proxy (config-ssl-policy)# timeout session timeout [ absolute 1]

エントリがセッション キャッシュ内に維持される時間を設定します。有効範囲は1~72,000秒です。


) セッションキャッシュ サイズを設定するには、absoluteキーワードが必要です。



absoluteキーワードは、セッション エントリが指定されたtimeoutの間セッション キャッシュ内に維持されるよう指定します。
absoluteキーワードが指定されているときは、セッション キャッシュ内に利用できるフリー エントリがない場合、新たな着信接続は拒否されます。


 

ステップ 8

ssl-proxy (config-ssl-policy)# session-cache size size

(任意)セッション キャッシュのサイズを指定します1。有効範囲は1~262,143エントリです。


timeout session コマンドでabsoluteキーワードを入力して、セッション キャッシュのサイズを指定します。このコマンドを入力しない場合、またはsizeが指定されていない場合は、セッション キャッシュのサイズは最大サイズになります(262,144)。


 

1.absoluteキーワードが設定されると、設定されたセッションのタイムアウトになってから、セッション エントリが再利用されます。absoluteが設定されると、必要なセッション エントリ数は(new_connection_rate * absolute_timeout)と同等になります。タイムアウト設定および新しい接続レートに応じて、セッション エントリ数が大きくなる可能性があります。この場合は、セッション キャッシュ サイズを設定して、使用するセッション エントリ数を制限することができます。

TCPポリシーの設定


) SSLサービス モジュールのTCPコマンドは、グローバルにも、また特定のプロキシ サーバにも適用されます。


TCPポリシー テンプレートを使用すると、TCPスタックに関連付けられたパラメータを定義することができます。

TCPポリシー テンプレートを定義して、特定のプロキシ サーバにTCPポリシーを関連付ける手順は、次のとおりです。

 

コマンド
目的

ステップ 1

ssl-proxy (config)# ssl-proxy policy tcp tcp_policy_name

TCPポリシー テンプレートを定義します。特に指定がない場合は、デフォルト設定がすべて適用されます。

ステップ 2

ssl-proxy (config-tcp-policy)# timeout syn time

接続確立タイムアウトを設定します。デフォルト値は75秒です。有効範囲は5~75秒です。

ステップ 3

ssl-proxy (config-tcp-policy)# mss max_segment_size

生成されたSYNパケット内で接続が識別するMaximum Segment Size(MSS;最大セグメント サイズ)をバイト単位で設定します。


) このコマンドでは、プロキシ サーバのクライアント側およびサーバ側に異なるMSSを設定できます。デフォルト値は1,460バイトです。有効範囲は256~2,460バイトです2


 

ステップ 4

ssl-proxy (config-tcp-policy)# timeout reassembly time

リアセンブリ キューが削除されるまでの時間を秒単位で設定します。トランザクションが指定時間内で完了されない場合は、リアセンブリ キューが削除され、接続が中断されます。デフォルト値は60秒です。有効範囲は0~960秒(0 = ディセーブル)です。

ステップ 5

ssl-proxy (config-tcp-policy)# timeout inactivity time

確立された接続が非アクティブである時間を秒単位で設定します。デフォルト値は600秒です。有効範囲は0~960秒(0 = ディセーブル)です。

ステップ 6

ssl-proxy (config-tcp-policy)# timeout fin-wait time

FIN待機タイムアウトを秒単位で設定します。デフォルト値は600秒です。有効範囲は75~600秒です。

ステップ 7

ssl-proxy (config-tcp-policy)# buffer-share rx buffer_limit

接続ごとに共有する最大受信バッファをバイト単位で設定します。デフォルト値は32,768バイトです。有効範囲は8,192~262,144バイトです。

ステップ 8

ssl-proxy (config-tcp-policy)# buffer-share tx buffer_limit

接続ごとに共有する最大送信バッファをバイト単位で設定します。デフォルト値は32,768バイトです。有効範囲は8,192~262,144バイトです。

2.フラグメンテーションが発生すると、フラグメンテーションが解消されるまでMSS値を削減してください。

HTTPヘッダー挿入

一般的なSSLオフロード環境では、SSLオフローダがセキュアなクライアントHTTP(HTTPS)接続を終了し、SSLトラフィックをクリアテキストに暗号化し、クリアテキストをHTTP接続経由でWebサーバに転送します。HTTPS接続は、バックエンド サーバで非セキュアなHTTP接続になります。バックエンド サーバは、クライアント接続がセキュアな接続として送信されたことを認識しません。

HTTPヘッダー挿入を設定する理由は、次のとおりです。

HTTPヘッダー挿入により、SSLモジュールはクライアント接続中に、情報をHTTPヘッダーに組み込むことができます。バックエンド サーバがこのヘッダーを認識すると、すべてのURLをHTTPSとして戻します。

クライアントから受信したHTTPヘッダーにクライアント証明書情報を挿入するように、SSLオフローダを設定することにより、バックエンド アプリケーションで接続ごとの情報をロギングすることができます。

SSLモジュールをサイトツーサイト設定で使用して、トラフィックをセキュアなチャネルで送信する場合、接続のサーバ側でクライアントIPアドレスおよびポート情報(Network Address Translation[NAT;ネットワーク アドレス変換]中に削除される)を認識する必要がある場合があります。

HTTPヘッダー挿入は、GET、HEAD、PUT、TRACE、POST、およびDELETEの方式で実行されます。HTTPヘッダー挿入は、CONNECT方式では実行されません。

カスタム ヘッダーとクライアントIPおよびポート ヘッダーは、HTTP要求パケットごとに挿入されます。すべてのセッション ヘッダーおよびデコードされたクライアント証明書フィールドは、最初のHTTP要求パケットで挿入されます。同じセッションIDを使用する後続のHTTP要求で挿入されるのは、セッションIDのみです。サーバは、セッションおよびクライアント証明書ヘッダーを取得するために、セッションIDに基づくセッションまたはクライアント証明書ヘッダーをキャッシュして、後続の要求でセッションIDを使用するように見込まれます。

最大100のHTTPヘッダー挿入ポリシーを設定できます。各ポリシーには、最大32のプレフィクスおよびヘッダーが含まれます。プレフィクスおよびカスタム ヘッダーには、最大240の文字を含めることができます。

HTTPヘッダーに挿入できる情報については、次のとおりです。

「プレフィクス」

「クライアント証明書ヘッダー」

「クライアントIPおよびポート アドレス ヘッダー」

「カスタム ヘッダー」

「SSLセッション ヘッダー」

プレフィクス

prefix prefix_string を指定すると、SSLモジュールは、すべての挿入されたHTTPヘッダーに指定されたプレフィクスを追加します。プレフィクスを追加することにより、サーバは、他の装置ではなくSSLモジュールからの接続であることを認識できるようになります。プレフィクスは、クライアントからの標準HTTPヘッダーには追加されません。 prefix_string は、最大240文字を含めることができます。

クライアント証明書ヘッダー

クライアント証明書ヘッダー挿入により、バックエンド サーバは、SSLモジュールが認証および承認したクライアント証明書の属性を確認することができます。クライアント証明書ヘッダーは、セッションにつき1回だけ送信されます。サーバは、セッションID(ヘッダーと同様に挿入される)を使用して、これらの値をキャッシュするように見込まれます。後続の要求では、サーバはセッションIDを使用して、サーバ自体にキャッシュされたクライアント証明書を検索します。


) クライアントが証明書を送信しない場合は、SSLハンドシェイクが失敗します。データ フェーズまたはヘッダー挿入も行われません。


client-cert を指定すると、SSLモジュールがバックエンド サーバに次のヘッダーを転送します。

 

挿入するフィールド
説明

ClientCert-Valid

証明書の有効性ステート

ClientCert-Error

エラー条件

ClientCert-Fingerprint

ハッシュ出力

ClientCert-Subject-CN

X.509主体者に共通の名前

ClientCert-Issuer-CN

X.509証明書発行者に共通の名前

ClientCert-Certificate-Version

X.509証明書バージョン

ClientCert-Serial-Number

証明書のシリアル番号

ClientCert-Data-Signature-Algorithm

X.509のハッシュおよび暗号化方式

ClientCert-Subject

X.509主体者に特有の名前

ClientCert-Issuer

X.509証明書発行者に特有の名前

ClientCert-Not-Before

証明書の有効開始日

ClientCert-Not-After

証明書の有効期限日

ClientCert-Public-Key-Algorithm

公開鍵に使用されるアルゴリズム

ClientCert-RSA-Public-Key-Size

RSA公開鍵のサイズ

ClientCert-RSA-Modulus-Size

RSA秘密鍵のサイズ

ClientCert-RSA-Modulus

RSA係数

ClientCert-RSA-Exponent

公開RSA指数

ClientCert-X509v3-Authority-Key-Identifier

X.509認証鍵の識別子

ClientCert-X509v3-Basic-Constraints

X.509基本制約

ClientCert-Signature-Algorithm

証明書の署名アルゴリズム

ClientCert-Signature

証明書の署名

クライアントIPおよびポート アドレス ヘッダー

NATにより、クライアントIPアドレスおよび宛先TCPポート番号の情報が変更されます。
client-ip-port
を指定すると、SSLモジュールがHTTPヘッダーのクライアントIPアドレスおよびTCP宛先ポートの情報を挿入するので、サーバはクライアントIPアドレスおよび宛先ポート番号を確認できます。

カスタム ヘッダー

custom custom_string を指定すると、SSLモジュールは、ユーザ定義のヘッダーをそのままHTTPヘッダーに挿入します。HTTPヘッダー ポリシーごとに、最大16のカスタム ヘッダーを設定することができます。 custom_string には、最大240文字を含めることができます。


custom_stringの構文は、name:valueの形式です。スペースが含まれる場合は、custom_string を引用符で閉じる必要があります。たとえば、次のとおりです。

"SOFTWARE VERSION : 2.1(1)"


SSLセッション ヘッダー

セッション ヘッダー(セッションIDを含む)は、クライアント証明書をセッションIDに基づいてキャッシュするのに使用されます。またサーバが特定の暗号スイートに基づく接続を追跡する場合にも、セッション ヘッダーはセッションIDに基づいてキャッシュされます。SSLモジュールはすべてのSSLハンドシェイクの間は、すべてのセッション ヘッダーをHTTP要求に挿入しますが、セッションが再開すると、セッションIDのみを挿入します。

SSLモジュールをクライアントとして設定する場合、SSLモジュールは、モジュールとバックエンドSSLサーバ間の接続のセッションIDを挿入します。

session を指定すると、SSLモジュールは次のセッション ヘッダー形式で、SSL接続に特有の情報をバックエンド サーバに転送します。

 

挿入するフィールド
説明

Session-Id

SSLのセッションID

Session-Cipher-Name

対称暗号スイート

Session-Cipher-Key-Size

対称暗号鍵サイズ

Session-Cipher-Use-Size

対称暗号使用

HTTPヘッダー挿入の設定

HTTPヘッダー挿入を設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

ssl-proxy (config)# ssl-proxy policy http-header policy_name

HTTPヘッダー挿入を設定します。

ステップ 2

ssl-proxy(config-http-header-policy)# { prefix prefix_string | client-cert | client-ip-port | custom custom_string } | session ]

ヘッダーのプレフィクスまたはタイプを指定します。

ステップ 3

ssl-proxy(config-http-header-policy)# exit

configモードに戻ります。

ステップ 4

ssl-proxy(config)# ssl-proxy service service_name

SSLプロキシ サービスの名前を定義します。


service_name値は大文字/小文字の区別があります。


 

ステップ 5

ssl-proxy(config-ssl-proxy)# policy http-header http_header_policy_name

要求に対して、HTTPヘッダー ポリシーをプロキシ サーバに適用します。

次に、プレフィクスおよびセッション ヘッダーを挿入するように、SSLモジュールを設定する例を示します。

ssl-proxy (config)# ssl-proxy policy http-header ssl-offload
ssl-proxy(config-http-header-policy)# prefix SSL-OFFLOAD
ssl-proxy(config-http-header-policy)# session

ssl-proxy(config-http-header-policy)# custom "SOFTWARE VERSION:2.1(1)"

ssl-proxy(config-http-header-policy)# custom "module:SSL MODULE - CATALYST 6500"

ssl-proxy(config-http-header-policy)# custom type-of-proxy:server_proxy_1024_bit_key_size
ssl-proxy(config-http-header-policy)# exit
ssl-proxy(config)# ssl-proxy service ssl-offload
ssl-proxy(config-ssl-proxy)# policy http-header ssl-offload

 

標準HTTPヘッダーに加えて、次のヘッダー情報が挿入されます。

SSL-OFFLOAD-SOFTWARE VERSION:2.1(1)
SSL-OFFLOAD-module:SSL MODULE - CATALYST 6500
SSL-OFFLOAD-type-of-proxy:server_proxy_1024_bit_key_size
SSL-OFFLOAD-Session-Id:33:FF:2C:2D:25:15:3C:50:56:AB:FA:5A:81:0A:EC:E9:00:00:0A:03:00:60:
2F:30:9C:2F:CD:56:2B:91:F2:FF
SSL-OFFLOAD-Session-Cipher-Name:RC4-SHA
SSL-OFFLOAD-Session-Cipher-Key-Size:128
SSL-OFFLOAD-Session-Cipher-Use-Size:128

URL書き換えの設定

一般的なSSLオフロード環境では、SSLオフローダがセキュアなクライアントHTTP(HTTPS)接続を終了し、SSLトラフィックをクリアテキストに暗号化し、クリアテキストをHTTP接続経由でWebサーバに転送します。HTTPS接続は、バックエンド サーバで非セキュアなHTTP接続になります。バックエンド サーバは、クライアント接続がセキュアな接続として送信されたことを認識しません。

クライアントに戻されたデータにHTTPリダイレクション リンクが含まれ、クライアントがこのリンクに従う場合、クライアントはセキュアなドメインを脱退し、セキュアな接続でなくなります。クリア テキスト接続では、リダイレクトされたリンクをサーバから入手できない場合があります。

1つまたは複数のURL書き換えルールを設定することにより、バックエンド サーバからの非セキュアなHTTPリダイレクションに関する問題を回避することができます。書き換えルールは、それぞれSSLプロキシ リストのサービスに関連付けられます。URL書き換えルールでは、ドメインをhttp://からhttps://に書き換えすることにより、非セキュアなHTTP URLにリダイレクトされるというWebサイトの問題を解決します。URL書き換えを設定することにより、Webサーバへのすべてのクライアント接続がSSL接続になり、クライアントへのHTTPSコンテンツのセキュアな返信が保証されます。


) URL書き換え機能は、リダイレクション リンクの書き換えをサポートします。システムは、サーバからの応答でHTTPヘッダー フィールドの[Location:]のみをスキャンし、それに従って、ルールの書き換えを行います。URL書き換え機能では、組み込みリンクをサポートしません。


URL書き換え機能では、プロトコルおよび非デフォルト ポート(デフォルト ポートはクリアテキストではポート 80、SSLではポート 443)の書き換えを行います。

最大100のURLの書き換えポリシーの設定が可能で、各ポリシーにはSSLプロキシ サービスごとに最大32の書き換えルールが、また各ルールには最大200文字が含まれます。

URLの書き換えについて、次の注意事項に従ってください。

URLが正確に一致する場合は、ワイルドカード ルールより優先されます。接尾辞のワイルドカード ルールは、プレフィクスのワイルドカード ルールより優先されます。

たとえば、 www.cisco.com が最優先され、次に www.cisco.* 、および *.cisco.com の順になります。

1回につき1つの接尾辞またはプレフィクスのワイルドカード ルールを入力します。たとえば、同じポリシー内に www.cisco.* および www.cisco.c* を入力しないでください。同様に、 *w.cisco.com および *.cisco.com も同じポリシー内に入力しないでください。

同じポリシー内に、2つのURLの厳密一致ルールを入力しないでください。たとえば、同じポリシー内に www.cisco.com clearport 80 sslport 443 および www.cisco.com clearport 81 sslport 444 を入力しないでください。このような場合、2番めに入力されたルールが最初のルールを上書きします。

URLの書き換えは、オフロードおよびバックエンドの両方(HTTPからHTTPS、およびHTTPSからHTTP)で実行されます。ここでは、ポートの書き換えも含まれます。

URL書き換えを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

ssl-proxy(config)# ssl-proxy policy url-rewrite policy_name

URL書き換えのポリシーを設定します。

ステップ 2

ssl-proxy(config-url-rewrite-policy)# url url [clearport port_number3 ] [sslport port_number4 ]

URL書き換えルールを指定します。SSLプロキシ サービスごとに最大32の書き換えルールを、またルールごとに最大240文字を設定できます。


) 書き換えルールごとに、接尾辞またはプレフィクスのワイルドカード文字(*)を1回ずつ1つのみ入力してください。


 

ステップ 3

ssl-proxy(config-url-rewrite-policy)# exit

configモードに戻ります。

ステップ 4

ssl-proxy(config)# ssl-proxy service service_name

SSLプロキシ サービスの名前を定義します。


service_name値は大文字/小文字の区別があります。


 

ステップ 5

ssl-proxy(config-ssl-proxy)# policy url-rewrite policy_name

URL書き換えポリシーを適用します。

3.clearport port_numberは、書き換えされるURLのポート部分を指定します。デフォルトのクリアテキスト ポート80でない場合は、cleartext port_numberを指定します。

4.sslport port_numberは、書き換えの必要があるURLのポート部分を指定します。デフォルトのSSLポート443でない場合は、ssltext port_numberを指定します。

次に、URL書き換えポリシーを設定し、このポリシーをプロキシ サービスに適用する例を示します。

ssl-proxy(config)# ssl-proxy policy url-rewrite cisco_url
ssl-proxy(config-ssl-proxy)# url www.cisco.*
ssl-proxy(config-ssl-proxy)# url www.cisco.com clearport 81 sslport 444
ssl-proxy(config-ssl-proxy)# url wwwin.cisco.com clearport 81 sslport 440
ssl-proxy(config-ssl-proxy)# url 10.1.1.10 clearport 81 sslport 444
ssl-proxy(config-ssl-proxy)# exit
ssl-proxy(config)# ssl-proxy service cisco_service
ssl-proxy(config-ssl-proxy)# policy url-rewrite cisco_url
 

URL書き換えの例については、 表 4-1 を参照してください。

 

表 4-1 サーバ プロキシのルールおよび結果

URL書き換えルール
一致するURL
URL書き換え

url www.cisco.com

http://www.cisco.com/

https://www.cisco.com/

url www.cisco.com clearport 81

http://www.cisco.com:81/

https://www.cisco.com/

url www.cisco.com sslport 444

http://www.cisco.com/

https://www.cisco.com:444/

url www.cisco.com clearport 81 sslport 444

http://www.cisco.com:81/

https://www.cisco.com:444/

NATの設定

クライアント接続では、クライアントが接続要求を送信し、SSLサービス モジュールがこれを受信します。サーバ接続では、SSLサービス モジュールが接続要求を送信します。

サーバ接続にはクライアントNAT、サーバNAT、またはその両方を設定できます。

サーバNAT

ssl-proxy service コマンドを使用して設定されたサーバIPアドレスは、SSLサービス モジュールがプロキシとして機能する、Content Switching Module(CSM)または実サーバのいずれかの宛先装置のIPアドレスとポートを指定します。サーバNATを設定すると、サーバIPアドレスはサーバ接続の宛先IPアドレスとして使用されます。サーバNATが設定されていない場合、サーバ接続の宛先IPアドレスはSSLサービス モジュールがプロキシ対象とする virtual ipaddress と同じです。SSLサービス モジュールは常に、 server ipaddress サブコマンドに入力されたポート番号を使用してポート変換を行います。

サーバNATを設定するには、 ssl-proxy service コマンドの下に nat server サブコマンドを入力します。

 

コマンド
目的

ステップ 1

ssl-proxy (config)# ssl-proxy service ssl_proxy_name

SSLプロキシ サービスを定義します。

ステップ 2

ssl-proxy (config-ssl-proxy)# nat server

指定されたサービスのSSLオフロード サーバ接続に対して、NATサーバ アドレスをイネーブルにします。

クライアントNAT

クライアントNATを設定すると、サーバ接続の送信元IPアドレスおよびポートはNATプールから取得されます。クライアントNATが設定されていない場合、サーバ接続の送信元IPアドレスおよびポートは、クライアント接続の送信元IPアドレスおよび送信元ポートから取得されます。

SSLサービス モジュールがサポートする合計接続数(256,000接続)が満たされるように、十分な数のIPアドレスを割り当ててください。各IPアドレスに32,000個のポートを割り当てる場合は、NATプールに8個のIPアドレスを設定します。SSLサービス モジュールがサポートする合計接続数に必要なIPアドレスよりも少ないIPアドレスを設定しようとすると、コマンドは拒否されます。

NATプールを設定して、プロキシ サービスにNATプールを割り当てる手順は、次のとおりです。

 

コマンド
目的

ステップ 1

ssl-proxy (config)# ssl-proxy natpool natpool_name start_ip_addr end_ip_addr netmask

SSLサービス モジュールがクライアントNATを実装するために使用するIPアドレスのプールを定義します。

ステップ 2

ssl-proxy (config-ssl-proxy)# ssl-proxy service ssl_proxy_name

SSLプロキシ サービスを定義します。

ステップ 3

ssl-proxy (config-ssl-proxy)# nat client natpool_name

指定されたサービスのSSLオフロード サーバ接続に使用されるクライアント アドレス用のNATプールを設定します。

冗長性の設定

SSLサービス モジュールとCSMを組み合わせたシステムでは、CSMのフェールオーバー機能により、SSLモジュール上でステートレス冗長性が提供されます。SSLモジュールがスタンドアロン構成(ポリシーベース ルーティングを使用)で使用される際は、Hot Standby Routing Protocol(HSRP)に冗長性を提供するよう設定することができます。

HSRPを設定する際は、次の制約事項に従ってください。

SSLモジュールごとに最大16のHSRPを設定することができます。

1つのSSLモジュールまたは1つのプロキシ サービスに対して、HSRPを設定することができます。

1つのモジュール設定を変更しても、冗長モジュールに自動的に伝播しません。冗長システムのすべてのSSLモジュールに、設定変更を手動で適用する必要があります。

SSLモジュール ソフトウェアにより、ステートレス冗長性のみが提供されます。スタンバイ モジュールがアクティブ モジュールの機能を引き継ぐと、既存の接続は失われます。アクティブ モジュールで使用可能な設定と同じ設定を使用して、スタンバイ(現アクティブ) モジュールで新しい接続を確立します。

SSLモジュールにHSRPを設定する前に、次の手順を実行します。

1. プロキシ サービスを設定します。仮想IPアドレスを指定する場合は、 secondary キーワードを入力します。

プロキシ サービスの設定については、「SSLプロキシ サービスの設定」を参照してください。

2. プロキシ サービスにクライアントNATを設定します。

クライアントNATの設定については、「クライアントNAT」を参照してください。

3. ポリシーベース ルーティングを設定します。ネクスト ホップIPアドレスは、以下で指定されるスタンバイIPアドレスです。

ポリシーベース ルーティングの設定については、「ポリシーベース ルーティングの設定」を参照してください。

SSLサービス モジュールにHSRPを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

ssl-proxy(config-vlan)# standby [ group_number ] ip ip_address

HSRPをイネーブルにして、HSRP IPアドレスを指定します。 group_number を指定しない場合、グループ0が使用されます。

ステップ 2

ssl-proxy(config-vlan)# standby [ group_number ] priority priority

(任意)このモジュールで、HSRPグループへのプライオリティを指定します。デフォルトの group_number は、100です。最高のプライオリティを持つモジュールが、HSRPグループでアクティブになります。

ステップ 3

ssl-proxy(config-vlan)# standby [ group_number ] [ preempt ] [ delay delay ]

(任意)現在のアクティブHSRPグループに取って代わるようにグループを設定し、グループのプライオリティが現在のアクティブ インターフェイスより高くなると、アクティブになります。

ステップ 4

ssl-proxy(config-vlan)# standby [ group_number ] timers hellotime holdtime

(任意)グループに対して、HSRP helloタイマーおよびホールドタイム タイマーを設定します。デフォルト値は、3(hello)および10(ホールドタイム)です。HSRPグループのすべてのモジュールでは、同じタイマー値を使用する必要があります。

ステップ 5

ssl-proxy(config-vlan)# standby [ group_number ] authentication string

(任意)グループに対して、クリアテキストHSRP認証ストリングを指定します。HSRPグループのすべてのモジュールでは、同じ認証ストリングを使用する必要があります。

次に、SSLモジュールにHSRPを設定する例を示します。

ssl-proxy(config)# ssl-proxy vlan 100
ssl-proxy(config-vlan)# ipaddr 10.1.0.20 255.255.255.0
ssl-proxy(config-vlan)# gateway 10.1.0.1
ssl-proxy(config-vlan)# admin
ssl-proxy(config-vlan)# standby 1 ip 10.1.0.21
ssl-proxy(config-vlan)# standby 1 priority 110
ssl-proxy(config-vlan)# standby 1 preempt
ssl-proxy(config-vlan)# standby 2 ip 10.1.0.22
ssl-proxy(config-vlan)# standby 2 priority 100
ssl-proxy(config-vlan)# standby 2 preempt
ssl-proxy(config-vlan)# end
ssl-proxy#
 
 

TACACS、TACACS+、およびRADIUSの設定

TACACS、TACACS+、およびRADIUSの設定については、次のURLを参照してください。

Cisco IOS Security Configuration Guide Release 12.2 の「Configuring RADIUS」

http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fsecur_c/fsecsp/scfrad.htm

Cisco IOS Security Configuration Guide Release 12.2 の「Configuring TACACS+」

http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fsecur_c/fsecsp/scftplus.htm

SNMPトラップの設定

サポート対象のMIB(管理情報ベース)のリストについては、表 1-1を参照してください。


) MIBの詳細については、次のURLを参照してください。

http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml


SNMP(簡易ネットワーク管理プロトコル)トラップをイネーブルにする手順は、次のとおりです。

 

コマンド
目的

ステップ 1

ssl-proxy(config)# snmp-server host addr traps version version ssl-proxy

トラップが送信される外部ネットワーク管理デバイスのIPアドレスを指定します。

ステップ 2

ssl-proxy(config)# snmp-server enable traps ssl-proxy cert-expiring

(任意)SSLプロキシの証明書期限切れ通知トラップをイネーブルにします。


) 証明書の期限確認インターバルが0に設定されている場合、期限切れ通知トラップは送信されません。証明書の期限切れ警告のイネーブル化については、「証明書期限切れ警告の設定」を参照してください。



) 期限切れ通知トラップは、現在設定されているプロキシ サービスの証明書に対してのみ送信されます。


 

ステップ 3

ssl-proxy(config)# snmp-server enable traps ssl-proxy oper-status

(任意)SSLプロキシの動作ステータス通知トラップをイネーブルにします。

ステップ 4

ssl-proxy(config)# snmp-server queue-length length

(任意)キューが空になる前に、保持されるトラップ イベントの数を指定します。デフォルトの length は10です。有効値は1~100です。

ステップ 5

ssl-proxy# show snmp

SNMP情報を表示します。

次に、SNMPトラップをイネーブルにする例を示します。

ssl-proxy# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
ssl-proxy(config)# snmp-server host 10.1.1.1 traps version 2c ssl-proxy
ssl-proxy(config)# snmp-server enable traps ssl-proxy cert-expiring
*Nov 27 03:47:10.739:%STE-6-PROXY_CERT_EXPIRING_TRAP_ENABLED:SNMP trap for proxy service
certificate expiration warning has been enabled.
ssl-proxy(config)# snmp-server enable traps ssl-proxy oper-status
*Nov 27 03:46:59.607:%STE-6-PROXY_OPER_STATUS_TRAP_ENABLED:SNMP trap for proxy service
operational status change has been enabled.
ssl-proxy(config)# snmp-server queue-length 256
ssl-proxy(config)# end
 
ssl-proxy# show snmp
0 SNMP packets input
0 Bad SNMP version errors
0 Unknown community name
0 Illegal operation for community name supplied
0 Encoding errors
0 Number of requested variables
0 Number of altered variables
0 Get-request PDUs
0 Get-next PDUs
0 Set-request PDUs
8 SNMP packets output
0 Too big errors (Maximum packet size 1500)
0 No such name errors
0 Bad values errors
0 General errors
0 Response PDUs
8 Trap PDUs
 
SNMP logging:enabled
Logging to 10.1.1.1.162, 0/256, 0 sent, 0 dropped.
ssl-proxy#

暗号セルフテストのイネーブル化


) 電源投入時暗号チップ セルフテストおよび鍵テストは、起動時に1回のみ行われます。



) セルフテストはトラブルシューティング専用です。このテストを実行すると、実行時のパフォーマンスに影響します。


セルフテストを実行する手順は、次のとおりです。

 

コマンド
目的

ssl-proxy(config)# ssl-proxy crypto self-test time-interval time

暗号セルフテストをイネーブルにします。 time のデフォルト値は3秒です。有効範囲は1~8秒です。

次に、暗号セルフテストをイネーブルにして、暗号情報を表示する例を示します。

ssl-proxy(config)# ssl-proxy crypto self-test time-interval 1
ssl-proxy(config)# end

統計情報の表示

統計情報を表示する手順は、次のとおりです。

 

コマンド
目的

ssl-proxy(config)# show ssl-proxy stats { crypto | hdr | ipc | pki [ auth | cache | cert-header | database | expiring | history | ipc | memory ] | service | ssl | tcp | url }

指定された統計情報を表示します。

次に、ヘッダー挿入情報を表示する例を示します。

ssl-proxy# show ssl-proxy stats hdr
Header Insert Statistics:
Session Headers Inserted :1 Custom Headers Inserted :0
Session Id's Inserted :2 Client Cert. Inserted :0
Client IP/Port Inserted :0
No End of Hdr Detected :0 Payload no HTTP header :0
Desc Alloc Failed :0 Buffer Alloc Failed :0
Client Cert Errors :0 No Service :0
 

次に、暗号情報を表示する例を示します。

ssl-proxy# show ssl-proxy stats crypto
Crypto Statistics from SSL Module:1
Self-test is running
Current device index is 1
Time interval between tests is 1 seconds
Device 0 statistics:
Total Number of runs:50
Runs all passed:50
Number of timer error:0
---------------------------------------------------------
Test Name Passed Failed Did-not-run
---------------------------------------------------------
0 Power-on Crypto chip sel 1 0 0
1 Power-on Crypto chip key 1 0 0
2 Hash Test Case 1 50 0 0
3 Hash Test Case 2 50 0 0
4 Hash Test Case 3 50 0 0
5 Hash Test Case 4 50 0 0
6 SSL3 MAC Test Case 1 50 0 0
7 SSL3 MAC Test Case 2 50 0 0
8 TLS1 MAC Test Case 1 50 0 0
9 TLS1 MAC Test Case 2 50 0 0
10 DES Server Test 50 0 0
11 DES Encrypt Test 1 50 0 0
12 DES Decrypt Test 1 50 0 0
13 DES Encrypt Test 2 50 0 0
14 DES Decrypt Test 2 50 0 0
15 ARC4 Test Case 1 50 0 0
16 ARC4 Test Case 2 50 0 0
17 ARC4 Test Case 3 50 0 0
18 ARC4 State Test Case 1 50 0 0
19 ARC4 State Test Case 2 50 0 0
20 ARC4 State Test Case 3 50 0 0
21 ARC4 State Test Case 4 50 0 0
22 HMAC Test Case 1 50 0 0
23 HMAC Test Case 2 50 0 0
24 Random Bytes Generation 50 0 0
25 RSA Encrypt/Decrypt Test 50 0 0
26 Master Secret Generation 50 0 0
27 Key Material Generation 50 0 0
28 SSL3 Handshake Hash Test 50 0 0
29 TLS1 Handshake Hash Test 50 0 0
 
Device 1 statistics:
Total Number of runs:49
Runs all passed:49
Number of timer error:0
---------------------------------------------------------
Test Name Passed Failed Did-not-run
---------------------------------------------------------
0 Power-on Crypto chip sel 1 0 0
1 Power-on Crypto chip key 1 0 0
2 Hash Test Case 1 50 0 0
3 Hash Test Case 2 50 0 0
4 Hash Test Case 3 50 0 0
5 Hash Test Case 4 50 0 0
6 SSL3 MAC Test Case 1 50 0 0
7 SSL3 MAC Test Case 2 50 0 0
8 TLS1 MAC Test Case 1 50 0 0
9 TLS1 MAC Test Case 2 50 0 0
10 DES Server Test 50 0 0
11 DES Encrypt Test 1 50 0 0
12 DES Decrypt Test 1 50 0 0
13 DES Encrypt Test 2 50 0 0
14 DES Decrypt Test 2 50 0 0
15 ARC4 Test Case 1 50 0 0
16 ARC4 Test Case 2 50 0 0
17 ARC4 Test Case 3 50 0 0
18 ARC4 State Test Case 1 49 0 0
19 ARC4 State Test Case 2 49 0 0
20 ARC4 State Test Case 3 49 0 0
21 ARC4 State Test Case 4 49 0 0
22 HMAC Test Case 1 49 0 0
23 HMAC Test Case 2 49 0 0
24 Random Bytes Generation 49 0 0
25 RSA Encrypt/Decrypt Test 49 0 0
26 Master Secret Generation 49 0 0
27 Key Material Generation 49 0 0
28 SSL3 Handshake Hash Test 49 0 0
29 TLS1 Handshake Hash Test 49 0 0
 

次に、Public Key Infrastructure(PKI;公開鍵インフラストラクチャ)証明書認証および許可の統計を表示する例を示します。

ssl-proxy# show ssl-proxy stats pki auth
Authentication request timeout:240 seconds
Max in process:100 (requests)
Max queued before dropping:0 (requests)
Certificate Authentication & Authorization Statistics:
Requests started:2
Requests finished:2
Requests pending to be processed:0
Requests waiting for CRL:0
Signature only requests:0
Valid signature:0
Invalid signature:0
Total number of invalid certificates:0
Approved with warning (no crl check):2
Number of times polling CRL:0
No certificates present:0
Failed to get CRL:0
Not authorized (e.g. denied by ACL):0
Root certificates not self-signed:0
Verify requests failed (e.g. expired or CRL operation failed):0
Unknown failure:0
Empty certificate chain:0
No memory to process requests:0
DER encoded certificates missing:0
Bad DER certificate length:0
Failed to get key from certificate:0
Issuer CA not in trusted CA pool:0
Issuer CA certificates not valid yet:0
Expired issuer CA certificates:0
Peer certificates not valid yet:0
Expired peer certificates:0
 

次に、PKIピア証明書のキャッシュ統計を表示する例を示します。

ssl-proxy# show ssl-proxy stats pki cache
Peer certificate cache size:0 (entries), aging timeout:30 (minutes)
Peer certificate cache statistics:
In use:0 (entries)
Cache hit:0
Cache miss:0
Cache allocated:0
Cache freed:0
Cache entries expired:0
Cache error:0
Cache full (wrapped around):0
No memory for caching:0
 
 

クラッシュ情報の収集

クラッシュ情報機能は、ソフトウェア強制リセット問題を修正する開発者に必要な情報を収集します。ソフトウェア強制リセット情報を収集するには、 show ssl-proxy crash-info コマンドを入力します。ソフトウェア強制リセットを複数回行った場合は、最後のクラッシュ情報のみが表示されます。 show ssl-proxy crash-info コマンドが情報収集プロセスを完了するまでに、1~6分かかります。


show stackコマンドは、SSLサービス モジュールのソフトウェア強制リセット情報を収集するためにサポートされているコマンドではありません。


次に、ソフトウェア強制リセット情報を収集する例を示します。

ssl-proxy# show ssl-proxy crash-info
 
===== SSL SERVICE MODULE - START OF CRASHINFO COLLECTION =====
 
 
------------- COMPLEX 0 [FDU_IOS] ----------------------
 
NVRAM CHKSUM:0xEB28
NVRAM MAGIC:0xC8A514F0
NVRAM VERSION:1
 
++++++++++ CORE 0 (FDU) ++++++++++++++++++++++
 
CID:0
APPLICATION VERSION:2003.04.15 14:50:20 built for cantuc
APPROXIMATE TIME WHEN CRASH HAPPENED:14:06:04 UTC Apr 16 2003
THIS CORE DIDN'T CRASH
TRACEBACK:222D48 216894
CPU CONTEXT -----------------------------
 
$0 :00000000, AT :00240008, v0 :5A27E637, v1 :000F2BB1
a0 :00000001, a1 :0000003C, a2 :002331B0, a3 :00000000
t0 :00247834, t1 :02BFAAA0, t2 :02BF8BB0, t3 :02BF8BA0
t4 :02BF8BB0, t5 :00247834, t6 :00000000, t7 :00000001
s0 :00000000, s1 :0024783C, s2 :00000000, s3 :00000000
s4 :00000001, s5 :0000003C, s6 :00000019, s7 :0000000F
t8 :00000001, t9 :00000001, k0 :00400001, k1 :00000000
gp :0023AE80, sp :031FFF58, s8 :00000019, ra :00216894
LO :00000000, HI :0000000A, BADVADDR :828D641C
EPC :00222D48, ErrorEPC :BFC02308, SREG :34007E03
Cause 0000C000 (Code 0x0):Interrupt exception
 
CACHE ERROR registers -------------------
 
CacheErrI:00000000, CacheErrD:00000000
ErrCtl:00000000, CacheErrDPA:0000000000000000
 
PROCESS STACK -----------------------------
stack top:0x3200000
 
Process stack in use:
 
sp is close to stack top;
 
printing 1024 bytes from stack top:
 
031FFC00:06405DE0 002706E0 0000002D 00000001 .@]`.'.`...-....
031FFC10:06405DE0 002706E0 00000001 0020B800 .@]`.'.`..... 8.
031FFC20:031FFC30 8FBF005C 14620010 24020004 ..|0.?.\.b..$...
...........
...........
...........
FFFFFFD0:00000000 00000000 00000000 00000000 ................
FFFFFFE0:00627E34 00000000 00000000 00000000 .b~4............
FFFFFFF0:00000000 00000000 00000000 00000006 ................
 
 
===== SSL SERVICE MODULE - END OF CRASHINFO COLLECTION =======
 

VTSデバッグのイネーブル化

SSLサービス モジュールの複数のプロセッサ(FDU、TCP、SSL)をデバッグするために、モジュールにはVirtual Terminal Server(VTS;仮想端末サーバ)が搭載されています。


) TCPデバッグ コマンドは、負荷がほとんどない場合(仮想サーバまたは実サーバに接続が確立されていない場合など)に、基本的な接続問題のトラブルシューティングを行うときのみ使用してください。

TCPデバッグ コマンドを使用すると、TCPモジュールはコンソールにデバッグ情報を大量に表示するため、これによってモジュールのパフォーマンスが大幅に低下することがあります。モジュールのパフォーマンスが低いと、TCP接続タイマー、パケット、およびステート移行の処理に遅延が生じることがあります。


SSLサービス モジュールのFDU(ポート2001)、TCP(ポート2002)、およびSSL(ポート2003)プロセッサに到達できるように、ワークステーションまたはPCからモジュールのVLAN IPアドレスの1つにTelnet接続を確立します。

デバッグ情報を表示する手順は、次のとおりです。

 

コマンド
目的
ssl-proxy# [ no ] debug ssl-proxy { fdu | ssl | tcp } [ type ]

指定されたシステム コンポーネントのデバッグ フラグをオンまたはオフにします。

Telnet接続を確立後、SSLサービス モジュール コンソールから debug ssl-proxy { tcp | fdu | ssl }コマンドを入力します。クライアントから接続が1つ送信されて、TCPコンソールにログが表示されます。

次に、接続のTCP状態のログを表示して、デバッグ状態を確認する例を示します。

ssl-proxy# debug ssl-proxy tcp state
ssl-proxy# show debugging
STE Mgr:
STE TCP states debugging is on
 

次に、ワークステーションまたはPCの出力の例を示します。

Conn 65066 state CLOSED --> state SYN_RECEIVED
Conn 65066 state SYN_RECEIVED --> state ESTABLISHED
Conn 14711 state CLOSED --> state SYN_SENT
Conn 14711 state SYN_SENT --> state ESTABLISHED
Conn 14711 state ESTABLISHED --> state CLOSE_WAIT
Conn 65066 state ESTABLISHED --> state FIN_WAIT_1
Conn 65066 state FIN_WAIT_1 --> state FIN_WAIT_2
Conn 65066 state FIN_WAIT_2 --> state TIME_WAIT
Conn 14711 state CLOSE_WAIT --> state LAST_ACK
Conn 14711 state LAST_ACK --> state CLOSED
##############Conn 65066 state TIME_WAIT --> state CLOSED