Citrix Gateway

ユーザーデバイスの事前認証セキュリティ式

Citrix Gateway は、ユーザーログオン時またはセッション中の他の構成時間に、セキュリティの向上に役立つさまざまなエンドポイントセキュリティチェックを提供します。これらのセキュリティチェックに合格したユーザーデバイスのみが、Citrix Gateway セッションを確立できます。

Citrix Gateway で構成できるユーザーデバイスのセキュリティチェックの種類は次のとおりです。

  • スパム対策
  • アンチウイルス
  • ファイルポリシー
  • インターネットセキュリティ
  • オペレーティングシステム
  • パーソナルファイアウォール
  • プロセスポリシー
  • レジストリポリシー
  • サービスポリシー

ユーザーデバイスでセキュリティチェックが失敗した場合、後続のチェックに合格するまで新しい接続は作成されません(定期的に行われるチェックの場合)。ただし、既存の接続を通過するトラフィックは、引き続きCitrix Gateway を介してトンネリングされます。

構成ユーティリティを使用して、ユーザーデバイスでセキュリティチェックを実行するように設計されたセッションポリシー内の事前認証ポリシーまたはセキュリティ式を構成できます。

ウイルス対策、ファイアウォール、インターネットセキュリティ、またはスパム対策の表現を構成する

ウイルス対策、ファイアウォール、インターネットセキュリティ、およびスパム対策ポリシーの設定は、[ 式の追加 ] ダイアログボックスで構成します。各ポリシーの設定は同じです。違いは、選択した値です。たとえば、ユーザーデバイスのノートンアンチウイルスバージョン 10 と ZoneAlarm Pro をチェックする場合、セッションまたは事前認証ポリシー内に、各アプリケーションの名前とバージョン番号を指定する 2 つの式を作成します。

式の種類として Client Security を選択すると、次の項目を構成できます。

  • コンポーネント:アンチウイルス、ファイアウォール、レジストリエントリなど、クライアントセキュリティの種類。
  • 名前: アプリケーション、プロセス、ファイル、レジストリエントリ、またはオペレーティングシステムの名前。
  • 修飾子:式がチェックするコンポーネントのバージョンまたは値。
  • 演算子:値が存在するかどうか、または値と等しいかどうかを確認します。
  • 値:ユーザーデバイス上のウイルス対策、ファイアウォール、インターネットセキュリティ、またはスパム対策ソフトウェアのアプリケーションバージョン。
  • 頻度:認証後スキャンが実行される頻度 (分単位)。
  • エラーの重み:複数の式が異なるエラー文字列を持つ場合に、ネストされた式に含まれる各エラーメッセージに割り当てられる重み。重みによって、表示されるエラーメッセージが決まります。
  • 鮮度:ウイルス定義の古さを定義します。たとえば、ウイルス定義が 3 日を超えないように式を設定できます。

事前認証ポリシーまたはセッションポリシーにクライアントセキュリティポリシーを追加するには

  1. 構成ユーティリティのナビゲーションペインで、次のいずれかの操作を行います。
    1. 構成ユーティリティの[構成]タブのナビゲーションペインで、[ Citrix Gateway]>[ポリシー ]の順に展開し、[ セッション]をクリックします。
    2. 構成ユーティリティの[構成]タブのナビゲーションペインで、[ Citrix Gateway]>[ポリシー]>[認証/承認]の順に展開し、[ 事前認証EPA]をクリックします。
  2. 詳細ウィンドウの [ポリシー] タブで、[ 追加] をクリックします。
  3. [Name] に、ポリシーの名前を入力します。
  4. [任意の式に一致] の横にある [追加] をクリックします。
  5. [式の追加] ダイアログボックスの [式の種類] で、[ Client Security] を選択します。
  6. 次の設定を構成します。
    1. 「コンポーネント」で、スキャンするアイテムを選択します。
    2. [名前] に、アプリケーションの名前を入力します。
    3. 「修飾子」で「 バージョン」を選択します。
    4. 「演算子」で、値を選択します。
    5. [値]にクライアントセキュリティ文字列を入力し、[ OK]、[ 作成]、[ 閉じる]の順にクリックします。

サービスポリシーの設定

サービスは、ユーザーデバイス上でサイレントに実行されるプログラムです。セッションまたは事前認証ポリシーを作成するときに、セッションの確立時にユーザーデバイスが特定のサービスを実行していることを確認する式を作成できます。

