Citrix ADC

SSL を使用した安全な負荷分散トラフィック

Citrix ADC SSLオフロード機能により、SSLトランザクションを実行するWebサイトのパフォーマンスが透過的に向上します。SSLオフロードでは、CPU負荷の高いSSL暗号化および復号化タスクをローカルWebサーバーからアプライアンスにオフロードすることにより、SSLデータの処理によるサーバーパフォーマンスの低下を引き起こすことなく、Webアプリケーションを安全に配信できます。SSLトラフィックを復号化すると、あらゆる標準サービスで処理できるようになります。SSLプロトコルは、さまざまな種類のHTTPおよびTCPデータとシームレスに機能して、このようなデータを使用するトランザクションに、セキュリティ保護されたチャネルを提供します。

SSLを設定するには、まずSSLを有効にする必要があります。次に、アプライアンスでHTTPまたはTCPサービスおよびSSL仮想サーバーを構成し、そのサービスを仮想サーバーにバインドします。証明書とキーのペアを追加してSSL仮想サーバーにバインドする必要もあります。Outlook Web Accessサーバーを使用する場合は、SSLサポートを有効にするアクションとそのアクションに適用するポリシーを作成する必要があります。SSL仮想サーバーは、暗号化された着信トラフィックをインターセプトして、ネゴシエートしたアルゴリズムを使用してそのトラフィックを復号化します。復号化されたデータは、アプライアンス上のほかのエンティティに転送され、適切に処理されます。

SSL オフロードの詳細については、SSLオフロードおよびSSLアクセラレーションを参照してください。

SSL 構成タスクシーケンス

SSLを設定するには、まずSSLを有効にする必要があります。次に、Citrix ADCアプライアンスでSSL仮想サーバーとHTTPまたはTCPサービスを作成する必要があります。最後に、有効なSSL証明書と設定済みのサービスを、SSL仮想サーバーにバインドする必要があります。

SSL仮想サーバーは、暗号化された着信トラフィックを傍受して、ネゴシエートしたアルゴリズムを使用してそのトラフィックを解読します。SSL仮想サーバーは、復号化されたデータをCitrix ADCアプライアンス上の他のエンティティに転送し、適切な処理を行います。

次のフローチャートには、基本的なSSLオフロードセットアップを設定するタスクの順序が示されています。

図1:SSL オフロードを設定するタスクのシーケンス

画像

SSL オフロードを有効にする

SSLオフロードを設定する前に、SSL機能を有効にする必要があります。SSL機能を有効にしなくてもアプライアンス上でSSLベースのエンティティを設定できますが、それらのエンティティはSSLを有効にするまで動作しません。

CLI を使用した SSL の有効化

コマンドプロンプトで次のコマンドを入力し、SSLオフロードを有効にして構成を確認します。

  • enable ns feature SSL
  • show ns feature
> enable ns feature ssl




Done


> show ns feature


Feature Acronym Status


------- ------- ------


1) Web Logging WL ON


2) SurgeProtection SP OFF


3) Load Balancing LB ON . . .


 9) SSL Offloading SSL ON


10) Global Server Load Balancing GSLB ON . .


Done >

GUI を使用した SSL の有効化

次の手順に従ってください。

  1. ナビゲーションウィンドウで、[ システム] を展開し、[ 設定] をクリックします。
  2. 詳細ペインの[Modes and Features]で、[Change basic features]をクリックします。
  3. [SSL Offloading]チェックボックスをオンにして、[OK]をクリックします。
  4. 機能を有効化/無効化しますか? メッセージボックスで、[はい] をクリックします。

HTTP サービスの作成

アプライアンス上の各サービスは、サーバー上の個々のアプリケーションとして機能します。構成したサービスは、アプライアンスがネットワーク上のサーバーにアクセスしてその状態を監視できるようになるまで無効状態になります。このトピックでは、HTTPサービスを作成する手順について説明します。

