Citrix ADC

外部ユーザー認証

Citrix ADCアプライアンスの認証サービスは、ローカルでも外部でもかまいません。外部ユーザー認証では、アプライアンスはLDAP、RADIUS、TACACS +などの外部サーバーを使用してユーザーを認証します。外部ユーザーを認証し、アプライアンスへのアクセスをユーザーに許可するには、認証ポリシーを適用する必要があります。Citrix ADCシステム認証は、高度なポリシー式を備えた高度な認証ポリシーを使用します。高度な認証ポリシーは、パーティション化されたCitrix ADCアプライアンスのシステムユーザー管理にも使用されます。

アプライアンスがまだクラシックポリシーとその式を使用している場合は、アプライアンスの使用を停止し、クラシックポリシーの使用を高度なポリシーインフラストラクチャに移行する必要があります。

認証ポリシーを作成したら、それをシステムグローバルエンティティにバインドする必要があります。単一の認証ポリシーをシステムグローバルエンティティにバインドすることで、外部認証サーバ(TACACS など)を設定できます。また、複数のポリシーをシステムグローバルエンティティにバインドすることによって、認証サーバのカスケードを構成することもできます。

外部ユーザーがアプライアンスにログインすると、システムは ns.log ファイルに「ユーザーが存在しません」というエラーメッセージを生成します。発生は、システムが実行しているためです systemuser_systemcmdpolicy_binding ユーザーのGUIを初期化するコマンド。

LDAP認証(外部LDAPサーバーを使用)

Citrix ADCアプライアンスは、1つ以上のLDAPサーバーによるユーザーアクセスを認証するように構成できます。LDAP許可には、Active Directory、LDAPサーバー、およびアプライアンスで同一のグループ名が必要です。文字と大文字小文字も同じである必要があります。

LDAP 認証ポリシーの詳細については、「 LDAP 認証ポリシー 」トピックを参照してください。

デフォルトでは、LDAP 認証は SSL/TLS プロトコルを使用して保護されています。セキュア LDAP 接続には 2 つのタイプがあります。最初のタイプでは、LDAP サーバーは、クリア LDAP 接続を受け入れるために使用されるポートとは別のポートで SSL/TLS 接続を受け入れます。ユーザーが SSL/TLS 接続を確立すると、LDAP トラフィックは接続を介して送信できます。2 番目のタイプでは、非セキュアな LDAP 接続とセキュアな LDAP 接続の両方を許可し、単一のポートがサーバ上でそれを処理します。このシナリオでは、セキュリティで保護された接続を作成するには、クライアントはまず、クリア LDAP 接続を確立します。次に、 LDAP コマンドStartTLSが接続を介してサーバーに送信されます。LDAP サーバーが StartTLS をサポートしている場合、接続は TLS を使用してセキュリティで保護された LDAP 接続に変換されます。

LDAP 接続のポート番号は次のとおりです。

  • セキュリティで保護されていない LDAP 接続の場合は 389
  • 安全なLDAP接続用の636
  • Microsoftのセキュリティで保護されていない LDAP 接続の場合 3268
  • Microsoftの LDAP 接続のセキュリティで保護された 3269

StartTLS コマンドを使用する LDAP 接続では、ポート番号 389 が使用されます。アプライアンスでポート番号389または3268が構成されている場合、StartTLSを使用して接続を試みます。他のポート番号が使用されている場合、接続試行は SSL/TLS を使用します。StartTLS または SSL/TLS を使用できない場合、接続は失敗します。

LDAPサーバを設定する場合、英字の大文字と小文字は、サーバとアプライアンスの大文字と小文字と一致する必要があります。LDAP サーバーのルートディレクトリが指定されている場合、すべてのサブディレクトリも検索され、ユーザー属性が検索されます。大きなディレクトリでは、パフォーマンスに影響する可能性があります。このため、特定の組織単位(OU)を使用することをお勧めします。

次の表に、ベース識別名 (DN) の例を示します。

LDAPサーバ ベース DN
Microsoft Active Directory DC=Citrix, DC=local
Novell eDirectory dc=Citrix, dc=net
IBM Directory Server cn=users
Lotus Domino OU=City, O=Citrix, C=US
Sun ONE Directory(旧iPlanet) ou=People, dc=Citrix, dc=com

次の表に、バインド識別名 (DN) の例を示します。