サービスポリシーを設定するには

  1. 構成ユーティリティのナビゲーションペインで、次のいずれかの操作を行います。
    1. 構成ユーティリティの[構成]タブのナビゲーションペインで、[ Citrix Gateway]>[ポリシー ]の順に展開し、[セッション]をクリックします。
    2. 構成ユーティリティの[構成]タブのナビゲーションペインで、[ Citrix Gateway]>[ポリシー]>[認証/承認]の順に展開し、[事前認証EPA]をクリックします。
  2. 詳細ペインの [ ポリシー ] タブで、[ 追加] をクリックします。
  3. [Name] に、ポリシーの名前を入力します。
  4. [任意の式に一致] の横にある [追加] をクリックします。
  5. [式の追加] ダイアログボックスの [式の種類] で、[Client Security] を選択します。
  6. 次の設定を構成します。
    1. 「コンポーネント」で、「サービス」を選択します。
    2. [名前] に、サービスの名前を入力します。
    3. 「修飾子」で、空白のままにするか、「バージョン」を選択します。
    4. [Qualifier] での選択内容に応じて、次のいずれかを実行します。
      • 空白のままの場合は、「演算子」で「==」または「!=
      • 「バージョン」を選択した場合は、「演算子」の「値」に値を入力し、「OK」、「閉じる」の順にクリックします。

Windows ベースのコンピューターで利用可能なすべてのサービスの一覧と各サービスの状態は、次の場所で確認できます。

コントロールパネル > 管理ツール > サービス

注:

各サービスのサービス名は、リストされた名前とは異なります。[ プロパティ] ダイアログボックスを見て、サービスの名前を確認します。

プロセスポリシーの設定

セッションポリシーまたは事前認証ポリシーを作成するときに、ユーザーのログオン時にすべてのユーザーデバイスで特定のプロセスを実行するように要求する規則を定義できます。プロセスには任意のアプリケーションを使用でき、カスタマイズされたアプリケーションを含めることができます。

注:Windows ベースのコンピューターで実行されているすべてのプロセスの一覧は、Windows タスクマネージャの [ プロセス ] タブに表示されます。

プロセスポリシーを設定するには

  1. 構成ユーティリティのナビゲーションペインで、次のいずれかの操作を行います。
    1. 構成ユーティリティの[構成]タブのナビゲーションペインで、[ Citrix Gateway]>[ポリシー ]の順に展開し、[セッション]をクリックします。
    2. 構成ユーティリティの[構成]タブのナビゲーションペインで、[ Citrix Gateway]>[ポリシー]>[認証/承認]の順に展開し、[事前認証EPA]をクリックします。
  2. 詳細ペインの [ ポリシー ] タブで、[ 追加] をクリックします。
  3. [Name] に、ポリシーの名前を入力します。
  4. [任意の式に一致] の横にある [追加] をクリックします。
  5. [式の追加] ダイアログボックスの [式の種類] で、[Client Security] を選択します。
  6. 次の設定を構成します。
    1. 「コンポーネント」で、「プロセス」を選択します。
    2. [名前] に、アプリケーションの名前を入力します。
    3. 「演算子」で「EXISTS」または「NOTEXISTS」を選択し、「OK」をクリックして

Endpoint Analysis ポリシー(認証前または認証後)を設定してプロセスをチェックする場合、MD5 チェックサムを設定できます。

ポリシーの式を作成するときに、チェックするプロセスに MD5 チェックサムを追加できます。たとえば、notepad.exe がユーザーデバイスで実行されているかどうかを確認する場合、式は次のようになります。 CLIENT.APPLICATION.PROCESS(notepad.exe_md5_388b8fbc36a8558587afc90fb23a3b00) EXISTS

オペレーティングシステムポリシーを構成する

セッションポリシーまたは事前認証ポリシーを作成するときに、クライアントセキュリティ文字列を構成して、ユーザーのログオン時にユーザーデバイスが特定のオペレーティングシステムを実行しているかどうかを判断できます。また、特定の Service Pack または修正プログラムをチェックするように式を構成することもできます。

WindowsとMacintoshの値は次のとおりです。

オペレーティングシステム
macOS X macOS
Windows 8.1 win8.1
Windows 8 win8
Windows 7 win7
Windows Vista ビスタ
Windows XP winxp
Windows Server 2008 win2008
Windows Server 2003 win2003
Windows 2000 Server win2000
Windows 64 ビットプラットフォーム win64