注:TCP トラフィックの場合は、このトピックおよび次のトピックの手順を実行しますが、HTTP サービスの代わりに TCP サービスを作成します。

CLI を使用した HTTP サービスの追加

コマンドプロンプトで次のコマンドを入力し、HTTPサービスを追加して構成を確認します。

  • add service <name> (<IP> | <serverName>) <serviceType> <port>
  • show service <name>

:

> add service SVC_HTTP1 10.102.29.18 HTTP 80


 Done


> show service SVC_HTTP1


        SVC_HTTP1 (10.102.29.18:80) - HTTP


        State: UP


        Last state change was at Wed Jul 15 06:13:05 2009


        Time since last state change: 0 days, 00:00:15.350


        Server Name: 10.102.29.18


        Server ID : 0   Monitor Threshold : 0


        Max Conn: 0     Max Req: 0      Max Bandwidth: 0 kbits


        Use Source IP: NO


        Client Keepalive(CKA): NO


        Access Down Service: NO


        TCP Buffering(TCPB): NO


        HTTP Compression(CMP): YES


        Idle timeout: Client: 180 sec   Server: 360 sec


        Client IP: DISABLED


        Cacheable: NO


        SC: OFF


        SP: OFF


        Down state flush: ENABLED





1)      Monitor Name: tcp-default


                State: UP       Weight: 1


                Probes: 4       Failed [Total: 0 Current: 0]


                Last response: Success - TCP syn+ack received.


                Response Time: N/A


 Done



GUI を使用して HTTP サービスを追加する

次の手順を実行します:

  1. [トラフィック管理] > [SSL オフロード] > [サービス] に移動します。
  2. 詳細ペインで、[Add]をクリックします。
  3. [Create Service]ダイアログボックスの[Service Name]、[Server]、および[Port]ボックスに、それぞれサービスの名前、IPアドレス、およびポート(たとえば、「SVC_HTTP1」、「10.102.29.18」、「80」)を入力します。
  4. [Protocol]ボックスの一覧で、サービスの種類(ここでは[HTTP])を選択します。
  5. [ 作成] をクリックし、[ 閉じる] をクリックします。構成したHTTPサービスが、[Services]ページに表示されます。
  6. サービスを選択し、ペインの下部にある [Details] セクションを表示して、構成したパラメータが正しく構成されていることを確認します。

SSL ベースの仮想サーバーの追加

基本的なSSLオフロードセットアップでは、SSL仮想サーバーは暗号化されたトラフィックをインターセプトおよび復号化して、仮想サーバーにバインドされているサービスにクリアテキストメッセージを送信します。CPU負荷の高いSSL処理をアプライアンス側にオフロードすると、バックエンドサーバーでより多くの要求を処理できるようになります。

CLI を使用して SSL ベースの仮想サーバーを追加する

コマンドプロンプトで次のコマンドを入力し、SSLベースの仮想サーバーを追加して構成を確認します。

  • add lb vserver <name> <serviceType> [<IPAddress> <port>]
  • show lb vserver <name>

注意:安全な接続を確保するには、有効にする前に、有効な SSL 証明書を SSL ベースの仮想サーバーにバインドする必要があります。

:

> add lb vserver vserver-SSL-1 SSL 10.102.29.50 443




  Done


  > show lb vserver vserver-SSL-1


  vserver-SSL-1 (10.102.29.50:443) - SSL Type: ADDRESS


  State: DOWN[Certkey not bound] Last state change was at Tue Jun 16 06:33:08 2009 (+176 ms)


  Time since last state change: 0 days, 00:03:44.120


  Effective State: DOWN Client Idle Timeout: 180 sec


  Down state flush: ENABLED


  Disable Primary Vserver On Down : DISABLED


  No. of Bound Services : 0 (Total) 0 (Active)


  Configured Method: LEASTCONNECTION Mode: IP


  Persistence: NONE


  Vserver IP and Port insertion: OFF


  Push: DISABLED Push VServer: Push Multi Clients: NO Push Label Rule: Done

