本記事について
本記事では、Citrix 社の ADC 製品である NetScaler (旧称 Citrix ADC) について、仮想アプリ・仮想デスクトップ配信システムである Citrix Virtual Apps and Desktops への通信を中継する機能である ICA プロキシを実現するための設定方法について説明します。
なお、ICA プロキシではクライアント認証を行うため認証関連の設定も必要になりますが、認証方式は様々あり方式によって設定方法が異なります。そのため本記事では認証部分が何であっても共通で必要になる基本設定部分のみ説明し、認証関連設定については別の記事で説明することとします。
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- NetScaler VPX
- バージョン NS14.1 Build 21.57.nc
- Citrix Virtual Apps and Desktops 2402 LTSR
NetScaler における ICA プロキシとは
Citrix 社から提供されている VDI システムとして Citrix Virtual Apps and Desktops (CVAD) があります。
CVAD を利用する場合、組織内部ネットワーク内に関連するサーバを構築します。外部クライアントはフロントとなるサーバである StoreFront にアクセスして仮想デスクトップを利用することになります。
つまり、CVAD の StoreFront サーバはインターネットに公開する必要があります。また、StoreFront のデフォルトでは HTTP 通信を使用するためインターネット上を通る通信は暗号化されません。Citrix 社のドキュメントでは StoreFront を直接インターネットに公開することは非推奨とされています。
CVAD ユーザの多くは NetScaler の ICA プロキシを併用しています。
ICA プロキシを利用する場合、NetScaler は外部クライアントと StoreFront 間の通信を仲介します。StoreFront をインターネットに公開する必要は無くなり、代わりに NetScaler の ICA プロキシ用仮想サーバをインターネットに公開し、外部クライアントはこの仮想サーバ宛にアクセスします。さらに、外部クライアントと仮想サーバ間の通信は SSL で暗号化されます。これらはセキュリティ面で大きなメリットとなります。また、StoreFront と直接通信するクライアントが NetScaler に集約されるため通信経路上のネットワーク機器での通信制御をし易くなります。
- StoreFront を直接インターネットに公開しなくて済む
- 外部クライアントから仮想サーバ間のインターネット上の通信が SSL 暗号化される
- 通信経路上での通信制御がし易くなる
本記事での想定ネットワーク構成
本記事では以下のネットワーク構成を想定して設定を行います。
ICA プロキシの前提となる設定
NetScaler を ICA プロキシとして動作させるために前提となる設定について説明します。
なお、IPアドレス等のネットワーク基本設定については以下の記事を参照してください。
フィーチャーの設定
まず ICA プロキシを利用するに当たり必要なフィーチャーを有効化します。
「Configure」タブ左側メニューから「System > Settings」画面を開き、「Configure Basic Features」をクリックします。
以下画面で「SSL Offloading」「NetScaler Gateway」にチェックを入れて「OK」をクリックします。
以上でフィーチャーの設定は完了です。
DNS サーバの設定
NetScaler が内部の Citrix サーバと通信するため、その FQDN を解決できる DNS サーバを設定します。ここでは内部の AD サーバを DNS サーバとして設定します。
「Configure」タブ左側メニューから「Traffic Management > DNS > Name Servers」画面を開き、「Add」をクリックします。
以下画面で「IP Address」欄に DNS サーバのアドレスを入力して「Create」をクリックします。
Name Servers 画面で DNS サーバが追加されたことを確認します。
以上で DNS サーバの設定は完了です。
セッションポリシーの作成
ICA プロキシのために必要なセッションポリシーを作成します。クライアントからのアクセス方法としては Citrix Workspace App を使うパターンと Web ブラウザを使うパターンがありますが、ここではその両方をサポートできるよう2つのセッションポリシーを作成します。
Workspace App 向けセッションポリシーの作成
「Configure」タブ左側メニューから「NetScaler Gateway > Policies > Session」画面を開き、表示された画面で「Session Profiles」タブをクリックします。Session Profiles 画面で「Add」をクリックします。
まず「Name」に任意のプロファイル名を入力します。
続いて「Security」タブをクリックして開きます。「Default Authorization Action」の「Override Global」にチェックを入れ設定値を「ALLOW」にします。
続いて「Published Applications」タブをクリックして開きます。以下対象項目について「Override Global」にチェックを入れ値を設定します。
- ICA Proxy:「ON」にします
- Web Interface Address:
- StoreFront のストア URL を入力します
- ストア URL は StoreFront の管理コンソールで確認してください
- 本記事の想定環境の場合「http://citrixserver.shadowgarden.org/Citrix/mystore」です
- Web Interface Address Type:「IPV4」にします
- Single Sign-on Domain:
- StoreFront のドメインを指定します
- 本記事の想定環境の場合「shadowgarden.org」です
- Account Services Address:
- 「http://
StoreFront の FQDN
/」を入力します - 本記事の想定環境の場合「http://citrixserver.shadowgarden.org/」です
- 「http://
以上の設定ができたら画面下側にある「Create」をクリックします。
Session Profiles 画面でセッションプロファイルが追加されたことを確認します。
「Session Policies」タブをクリックして開き、Session Policies 画面で「Add」をクリックします。
セッションポリシー作成画面で以下各項目を設定し、「Create」をクリックします。
- Name:任意のポリシー名を入力します
- Profile:上の手順で作成したセッションプロファイルを選択します
- 「Advanced Policy」を選択します
- Expression:
- 「
HTTP.REQ.HEADER("User-Agent").CONTAINS("CitrixReceiver")
」と入力します
- 「
Session Policies 画面でセッションポリシーが追加されたことを確認します。
Web ブラウザ向けセッションポリシーの作成
「Configure」タブ左側メニューから「NetScaler Gateway > Policies > Session」画面を開き、表示された画面で「Session Profiles」タブをクリックします。Session Profiles 画面で「Add」をクリックします。
まず「Name」に任意のプロファイル名を入力します。
続いて「Security」タブをクリックして開きます。「Default Authorization Action」の「Override Global」にチェックを入れ設定値を「ALLOW」にします。
続いて「Published Applications」タブをクリックして開きます。以下対象項目について「Override Global」にチェックを入れ値を設定します。
- ICA Proxy:「ON」にします
- Web Interface Address:
- StoreFront の Web サイト URL を入力します
- Web サイト URL は StoreFront の管理コンソールで確認してください
- 本記事の想定環境の場合「http://citrixserver.shadowgarden.org/Citrix/mystoreWeb」です
- Web Interface Address Type:「IPV4」にします
- Single Sign-on Domain:
- StoreFront のドメインを指定します
- 本記事の想定環境の場合「shadowgarden.org」です
以上の設定ができたら画面下側にある「Create」をクリックします。
Session Profiles 画面でセッションプロファイルが追加されたことを確認します。
「Session Policies」タブをクリックして開き、Session Policies 画面で「Add」をクリックします。
セッションポリシー作成画面で以下各項目を設定し、「Create」をクリックします。
- Name:任意のポリシー名を入力します
- Profile:上の手順で作成したセッションプロファイルを選択します
- 「Advanced Policy」を選択します
- Expression:
- 「
HTTP.REQ.HEADER("User-Agent").CONTAINS("CitrixReceiver")
」と入力します
- 「
Session Policies 画面でセッションポリシーが追加されたことを確認します。
以上でセッションポリシーの作成は完了です。
サーバ証明書の作成
この後作成する仮想サーバにバインドするサーバ証明書が必要になります。
サーバ証明書の作成方法については以下の記事を確認してください。
NetScaler Gateway 仮想サーバの作成
ICA プロキシとなる NetScaler Gateway 仮想サーバを作成します。
「Configure」タブ左側メニューから「NetScaler Gateway > Virtual Servers」画面を開き、表示された画面で「Add」をクリックします。
以下の画面が表示されるため各項目を設定します。
- Name:任意の仮想サーバ名を入力します
- Protocol:「SSL」を指定します
- IP Address Type:「IP Address」を指定します
- IPAddress:仮想サーバに設定する VIP を入力します
- Port:仮想サーバのリッスンポートを指定します。特別な要件が無ければ 443 のままとします
- More:クリックして詳細な項目を表示させます
「More」をクリックして表示される項目の中の「ICA Only」にチェックを入れます。
以上の設定ができたら画面下側にある「OK」をクリックします。
以下の画面が表示されるため、「Certificates」欄にある「No Server Certificate」をクリックします。
以下画面で「Click to select」をクリックします。
以下画面ではバインドする証明書を選択して「Select」をクリックします。
以下画面に戻ったら「Bind」をクリックします。
以下の画面に戻ったら「1 Server Certificate」と表示されていることを確認して「Continue」をクリックします。
表示された画面の一番下にある「Policies」欄の「+」マークをクリックします。
以下画面で「Continue」をクリックします。
以下画面では「Click to select」をクリックします。
以下画面でセッションポリシー一覧が表示されます。まず Workspace App 接続用に作成しておいたセッションポリシーを選択し「Select」をクリックします。
以下画面に戻ったら「Bind」をクリックします。
以下画面に戻ったら再度「+」マークをクリックします。
以下画面で「Continue」をクリックします。
以下画面では「Add Binding」をクリックします。
以下画面では「Click to select」をクリックします。
以下画面では Web ブラウザ接続用に作成しておいたセッションポリシーを選択し「Select」をクリックします。
以下画面に戻ったら「Bind」をクリックします。
以下画面では「Close」をクリックします。
以下画面に戻ったら「2 Session Policies」と表示されていることを確認します。
画面右側の「Advanced Settings」の中にある「Published Applications」をクリックします。
以下の「Published Applications」が表示されます。「No STA Server」をクリックします。
以下の画面が表示されます。各項目を設定して「Bind」をクリックします。
- Secure Ticket Authority Server:
- 「http://
CVADデリバリーコントローラのFQDN
/Scripts/CtxSta.dll」を入力します - 本記事の想定環境では CVAD のデリバリーコントローラは StoreFront と同じサーバにインストールしているため「http://citrixserver.shadowgarden.org/Scripts/CtxSta.dll」となります
- 「http://
- Secure Ticket Authority Server Address Type:「IPV4」を設定します
以下の画面に戻ったら「1 STA Server」と表示されていることを確認します。以上で仮想サーバの設定は完了のため画面一番下の「Done」をクリックします。
Virual Servers 画面に戻ったら仮想サーバが追加されていることを確認します。また STATE と STA STATUS が UP になっていることを確認します。
STATE が Down になっている場合、適切なサーバ証明書がバインドされていない可能性があります。STA STATUS が Down になっている場合、CVAD デリバリーコントローラと疎通ができていないか、デリバリーコントローラのサービスが正常に動作していない可能があります。
以上で仮想サーバの設定は完了です。
認証方式別の認証プロファイルの作成と仮想サーバへのバインド
ICA プロキシを動作させるためにはここまでの基本設定に加えて、認証方式に合わせた認証プロファイルまたは認証ポリシーを作成して仮想サーバにバインドする必要があります。
認証方式には様々なパターンがあるため、各方式の設定方法については別の記事で説明します。記事を作成したらここにリンクを追加していく予定です。
LDAP(AD サーバ)認証の場合
Citrix NetScaler の設計構築に役立つ関連記事一覧
- 基礎知識
- 冗長構成(HA構成)
- Citrix NetScaler 冗長構成(HA)設定ガイド ※note記事
- ネットワーク系設定
- 証明書関連
- Citrix Gateway 系設定
- 認証系設定
Amazon アフィリエイトリンク
以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。
note メンバーシップへの参加もお待ちしています!
【アフィリエイト】おすすめ WordPress テーマ【SWELL】
当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。
また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。
技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。
レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。
コメント