LDAPサーバ バインド DN
Microsoft Active Directory CN=Administrator, CN=Users, DC=Citrix, DC=local
Novell eDirectory cn=admin, dc=Citrix, dc=net
IBM Directory Server LDAP_dn
Lotus Domino CN=Notes Administrator, O=Citrix, C=US
Sun ONE Directory(旧iPlanet) uid=admin, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot
LDAPサーバ バインド DN
Microsoft Active Directory CN=Administrator, CN=Users, DC=Citrix, DC=local
Novell eDirectory cn=admin, dc=Citrix, dc=net
IBM Directory Server LDAP_dn
Lotus Domino CN=Notes Administrator, O=Citrix, C=US
Sun ONE Directory(旧iPlanet) uid=admin, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot

CLIを使用してLDAPユーザー認証を構成します

外部ユーザーのLDAP認証を構成するには、次の手順を実行します

LDAPポリシーを構成する

コマンドプロンプトで、次の操作を行います。

ステップ 1: LDAP アクション を作成します。

add authentication ldapAction <name> {-serverIP <ip_addr|ipv6_addr|*> | {-serverName <string>}} >] [-authTimeout <positive_integer>] [-ldapBase <string>] [-ldapBindDn <string>] {-ldapBindDnPassword } [-ldapLoginName <string>] [-groupAttrName <string>] [-subAttributeName <string>]

例:

add authentication ldapAction ldap_act -serverIP <IP> -authTimeout 30 -ldapBase "CN=xxxxx,DC=xxxx,DC=xxx" -ldapBindDn "CN=xxxxx,CN=xxxxx,DC=xxxx,DC=xxx" -ldapBindDnPassword abcd -ldapLoginName sAMAccountName -groupattrName memberOf -subAttributeName CN

パラメータの説明については、「 認証および認可コマンドのリファレンス 」を参照してください。

ステップ 2: 従来のLDAPポリシーを作成します。

add authentication ldapPolicy <name> <rule> [<reqAction>]

例:

add authentication ldappolicy ldap_pol_classic ns_true ldap_act

クラシックまたは高度なLDAPポリシーを使用して構成できますが、クラシックポリシーはCitrix ADC 13.0リリース以降から廃止されるため、高度な認証ポリシーを使用することをお勧めします。

ステップ 3: 高度なLDAPポリシーを作成する

add authentication Policy <name> <rule> [<reqAction>]

例:

add authentication policy ldap_pol_advance -rule true -action ldap_act

ステップ 4: LDAPポリシーをシステムグローバルにバインドする

コマンドラインプロンプトで、次の操作を実行します。

bind system global <policyName> [-priority <positive_integer]

例:

bind system global ldap_pol_advanced -priority 10

Citrix ADCGUIを使用してLDAPユーザー認証を構成する

  1. System > Authentication > Advanced Policies > Policyに移動します。
  2. [ 追加] をクリックして、LDAPタイプの認証ポリシーを作成します。
  3. [作成]して[閉じる] をクリックします。

LDAPユーザー認証を構成する

Citrix ADC GUIを使用して、LDAP認証用に認証ポリシーをシステムグローバルにバインドします

  1. システムに移動 > 認証 > 高度なポリシー > 認証ポリシーポリシー
  2. 詳細ペインで、[ グローバルバインディング ]をクリックして、システムグローバル認証ポリシーバインディングを作成します。
  3. Global Bindingsをクリックします。

    LDAP認証のために認証ポリシーをシステムグローバルにバインドします

  4. 認証プロファイルを選択します。

    認証プロファイルを選択します。

  5. LDAP のポリシーを選択します。
  6. [ システムグローバル認証ポリシーのバインド ] ページで、次のパラメータを設定します。

    1. ポリシーを選択します。
    2. バインディングの詳細

    LDAPポリシーの選択

  7. [バインド] と [完了] をクリックします。
  8. [ グローバルバインディング] をクリックして、システムグローバルにバインドされているポリシーを確認します。

    LDAPグローバルバインディング

LDAP ディレクトリ内の属性の決定

LDAP ディレクトリ属性を決定する助けが必要な場合は、Softerra の無料の LDAP ブラウザーで簡単に検索できます。

LDAPブラウザは、Softerra LDAP管理者Webサイト<http://www.ldapbrowser.com>からダウンロードできます。ブラウザをインストールしたら、次の属性を設定します。

  • LDAP サーバーのホスト名または IP アドレス。
  • LDAP サーバーのポート。デフォルトは 389 です。
  • ベース DN フィールドは空白のままにできます。
  • LDAP ブラウザから提供される情報は、[認証] タブに必要なベース DN を決定するのに役立ちます。
  • 匿名バインドチェックは、LDAP サーバーが接続するためにブラウザーのユーザークレデンシャルを必要とするかどうかを決定します。LDAP サーバーでクレデンシャルが必要な場合は、チェックボックスをオフのままにします。