GUI を使用して SSL ベースの仮想サーバーを追加する

次の手順を実行します:

  1. [トラフィック管理] > [SSL オフロード] > [仮想サーバー] に移動します。
  2. 詳細ウィンドウで、[ 追加] をクリックします。
  3. [Create Virtual Server (SSL Offload)]ダイアログボックスの[Name]、[IP Address]、および[Port]ボックスに、それぞれ仮想サーバーの名前、IPアドレス、およびポート(たとえば、「Vserver-SSL-1」、「10.102.29.50」、「443」)を入力します。
  4. [Protocol]ボックスの一覧で、仮想サーバーの種類(たとえば、[SSL])を選択します。
  5. [ 作成] をクリックし、[ 閉じる] をクリックします。
  6. 作成した仮想サーバーを選択して、ペインの下部にある[Details]セクションを表示し、パラメーターが正しく構成されていることを確認します。証明書とキーのペアとサービスがバインドされていないため、仮想サーバは DOWN としてマークされます。

注意:安全な接続を確保するには、有効にする前に、有効な SSL 証明書を SSL ベースの仮想サーバーにバインドする必要があります。

SSL 仮想サーバーへのサービスのバインド

SSL仮想サーバーが復号化した受信データは、その仮想サーバーにバインドされたサービスに転送されます。

アプライアンスとサーバーの間のデータ転送は、暗号化したりクリアテキストで送信したりできます。アプライアンスとサーバーの間のデータ転送を暗号化する場合、トランザクション全体がエンドツーエンドで保護されることになります。エンドツーエンドセキュリティ用にシステムを設定する方法の詳細については、SSLオフロードおよびSSLアクセラレーションを参照してください。

CLI を使用してサービスを仮想サーバーにバインドする

コマンドプロンプトで次のコマンドを入力し、サービスをSSL仮想サーバーにバインドして構成を確認します。

  • bind lb vserver <name> <serviceName>
  • show lb vserver <name>

:

> bind lb vserver vserver-SSL-1 SVC_HTTP1




  Done


  > show lb vserver vserver-SSL-1 vserver-SSL-1 (10.102.29.50:443) - SSL Type:


  ADDRESS State: DOWN[Certkey not bound]


  Last state change was at Tue Jun 16 06:33:08 2009 (+174 ms)


  Time since last state change: 0 days, 00:31:53.70


  Effective State: DOWN Client Idle


  Timeout: 180 sec


  Down state flush: ENABLED Disable Primary Vserver On Down :


  DISABLED No. of Bound Services : 1 (Total) 0 (Active)


  Configured Method: LEASTCONNECTION Mode: IP Persistence: NONE Vserver IP and


  Port insertion: OFF Push: DISABLED Push VServer: Push Multi Clients: NO Push Label Rule:





  1) SVC_HTTP1 (10.102.29.18: 80) - HTTP


  State: DOWN Weight: 1


  Done

GUI を使用してサービスを仮想サーバーにバインドする

  1. [トラフィック管理] > [SSL オフロード] > [仮想サーバー] に移動します。
  2. 詳細ペインで仮想サーバーを選択して、[Open]をクリックします。
  3. [Services]タブの[Active]列で、選択した仮想サーバーにバインドするサービスの横にあるチェックボックスをオンにします。
  4. [ OK] をクリックします。
  5. ウィンドウの下部にある [Details] セクションの [Number of Bound Services] カウンタが、仮想サーバーにバインドしたサービスの数だけ増加していることを確認します。

証明書キーペアの追加

SSL証明書は、SSLキー交換および暗号化/復号化プロセスに含まれるエレメントです。証明書は、SSLサーバーのアイデンティティを確立するためにSSLハンドシェイク中に使用されます。Citrix ADCアプライアンスにある有効な既存のSSL証明書を使用することも、独自のSSL証明書を作成することもできます。アプライアンスは、最大4096ビットのRSA/DSA証明書をサポートします。

