この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
• 「NATの設定」
• 「冗長性の設定」
プロキシ サービスにポリシーを適用する手順については、「SSLプロキシ サービスの設定」を参照してください。
ここでは、Secure Socket Layer(SSL)ポリシーおよびTCPポリシーの設定方法について説明します。
(注) 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ポリシーを関連付ける手順は、次のとおりです。
|
|
|
---|---|---|
|
||
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スタックの表記法と同じです。 |
|
|
||
|
||
|
||
|
||
|
エントリがセッション キャッシュ内に維持される時間を設定します。有効範囲は1~72,000秒です。 (注) セッションキャッシュ サイズを設定するには、absoluteキーワードが必要です。 (注) absoluteキーワードは、セッション エントリが指定されたtimeoutの間セッション キャッシュ内に維持されるよう指定します。 |
|
|
(任意)セッション キャッシュのサイズを指定します1。有効範囲は1~262,143エントリです。 (注) timeout session コマンドでabsoluteキーワードを入力して、セッション キャッシュのサイズを指定します。このコマンドを入力しない場合、またはsizeが指定されていない場合は、セッション キャッシュのサイズは最大サイズになります(262,144)。 |
(注) SSLサービス モジュールのTCPコマンドは、グローバルにも、また特定のプロキシ サーバにも適用されます。
TCPポリシー テンプレートを使用すると、TCPスタックに関連付けられたパラメータを定義することができます。
TCPポリシー テンプレートを定義して、特定のプロキシ サーバにTCPポリシーを関連付ける手順は、次のとおりです。
|
|
|
---|---|---|
|
||
|
||
|
生成されたSYNパケット内で接続が識別するMaximum Segment Size(MSS;最大セグメント サイズ)をバイト単位で設定します。 (注) このコマンドでは、プロキシ サーバのクライアント側およびサーバ側に異なるMSSを設定できます。デフォルト値は1,460バイトです。有効範囲は256~2,460バイトです2。 |
|
|
リアセンブリ キューが削除されるまでの時間を秒単位で設定します。トランザクションが指定時間内で完了されない場合は、リアセンブリ キューが削除され、接続が中断されます。デフォルト値は60秒です。有効範囲は0~960秒(0 = ディセーブル)です。 |
|
|
確立された接続が非アクティブである時間を秒単位で設定します。デフォルト値は600秒です。有効範囲は0~960秒(0 = ディセーブル)です。 |
|
|
||
|
接続ごとに共有する最大受信バッファをバイト単位で設定します。デフォルト値は32,768バイトです。有効範囲は8,192~262,144バイトです。 |
|
|
接続ごとに共有する最大送信バッファをバイト単位で設定します。デフォルト値は32,768バイトです。有効範囲は8,192~262,144バイトです。 |
一般的なSSLオフロード環境では、SSLオフローダがセキュアなクライアントHTTP(HTTPS)接続を終了し、SSLトラフィックをクリアテキストに暗号化し、クリアテキストをHTTP接続経由でWebサーバに転送します。HTTPS接続は、バックエンド サーバで非セキュアな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ヘッダーに挿入できる情報については、次のとおりです。
• 「プレフィクス」
prefix prefix_string を指定すると、SSLモジュールは、すべての挿入されたHTTPヘッダーに指定されたプレフィクスを追加します。プレフィクスを追加することにより、サーバは、他の装置ではなくSSLモジュールからの接続であることを認識できるようになります。プレフィクスは、クライアントからの標準HTTPヘッダーには追加されません。 prefix_string は、最大240文字を含めることができます。
クライアント証明書ヘッダー挿入により、バックエンド サーバは、SSLモジュールが認証および承認したクライアント証明書の属性を確認することができます。クライアント証明書ヘッダーは、セッションにつき1回だけ送信されます。サーバは、セッションID(ヘッダーと同様に挿入される)を使用して、これらの値をキャッシュするように見込まれます。後続の要求では、サーバはセッションIDを使用して、サーバ自体にキャッシュされたクライアント証明書を検索します。
(注) クライアントが証明書を送信しない場合は、SSLハンドシェイクが失敗します。データ フェーズまたはヘッダー挿入も行われません。
client-cert を指定すると、SSLモジュールがバックエンド サーバに次のヘッダーを転送します。
|
|
---|---|
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)"
セッション ヘッダー(セッションIDを含む)は、クライアント証明書をセッションIDに基づいてキャッシュするのに使用されます。またサーバが特定の暗号スイートに基づく接続を追跡する場合にも、セッション ヘッダーはセッションIDに基づいてキャッシュされます。SSLモジュールはすべてのSSLハンドシェイクの間は、すべてのセッション ヘッダーをHTTP要求に挿入しますが、セッションが再開すると、セッションIDのみを挿入します。
SSLモジュールをクライアントとして設定する場合、SSLモジュールは、モジュールとバックエンドSSLサーバ間の接続のセッションIDを挿入します。
session を指定すると、SSLモジュールは次のセッション ヘッダー形式で、SSL接続に特有の情報をバックエンド サーバに転送します。
|
|
---|---|
次に、プレフィクスおよびセッション ヘッダーを挿入するように、SSLモジュールを設定する例を示します。
ssl-proxy(config-http-header-policy)# custom "SOFTWARE VERSION:2.1(1)"
ssl-proxy(config-http-header-policy)# custom "module:SSL MODULE - CATALYST 6500"
標準HTTPヘッダーに加えて、次のヘッダー情報が挿入されます。
一般的な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が正確に一致する場合は、ワイルドカード ルールより優先されます。接尾辞のワイルドカード ルールは、プレフィクスのワイルドカード ルールより優先されます。
たとえば、 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書き換えルールを指定します。SSLプロキシ サービスごとに最大32の書き換えルールを、またルールごとに最大240文字を設定できます。 (注) 書き換えルールごとに、接尾辞またはプレフィクスのワイルドカード文字(*)を1回ずつ1つのみ入力してください。 |
|
|
||
|
(注) service_name値は大文字/小文字の区別があります。 |
|
|
次に、URL書き換えポリシーを設定し、このポリシーをプロキシ サービスに適用する例を示します。
URL書き換えの例については、 表 4-1 を参照してください。
|
|
|
---|---|---|
クライアント接続では、クライアントが接続要求を送信し、SSLサービス モジュールがこれを受信します。サーバ接続では、SSLサービス モジュールが接続要求を送信します。
サーバ接続にはクライアント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 サブコマンドを入力します。
|
|
|
---|---|---|
クライアントNATを設定すると、サーバ接続の送信元IPアドレスおよびポートはNATプールから取得されます。クライアントNATが設定されていない場合、サーバ接続の送信元IPアドレスおよびポートは、クライアント接続の送信元IPアドレスおよび送信元ポートから取得されます。
SSLサービス モジュールがサポートする合計接続数(256,000接続)が満たされるように、十分な数のIPアドレスを割り当ててください。各IPアドレスに32,000個のポートを割り当てる場合は、NATプールに8個のIPアドレスを設定します。SSLサービス モジュールがサポートする合計接続数に必要なIPアドレスよりも少ないIPアドレスを設定しようとすると、コマンドは拒否されます。
NATプールを設定して、プロキシ サービスにNATプールを割り当てる手順は、次のとおりです。
|
|
|
---|---|---|
ssl-proxy (config)# ssl-proxy natpool natpool_name start_ip_addr end_ip_addr netmask |
||
ssl-proxy (config-ssl-proxy)# ssl-proxy service ssl_proxy_name |
||
SSLサービス モジュールとCSMを組み合わせたシステムでは、CSMのフェールオーバー機能により、SSLモジュール上でステートレス冗長性が提供されます。SSLモジュールがスタンドアロン構成(ポリシーベース ルーティングを使用)で使用される際は、Hot Standby Routing Protocol(HSRP)に冗長性を提供するよう設定することができます。
• SSLモジュールごとに最大16のHSRPを設定することができます。
• 1つのSSLモジュールまたは1つのプロキシ サービスに対して、HSRPを設定することができます。
• 1つのモジュール設定を変更しても、冗長モジュールに自動的に伝播しません。冗長システムのすべてのSSLモジュールに、設定変更を手動で適用する必要があります。
• SSLモジュール ソフトウェアにより、ステートレス冗長性のみが提供されます。スタンバイ モジュールがアクティブ モジュールの機能を引き継ぐと、既存の接続は失われます。アクティブ モジュールで使用可能な設定と同じ設定を使用して、スタンバイ(現アクティブ) モジュールで新しい接続を確立します。
SSLモジュールにHSRPを設定する前に、次の手順を実行します。
1. プロキシ サービスを設定します。仮想IPアドレスを指定する場合は、 secondary キーワードを入力します。
プロキシ サービスの設定については、「SSLプロキシ サービスの設定」を参照してください。
クライアントNATの設定については、「クライアントNAT」を参照してください。
3. ポリシーベース ルーティングを設定します。ネクスト ホップIPアドレスは、以下で指定されるスタンバイIPアドレスです。
ポリシーベース ルーティングの設定については、「ポリシーベース ルーティングの設定」を参照してください。
SSLサービス モジュールにHSRPを設定する手順は、次のとおりです。
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
サポート対象のMIB(管理情報ベース)のリストについては、表 1-1を参照してください。
(注) MIBの詳細については、次のURLを参照してください。
http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml
SNMP(簡易ネットワーク管理プロトコル)トラップをイネーブルにする手順は、次のとおりです。
|
|
|
---|---|---|
|
||
|
(任意)SSLプロキシの証明書期限切れ通知トラップをイネーブルにします。 (注) 証明書の期限確認インターバルが0に設定されている場合、期限切れ通知トラップは送信されません。証明書の期限切れ警告のイネーブル化については、「証明書期限切れ警告の設定」を参照してください。 (注) 期限切れ通知トラップは、現在設定されているプロキシ サービスの証明書に対してのみ送信されます。 |
|
|
||
|
(任意)キューが空になる前に、保持されるトラップ イベントの数を指定します。デフォルトの length は10です。有効値は1~100です。 |
|
|
(注) 電源投入時暗号チップ セルフテストおよび鍵テストは、起動時に1回のみ行われます。
(注) セルフテストはトラブルシューティング専用です。このテストを実行すると、実行時のパフォーマンスに影響します。
|
|
---|---|
ssl-proxy(config)# ssl-proxy crypto self-test time-interval time |
次に、暗号セルフテストをイネーブルにして、暗号情報を表示する例を示します。
|
|
ssl-proxy(config)# show ssl-proxy stats { crypto | hdr | ipc | pki [ auth | cache | cert-header | database | expiring | history | ipc | memory ] | service | ssl | tcp | url } |
次に、Public Key Infrastructure(PKI;公開鍵インフラストラクチャ)証明書認証および許可の統計を表示する例を示します。
次に、PKIピア証明書のキャッシュ統計を表示する例を示します。
クラッシュ情報機能は、ソフトウェア強制リセット問題を修正する開発者に必要な情報を収集します。ソフトウェア強制リセット情報を収集するには、 show ssl-proxy crash-info コマンドを入力します。ソフトウェア強制リセットを複数回行った場合は、最後のクラッシュ情報のみが表示されます。 show ssl-proxy crash-info コマンドが情報収集プロセスを完了するまでに、1~6分かかります。
(注) show stackコマンドは、SSLサービス モジュールのソフトウェア強制リセット情報を収集するためにサポートされているコマンドではありません。
SSLサービス モジュールの複数のプロセッサ(FDU、TCP、SSL)をデバッグするために、モジュールにはVirtual Terminal Server(VTS;仮想端末サーバ)が搭載されています。
(注) TCPデバッグ コマンドは、負荷がほとんどない場合(仮想サーバまたは実サーバに接続が確立されていない場合など)に、基本的な接続問題のトラブルシューティングを行うときのみ使用してください。
TCPデバッグ コマンドを使用すると、TCPモジュールはコンソールにデバッグ情報を大量に表示するため、これによってモジュールのパフォーマンスが大幅に低下することがあります。モジュールのパフォーマンスが低いと、TCP接続タイマー、パケット、およびステート移行の処理に遅延が生じることがあります。
SSLサービス モジュールのFDU(ポート2001)、TCP(ポート2002)、およびSSL(ポート2003)プロセッサに到達できるように、ワークステーションまたはPCからモジュールのVLAN IPアドレスの1つにTelnet接続を確立します。
|
|
---|---|
|
Telnet接続を確立後、SSLサービス モジュール コンソールから debug ssl-proxy { tcp | fdu | ssl }コマンドを入力します。クライアントから接続が1つ送信されて、TCPコンソールにログが表示されます。
次に、接続のTCP状態のログを表示して、デバッグ状態を確認する例を示します。