設定が完了すると、LDAP ブラウザは左ペインにプロファイル名を表示し、LDAP サーバに接続します。

詳細については、 LDAP のトピックを参照してください。

LDAP ユーザーに対するキーベース認証のサポート

キーベース認証では、SSH を使用して LDAP サーバー内のユーザーオブジェクトに格納されている公開キーのリストを取得できるようになりました。ロールベース認証(RBA)プロセス中のCitrix ADCアプライアンスは、LDAPサーバーから公開SSHキーを抽出する必要があります。取得した公開キーは SSH と互換性があり、RBA メソッドを使用してログインできる必要があります。

「認証の追加 ldapAction」コマンドと「認証の設定 ldapAction」コマンドに新しい属性「sshPublicKey」が導入されました。この属性を使用すると、次の利点があります。

  • 取得した公開キーを格納できます。LDAP アクションは、この属性を使用して LDAP サーバから SSH キー情報を取得します。
  • 最大 24 KB の属性名を抽出できます。

LDAP などの外部認証サーバは、SSH キー情報の取得にのみ使用されます。認証目的には使用されません。

次に、SSH を介したイベントのフローの例を示します。

  • SSH デーモンは、パスワードフィールドが空の AAA_AUTHENTICATE 要求を認証、認可、および監査デーモンポートに送信します。
  • LDAP が SSH 公開鍵を保存するように設定されている場合、認証、承認、および監査は「sshPublicKey」属性と他の属性とともに応答します。
  • SSH デーモンは、クライアントキーでこれらのキーを検証します。
  • SSH デーモンは、要求ペイロードでユーザー名を渡し、認証、承認、および監査は、汎用キーとともにこのユーザーに固有のキーを返します。

sshPublicKey 属性を構成するには、コマンドプロンプトで次のコマンドを入力します。

  • 追加操作では、ldapActionコマンドの設定中に「sshPublicKey」属性を追加できます。

    add authentication ldapAction <name> {-serverIP <ip_addr|ipv6_addr|*> | {-serverName <string>}} [-serverPort <port>] … [-Attribute1 <string>] … [-Attribute16 <string>][-sshPublicKey <string>][-authentication off]<!--NeedCopy-->

  • 設定操作では、すでに追加されている ldapAction コマンドに「sshPublicKey」属性を設定できます。

    set authentication ldapAction <name> [-sshPublicKey <string>][-authentication off]<!--NeedCopy-->

RADIUS認証(外部RADIUSサーバーを使用)

Citrix ADCアプライアンスは、1つ以上のRADIUSサーバーによるユーザーアクセスを認証するように構成できます。RSA SecurID、SafeWord、またはGemalto Protiva製品を使用している場合は、RADIUSサーバを使用してください。

RADIUS 認証ポリシーの詳細については、「 RADIUS 認証ポリシー 」トピックを参照してください。

構成によっては、ネットワークアクセスサーバの IP アドレス (NAS IP) またはネットワークアクセスサーバ識別子 (NAS ID) の使用が必要になる場合があります。RADIUS認証サーバを使用するようにアプライアンスを設定する場合は、次のガイドラインに従ってください。

  • NAS IPの使用を有効にした場合、アプライアンスは、RADIUS接続の確立に使用される送信元IPアドレスではなく、構成済みのIPアドレスをRADIUSサーバに送信します。
  • NAS IDを構成すると、アプライアンスはRADIUSサーバーにこの識別子を送信します。NAS IDを構成しないと、アプライアンスはRADIUSサーバーにホスト名を送信します。
  • NAS IPアドレスが有効になっている場合、アプライアンスはRADIUSサーバーとの通信に使用したNASIDをすべて無視します。

GUI を使用した RADIUS 認証の構成

コマンドプロンプトで、次の操作を行います。

ステップ 1: RADIUS アクションを作成します。

add authentication radiusaction <name> -serverip <ip> -radkey <key> -radVendorID <id> -radattributetype <value>

ここで、 radVendorID RADIUSベンダーID属性。RADIUSグループの抽出に使用されます。 radAttributeType RADIUS属性タイプ。RADIUSグループの抽出に使用されます。

例:

add authentication radiusaction RADserver531 rad_action -serverip 1.1.1.1 -radkey key123 -radVendorID 66 -radattributetype 6

ステップ 2: 従来のRADIUSポリシーを作成します。