注:信頼される証明機関から発行された有効なSSL証明書を使用することをお勧めします。無効な証明書や自分で作成した証明書は、一部のSSLクライアントと互換性がありません。

SSL処理に使用する前に、証明書を対応するキーとペアにする必要があります。次に、証明書とキーのペアを仮想サーバーにバインドすると、SSL処理に使用できるようになります。

CLI を使用した証明書キーペアの追加

コマンドプロンプトで次のコマンドを入力し、証明書とキーのペアを作成して構成を確認します。

  • add ssl certKey <certkeyName> -cert <string> [-key <string>]
  • show sslcertkey <name>

:

> add ssl certKey CertKey-SSL-1 -cert ns-root.cert -key ns-root.key




 Done


> show sslcertkey CertKey-SSL-1


   Name: CertKey-SSL-1 Status: Valid,


   Days to expiration:4811 Version: 3


   Serial Number: 00 Signature Algorithm: md5WithRSAEncryption Issuer: C=US,ST=California,L=San


   Jose,O=Citrix ANG,OU=NS Internal,CN=de fault


   Validity Not Before: Oct 6 06:52:07 2006 GMT Not After : Aug 17 21:26:47 2022 GMT


   Subject: C=US,ST=California,L=San Jose,O=Citrix ANG,OU=NS Internal,CN=d efault Public Key


   Algorithm: rsaEncryption Public Key


   size: 1024


 Done

GUI を使用した証明書キーペアの追加

次の手順を実行します:

  1. [トラフィック管理] > [SSL] > [証明書] に移動します。
  2. 詳細ウィンドウで、[ 追加] をクリックします。
  3. [Install Certificate]ダイアログボックスの[Certificate-Key Pair Name]ボックスに、追加する証明書とキーのペアの名前(たとえば、「Certkey-SSL-1」)を入力します。
  4. [Details]の[Certificate File Name]で、[Browse (Appliance)]をクリックして証明書を検索します。証明書とキーはともに、アプライアンスの/nsconfig/ssl/ディレクトリに保存されます。ローカルシステムにある証明書を使用するには、[Local]を選択します。
  5. 使用する証明書を選択して、[Select]をクリックします。
  6. [Private Key File Name]で、[Browse (Appliance)]をクリックして秘密キーファイルを検索します。ローカルシステムにある秘密キーを使用するには、[Local]を選択します。
  7. 使用するキーを選択して、[Select]をクリックします。証明書とキーのペアで使用するキーを暗号化するには、暗号化に使用するパスワードを[Password]ボックスに入力します。
  8. [Install] をクリックします。
  9. 証明書のキーペアをダブルクリックし、[証明書の詳細] ウィンドウで、パラメータが正しく設定され、保存されていることを確認します。

SSL 証明書のキーペアを仮想サーバーにバインドする

SSL証明書とそれに対応するキーをペアにしたら、証明書とキーのペアをSSL仮想サーバーにバインドして、SSL処理に使用できるようにする必要があります。セキュリティで保護されたセッションでは、クライアントコンピューターとアプライアンス上のSSLベースの仮想サーバーの間に接続を確立する必要があります。その後、仮想サーバーで着信トラフィックに対してSSL処理が実行されます。したがって、アプライアンスでSSL仮想サーバーを有効にする前に、有効なSSL証明書をSSL仮想サーバーにバインドする必要があります。

CLI を使用して SSL 証明書キーペアを仮想サーバーにバインドする

コマンドプロンプトで次のコマンドを入力し、SSL証明書とキーのペアを仮想サーバーにバインドして構成を確認します。

  • bind ssl vserver <vServerName> -certkeyName <string>
  • show ssl vserver <name>

:

> bind ssl vserver Vserver-SSL-1 -certkeyName CertKey-SSL-1




Done