GUI を使用してオペレーティングシステムポリシーを構成するには

  1. ナビゲーションペインで、次のいずれかの操作を行います。
    1. Citrix Gateway]>[ポリシー ]に移動し、[ セッション]をクリックします。
    2. Citrix Gateway > ポリシー > 事前認証に移動します
  2. 詳細ペインの [ ポリシー ] タブで、[ 追加] をクリックします。
  3. [Name] に、ポリシーの名前を入力します。
  4. アクションのリクエスト 」で、既存のアクションを選択するか、アクションを作成します。
  5. [Expression Editor] をクリックします。
  6. [式の種類の選択]で、[ クライアントセキュリティ] を選択します。
  7. 次の設定を構成します。
    1. コンポーネント」で、「 オペレーティング・システム」を選択します。
    2. [ 名前] に、オペレーティングシステムの名前を入力します。
    3. [修飾子] で、次のいずれかの操作を行います。
      • フィールドは空白のままにします。
      • サービスパックを選択
      • 修正プログラムの選択
      • バージョンを選択 (macOS のみ)
    4. 手順 7 での選択内容に応じて、[演算子] で次のいずれかを実行します。
      • [修飾子] が空白の場合は、[演算子] で [等しい (= =)]、[NOTEQUAL (!=)、存在するか、存在しないか。
      • [Service Pack] または [Hotfix] を選択した場合は、演算子を選択し、[値] に値を入力します。
  8. [ 完了 ] をクリックし、[ 閉じる] をクリックします。

client.os (winxp).spなどのサービスパックを構成している場合、[ ]フィールドに数字がない場合、式が無効であるため、Citrix Gateway はエラーメッセージを返します。

オペレーティングシステムに Service Pack 3 や Service Pack 4 などのサービスパックが存在する場合は、Service Pack 4 のチェックだけを構成できます。Service Pack 4 の存在により、以前のサービスパックが存在することが自動的に示されるためです。

レジストリポリシーを構成する

セッションポリシーまたは事前認証ポリシーを作成するときに、ユーザーデバイス上のレジストリエントリが存在し、値があるかどうかを確認できます。セッションは、特定のエントリが存在するか、設定されているか、またはより高い値を持つ場合にのみ確立されます。

レジストリ式を設定する場合は、次のガイドラインに従ってください。

  • 4つのバックスラッシュは、キーとサブキーを区切るために使われます。

    HKEY_LOCAL_MACHINE\\\\SOFTWARE

  • アンダースコアは、サブキーと関連する値の名前を区切るために使用されます。

    HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\VirusSoftware_Version

  • バックスラッシュ (\) は、次の 2 つの例のように、スペースを示すために使用されます。

    HKEY_LOCAL_MACHINE\\\\SOFTWARE\\Citrix\\\\Secure\ Access\ Client_ProductVersion

    CLIENT.REG(HKEY_LOCAL_MACHINE\\\\Software\\\\Symantec\\Norton\ AntiVirus_Version).VALUE == 12.8.0.4 -frequency 5

以下は、ユーザーのログオン時にCitrix Secure Accessエージェントのレジストリキーを検索するレジストリ式です。

CLIENT.REG(secureaccess).VALUE==HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\CITRIX\\\\Secure\Access\Client_ProductVersion

注: レジストリキーと値をスキャンし、[式] ダイアログボックスで [ 高度なフリーフォーム] を選択する場合、 式は CLIENT.REG で始まる必要があります。

レジストリチェックは、次の最も一般的な 5 つのタイプでサポートされています。

  • HKEY_CLASSES_ROOT
  • HKEY_CURRENT_USER
  • HKEY_LOCAL_MACHINE
  • HKEY_USERS
  • HKEY_CURRENT_CONFIG

チェックするレジストリ値には、次のタイプを使用します。

  • 文字列

    文字列型の場合は、大文字と小文字の区別がチェックされます。

  • DWORD

    DWORD 型の場合、値は比較され、等しくなければなりません。

  • 展開文字列

    バイナリやマルチストリングなどの他のタイプはサポートされていません。

  • 比較演算子 ‘==’ のみがサポートされています。

  • <、> などの他の比較演算子、大文字と小文字を区別する比較はサポートされていません。

  • レジストリ文字列の合計長は 256 バイト未満である必要があります。

式に値を追加できます。値には、ソフトウェアのバージョン、サービスパックのバージョン、またはレジストリに表示されるその他の値を指定できます。レジストリのデータ値がテスト対象の値と一致しない場合、ユーザーはログオンを拒否されます。

注:

サブキー内の値をスキャンすることはできません。スキャンは、名前付きの値と関連するデータ値と一致する必要があります。

レジストリポリシーを構成するには

  1. 構成ユーティリティのナビゲーションペインで、次のいずれかの操作を行います。
    1. 構成ユーティリティの[構成]タブのナビゲーションペインで、[ Citrix Gateway]>[ポリシー ]の順に展開し、[セッション]をクリックします。
    2. 構成ユーティリティの[構成]タブのナビゲーションペインで、[ Citrix Gateway]>[ポリシー]>[認証/承認]の順に展開し、[事前認証EPA]をクリックします。
  2. 詳細ペインの [ ポリシー ] タブで、[ 追加] をクリックします。
  3. [Name] に、ポリシーの名前を入力します。
  4. [任意の式に一致] の横にある [追加] をクリックします。
  5. [式の追加] ダイアログボックスの [式の種類] で、[Client Security] を選択します。
  6. 次の設定を構成します。
    1. 「コンポーネント」で「レジストリ」を選択します
    2. [名前] に、レジストリキーの名前を入力します。
    3. 「修飾子」で、空白のままにするか、「値」を選択します。
    4. [演算子] で、次のいずれかを実行します。
      • 修飾子が空白のままの場合は、EXISTS または NOTEXISTS を選択します。
      • [修飾子] で [値] を選択した場合は、[==] または [!==
    5. [値]に、レジストリエディタに表示される値を入力し、[OK]、[閉じる]の順にクリックします。

複合クライアントセキュリティ式の設定

クライアントセキュリティ文字列を組み合わせて、複合クライアントセキュリティ式を形成できます。

Citrix Gateway でサポートされているブール演算子は次のとおりです。

  • と (&&)
  • または (||)
  • ない (!)

精度を上げるには、括弧を使用して文字列をグループ化できます。

注:

コマンドラインを使用して式を設定する場合は、複合式を作成するときに、かっこを使用してセキュリティ式をグループ化します。かっこを使用すると、クライアント式の理解とデバッグが向上します。

AND (&&) 演算子を使用したポリシーの設定

AND (&&) 演算子は、2 つのクライアントセキュリティ文字列を組み合わせて機能し、両方のチェックが真の場合にのみ複合チェックが成功するようにします。式は左から右に評価され、最初のチェックが失敗した場合、2 番目のチェックは実行されません。

AND (&&) 演算子は、キーワード ‘AND’ または記号 ‘&&’ を使用して設定できます。

例:

以下は、ユーザーデバイスにバージョン 7.0 の Sophos Antivirus がインストールされ、実行されているかどうかを判断するクライアントセキュリティチェックです。また、Net Logon サービスが同じコンピュータで実行されているかどうかも確認します。

CLIENT.APPLICATION.AV(sophos).version==7.0 AND CLIENT.SVC(netlogon) EXISTS

この文字列は、次のように設定することもできます。

CLIENT.APPLICATION.AV(sophos).version==7.0 && CLIENT.SVC(netlogon) EXISTS

OR (||) 演算子を使用したポリシーの設定

OR (   ) 演算子は、2 つのセキュリティ文字列を組み合わせて動作します。複合チェックは、どちらかのチェックが true の場合にパスします。式は左から右に評価され、最初のチェックに合格した場合、2 番目のチェックは実行されません。最初のチェックがパスしない場合、2 番目のチェックが実行されます。
OR (   ) 演算子をキーワード ‘OR’ または記号 ‘   ’.

例:

次に、ユーザーデバイス上にファイル c:\file.txt があるか、または putty.exe プロセスが実行されているかを判断するクライアントセキュリティチェックを示します。

client.file(c:\\\\file.txt) EXISTS) OR (client.proc(putty.exe) EXISTS

この文字列は、次のように設定することもできます。

client.file(c:\\\\file.txt) EXISTS)   (client.proc(putty.exe) EXISTS

NOT (!) を使用してポリシーを設定します。オペレーター

ザ・ない (!)または否定演算子はクライアントセキュリティ文字列を否定します。

例:

ファイル c:\sophos_virus_defs.dat ファイルが 2 日以上経過していない場合、次のクライアントセキュリティチェックに合格します。

\!(client.file(c:\\\\\\\\sophos\_virus\_defs.dat).timestamp==2dy)