add authentication radiusPolicy <name> <rule> [<reqAction>]

例:

add authentication radiuspolicy radius_pol_classic ns_true radius_act

クラシック RADIUS ポリシーまたは高度な RADIUS ポリシーを使用して設定できます。従来のポリシーはCitrix ADC 13.0リリースから廃止されるため、高度な認証ポリシーを使用することをお勧めします。

ステップ 3: 高度なRADIUSポリシーを作成する

add authentication policy <policyname> -rule true -action <radius action name>

例:

add authentication policy rad_pol_advanced -rule true -action radserver531rad_action

ステップ 4: RADIUSポリシーをシステムグローバルにバインドします。

bind system global <policyName> -priority <positive_integer

例:

bind system global radius_pol_advanced -priority 10

GUI を使用した RADIUS 認証の構成

  1. System > Authentication > Advanced Policies > Policyに移動します。
  2. [ 追加] をクリックして、RADIUSタイプの認証ポリシーを作成します。
  3. [作成]して[閉じる] をクリックします。

RADIUSポリシーを構成する

GUIを使用して、RADIUS認証用に認証ポリシーをシステムグローバルにバインドします

  1. System > Authentication > Advanced Policies > Policyに移動します。
  2. 詳細ペインで、[ グローバルバインディング ]をクリックして、システムグローバル認証ポリシーバインディングを作成します。
  3. Global Bindingsをクリックします。

    システムグローバルエンティティへの認証ポリシーのバインド

  4. RADIUS を選択します。
  5. [ システムグローバル認証ポリシーのバインド ] ページで、次のパラメータを設定します。

    1. ポリシーを選択します。
    2. 詳細をバインドします。

    システムグローバル認証ポリシーバインディング

  6. [バインド して 閉じる] をクリックします。
  7. [ グローバルバインディング] をクリックして、システムグローバルにバインドされているポリシーを確認します。

    RADIUS認証ポリシーのグローバルバインディング

RADIUSユーザー認証プロトコルを選択します

Citrix ADCアプライアンスは、ユーザー認証に次のようないくつかのプロトコルのいずれかを使用するように構成されたRADIUSの実装をサポートします。

  • パスワード認証プロトコル
  • チャレンジハンドシェイク認証プロトコル (CHAP)
  • Microsoftのチャレンジハンドシェイク認証プロトコル (MS-CHAP バージョン 1 およびバージョン 2)

展開が RADIUS 認証を使用するように構成され、RADIUS サーバにパスワード認証プロトコルが設定されている場合。RADIUS サーバに強力な共有秘密を割り当てることで、ユーザ認証を強化できます。強力なRADIUS共有シークレットは、大文字と小文字、数字、句読点のランダムなシーケンスで構成され、長さは22文字以上です。可能であれば、ランダムな文字生成プログラムを使用して RADIUS 共有秘密を特定します。

RADIUSトラフィックをさらに保護するには、各アプライアンスまたは仮想サーバに異なる共有シークレットを割り当てます。RADIUS サーバでクライアントを定義する場合、各クライアントに個別の共有シークレットを割り当てることもできます。また、RADIUS認証を使用する各ポリシーを個別に構成する必要があります。

IPアドレス抽出を構成する

RADIUSサーバからIPアドレスを抽出するようにアプライアンスを構成できます。ユーザが RADIUS サーバで認証されると、サーバはユーザに割り当てられたフレーム IP アドレスを返します。IP アドレス抽出の属性を次に示します。

  • リモートRADIUSサーバが、アプライアンスにログオンしたユーザーの内部ネットワークからのIPアドレスを提供できるようにします。
  • IP アドレスタイプを使用する任意の RADIUS属性の設定(ベンダーエンコードを含む)を許可します。

IP アドレス抽出用に RADIUS サーバを設定する場合は、ベンダー ID と属性タイプを設定します。

ベンダー識別子により、RADIUS サーバは、RADIUS サーバ上で設定されている IP アドレスのプールから IP アドレスをクライアントに割り当てることができます。ベンダー ID と属性は、RADIUS クライアントと RADIUS サーバ間のアソシエーションを作成するために使用されます。ベンダー ID は、内部ネットワークの IP アドレスを提供する RADIUS 応答の属性です。値 0 は、属性がベンダーエンコードされていないことを示します。属性タイプは、RADIUS 応答のリモート IP アドレス属性です。最小値は 1 で、最大値は 255 です。

一般的な設定では、 RADIUS 属性 フレーム付き IP アドレスを抽出します。ベンダー ID がゼロに設定されているか、指定されていません。属性タイプは8に設定されています。