> show ssl vserver Vserver-SSL-1





     Advanced SSL configuration for VServer Vserver-SSL-1:


     DH: DISABLED


     Ephemeral RSA: ENABLED Refresh Count: 0


     Session Reuse: ENABLED Timeout: 120 seconds


     Cipher Redirect: ENABLED


     SSLv2 Redirect: ENABLED


     ClearText Port: 0


     Client Auth: DISABLED


     SSL Redirect: DISABLED


     Non FIPS Ciphers: DISABLED


     SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED





1) CertKey Name: CertKey-SSL-1 Server Certificate


1) Cipher Name: DEFAULT


   Description: Predefined Cipher Alias


Done

GUI を使用して SSL 証明書のキーペアを仮想サーバーにバインドする

次の手順を実行します:

  1. [トラフィック管理] > [SSL オフロード] > [仮想サーバー] に移動します。
  2. 証明書とキーのペアをバインドする仮想サーバー(たとえば、[Vserver-SSL-1])を選択して、[Open]をクリックします。
  3. [Configure Virtual Server (SSL Offload)]ダイアログボックスの[SSL Settings]タブにある[Available]で、仮想サーバーにバインドする証明書とキーのペア(たとえば、[Certkey-SSL-1])を選択して、[Add]をクリックします。
  4. [ OK] をクリックします。
  5. 選択した証明書キーペアが [Configured] 領域に表示されていることを確認します。

Outlook Web アクセスのサポートを構成する

Citrix ADCアプライアンスでOutlook Web Access(OWA)サーバーを使用する場合は、OWAサーバーに送信されるHTTP要求に特別なヘッダーフィールド「FRONT-END-HTTPS:ON」を挿入するようにアプライアンスを構成する必要があります。これにより、サーバーがhttp://の代わりにhttps://でURLリンクを生成します。

注:HTTP ベースの SSL 仮想サーバーおよびサービスのみ OWA サポートを有効にできます。TCPベースのSSL仮想サーバーとSSLサービスではOWAをサポートできません。

OWAサポートを構成するには、次の操作を実行します。

  • OWAサポートを有効にするSSLアクションを作成します。
  • SSLポリシーを作成します。
  • ポリシーをSSL仮想サーバーにバインドします。

OWA サポートを有効にする SSL アクションを作成する

Outlook Web Access(OWA)サポートを有効にする前に、SSLアクションを作成する必要があります。SSLアクションはSSLポリシーにバインドされ、着信データがポリシーで指定された規則と一致すると実行されます。

CLI を使用して OWA のサポートを有効にする SSL アクションを作成する

コマンドプロンプトで次のコマンドを入力し、OWAサポートを有効にするSSLアクションを作成して構成を確認します。

  • add ssl action <name> -OWASupport ENABLED
  • show SSL action <name>

:

```
> add ssl action Action-SSL-OWA -OWASupport enabled




Done


> show SSL action Action-SSL-OWA


Name: Action-SSL-OWA


Data Insertion Action: OWA


Support: ENABLED


Done
```

GUI を使用して OWA のサポートを有効にする SSL アクションを作成する

次の手順を実行します:

  1. [トラフィック管理] > [SSL] > [ポリシー]に移動します。
  2. 詳細ウィンドウの [操作] タブで、[追加] をクリックします。
  3. [Create SSL Action]ダイアログボックスの[Name]ボックスに、「Action-SSL-OWA」と入力します。
  4. [Outlook Web Access]で、[Enabled]を選択します。
  5. [ 作成] をクリックし、[ 閉じる] をクリックします。
  6. [SSL アクション] ページにアクション SSL-OWA が表示されていることを確認します。

SSL ポリシーの作成

SSLポリシーは、ポリシーインフラストラクチャを使用して作成します。各SSLポリシーにはSSLアクションがバインドされ、アクションは、着信トラフィックがポリシーで設定された規則と一致すると実行されます。

CLI を使用した SSL ポリシーの作成

コマンドプロンプトで次のコマンドを入力し、SSLポリシーを作成して構成を確認します。

  • add ssl policy <name> -rule <expression> -reqAction <string>
  • show ssl policy <name>

:

> add ssl policy Policy-SSL-1 -rule ns_true -reqaction Action-SSL-OWA

Done

> show ssl policy Policy-SSL-1

Name: Policy-SSL-1 Rule: ns_true

Action: Action-SSL-OWA Hits: 0

Policy is bound to following entities

1) PRIORITY : 0

Done

GUI を使用した SSL ポリシーの作成

次の手順を実行します:

  1. [トラフィック管理] > [SSL] > [ポリシー]に移動します。
  2. 詳細ウィンドウで、[ 追加] をクリックします。
  3. [Create SSL Policy]ダイアログボックスの[Name]ボックスに、SSLポリシーの名前(たとえば、「Policy-SSL-1」)を入力します。
  4. [Request Action]で、このポリシーに関連付ける既存のSSLアクション(たとえば、[Action-SSL-OWA])を選択します。ns_true汎用式により、成功したSSLハンドシェイクトラフィックのすべてにこのポリシーが適用されます。特定の応答に対してのみポリシーを適用する必要がある場合は、より高い詳細レベルのポリシーを作成できます。詳細なポリシー式の設定の詳細については、「SSL アクションとポリシー」を参照してください。
  5. [Named Expressions]で、組み込みの汎用式ns_trueを選択し、[Add Expression]をクリックします。式ns_trueが[Expression]ボックスに表示されます。
  6. [ 作成] をクリックし、[ 閉じる] をクリックします。
  7. ポリシーを選択して、ペイン下部にある[Details]セクションを表示し、ポリシーが正しく構成されていることを確認します。

SSL ポリシーを SSL 仮想サーバーにバインドする

Outlook Web AccessにSSLポリシーを設定したら、Outlook着信トラフィックをインターセプトする仮想サーバーにポリシーをバインドします。着信データがSSLポリシーで構成された規則と一致すると、そのポリシーに関連付けられたアクションが実行されます。

CLI を使用した SSL 仮想サーバーへの SSL ポリシーのバインド

コマンドプロンプトで次のコマンドを入力し、SSLポリシーをSSL仮想サーバーにバインドして構成を確認します。

  • bind ssl vserver <vServerName> -policyName <string>
  • show ssl vserver <name>

:

> bind ssl vserver Vserver-SSL-1 -policyName Policy-SSL-1

 Done

> show ssl vserver Vserver-SSL-1

Advanced SSL configuration for VServer Vserver-SSL-1:

DH: DISABLED

Ephemeral RSA: ENABLED

Refresh Count: 0

Session Reuse: ENABLED

Timeout: 120 seconds

Cipher Redirect: ENABLED

SSLv2 Redirect: ENABLED

ClearText Port: 0

Client Auth: DISABLED

SSL Redirect: DISABLED

Non FIPS Ciphers: DISABLED

SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED

1) CertKey Name: CertKey-SSL-1 Server Certificate

1) Policy Name: Policy-SSL-1 Priority: 0

1) Cipher Name: DEFAULT Description: Predefined Cipher Alias

Done

GUI を使用して SSL ポリシーを SSL 仮想サーバーにバインドする

次の手順を実行します:

  1. [トラフィック管理] > [SSL オフロード] > [仮想サーバー] に移動します。
  2. 詳細ペインで仮想サーバー(たとえば、[Vserver-SSL-1])を選択して、[Open]をクリックします。
  3. [Configure Virtual Server (SSL Offload)]ダイアログボックスで[Insert Policy]をクリックし、SSL仮想サーバーにバインドするポリシーを選択します。必要に応じて、[Priority]ボックスをダブルクリックして、新しい優先度を入力することもできます。
  4. [ OK] をクリックします。