GUIを使用したRADIUSのグループ抽出

  1. システムに移動 > 認証 > 高度なポリシー > 半径、およびポリシーを選択します。
  2. RADIUSポリシーを選択または作成します。
  3. [ 認証RADIUSサーバー の構成]ページで、次のパラメーターを設定します。

    1. グループのベンダー識別子
    2. グループの属性の種類
  4. [ OK]をクリックして[閉じる]をクリックします。

    RADIUSのグループ抽出

TACACS +認証(外部TACACS +サーバーを使用)

重要

  • 「clear ns config」コマンドを実行するときは、TACACS関連の設定を変更しないことをお勧めします。

  • 詳細ポリシーに関する TACACS 関連の設定は、詳細ポリシーの「clear ns config」 コマンドでRBAconfigパラメータが NO に設定されると、クリアされ、再適用されます。

TACACS+ サーバを認証用に設定できます。RADIUS 認証と同様に、TACACS+ は秘密キー、IP アドレス、およびポート番号を使用します。デフォルトのポート番号は 49 です。TACACS+ サーバを使用するようにアプライアンスを設定するには、サーバの IP アドレスと TACACS+ シークレットを指定します。使用中のサーバーのポート番号がデフォルトのポート番号49以外の場合にのみ、ポートを指定する必要があります。

詳細については、 TACACS 認証を参照してください

GUIを使用してTACACS +認証を構成します

  1. System > Authentication > Advanced Policies > Policyに移動します。
  2. [ 追加] をクリックして、タイプTACACSの認証ポリシーを作成します。
  3. [作成]して[閉じる] をクリックします。

TACACSポリシーを設定します

アプライアンスで TACACS+ サーバ設定を構成したら、ポリシーをシステムグローバルエンティティにバインドします。

CLIを使用して、認証ポリシーをシステムグローバルエンティティにバインドします

認証ポリシーが構成されたら、ポリシーをシステムグローバルエンティティにバインドします。

コマンドラインプロンプトで、次の操作を実行します。

bind system global <policyName> [-priority <positive_integer>]

例:

bind system global pol_classic -priority 10

また、TACACSを使用した外部認証については、Citrix xの記事 CTX113820 を参照してください。

GUIを使用して、RADIUS認証用に認証ポリシーをシステムグローバルにバインドします

  1. System > Authentication > Advanced Policies > Authentication Policies > Policyに移動します。
  2. 詳細ペインで、[ グローバルバインディング ]をクリックして、システムグローバル認証ポリシーバインディングを作成します。
  3. Global Bindingsをクリックします。

    GUIを使用して、RADIUS認証用に認証ポリシーをシステムグローバルにバインドします。

  4. TACACSポリシーを選択します。
  5. System Global Authentication Policy Bindingページで次のパラメーターを設定します。

    1. ポリシーを選択します。
    2. バインディングの詳細

    TACACS認証用のグローバルシステム

  6. [バインド して 閉じる] をクリックします。
  7. [ グローバルバインディング] をクリックして、システムグローバルにバインドされているポリシーを確認します。

    TACACSのシステムグローバルバインディング確認

TACACSグループの抽出の詳細については、Citrix xの記事 CTX220024を参照してください。

外部ユーザーのログオン試行の失敗回数を表示する

Citrix ADCアプライアンスは、Citrix ADC管理コンソールに正常にログオンする前に、少なくとも1回失敗したログインを試行すると、外部ユーザーに無効なログイン試行の数を表示します。

現在、Citrixは、外部ユーザーに対してシステムパラメータで”persistentLoginAttempts” パラメータを有効にしたキーボードインタラクティブ認証のみをサポートしています。

コマンドプロンプトで入力します。 set aaa parameter -maxloginAttempts <value> -failedLoginTimeout <value> -persistentLoginAttempts (ENABLED | DISABLED )]

例: set aaa parameter –maxloginAttempts 5 -failedLoginTimeout 4 –persistentLoginAttempts ENABLED

Following msg will be seen to external user when he tries 1 invalid login attempt before successfully login to the ADC management access.

Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
###############################################################################
#                                                                             #
#        WARNING: Access to this system is for authorized users only          #
#         Disconnect IMMEDIATELY if you are not an authorized user!           #
#                                                                             #
###############################################################################


WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Mon Aug 24 17:09:00 2020 from 10.10.10.10

The number of unsuccessful login attempts since the last successful login : 1
Done
>
The number of unsuccessful login attempts since the last successful login : 1
Done
>
<!--NeedCopy-->