ADC

外部ユーザー認証

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

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

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

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

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

NetScalerアプライアンスは、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
  • 636 セキュアな LDAP 接続の場合
  • 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=ローカル
Novell eDirectory DC=Citrix、dc=net
IBM Directory Server cn=users
Lotus Domino OU=都市、O=Citrix、C=米国
Sun ONE ディレクトリ (旧iPlanet) ou=人、DC=Citrix、dc=com

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

LDAP サーバ バインド DN
Microsoft Active Directory CN=管理者、CN=ユーザー、DC=Citrix、DC=ローカル
Novell eDirectory cn=管理者、DC=Citrix、dc=net
IBM Directory Server LDAP_dn
Lotus Domino cn=Notes 管理者、O=Citrix、C=米国
Sun ONE ディレクトリ (旧iPlanet) uid=admin、OU=管理者、OU=トポロジ管理、o=NetscapeRoot
LDAP サーバ バインド DN
Microsoft Active Directory CN=管理者、CN=ユーザー、DC=Citrix、DC=ローカル
Novell eDirectory cn=管理者、DC=Citrix、dc=net
IBM Directory Server LDAP_dn
Lotus Domino cn=Notes 管理者、O=Citrix、C=米国
Sun ONE ディレクトリ (旧iPlanet) uid=admin、OU=管理者、OU=トポロジ管理、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ポリシーを使用して構成できますが、クラシックポリシーはNetScaler 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

NetScaler GUIを使用してLDAPユーザー認証を構成する

  1. [ システム ] > [ 認証 ] > [ 詳細ポリシー] > [ポリシー ] 移動します。
  2. LDAP タイプの認証ポリシーを作成するには、[ 追加 ] をクリックします。
  3. [作成]して[閉じる] をクリックします。

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

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

  1. [ システム ] > [ 認証 ] > [ 詳細ポリシー ] > [ 認証ポリシー]に移動します。
  2. 詳細ペインで、[ グローバルバインディング ] をクリックして、システムグローバル認証ポリシーバインディングを作成します。
  3. グローバルバインディング」をクリックします。
  4. 認証プロファイルを選択します。
  5. LDAP ポリシーを選択します。
  6. [ システムグローバル認証ポリシーのバインド ] ページで、次のパラメータを設定します。

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

    LDAP ポリシーの選択

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

LDAP ディレクトリの属性を決定する

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

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

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

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

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

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

キーベース認証では、SSH を使用して LDAP サーバー内のユーザーオブジェクトに格納されている公開キーのリストを取得できるようになりました。NetScalerアプライアンスは、ロールベース認証(RBA)プロセス中に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サーバーを使用)

NetScalerアプライアンスは、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サーバーとの通信に使用されたNAS IDを無視します。

CLI を使用して 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 ポリシーを使用して設定できます。従来のポリシーはNetScaler 13.0リリース以降では廃止されるため、Citrixでは高度な認証ポリシーを使用することをお勧めします。

ステップ 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. [ システム ] > [ 認証 ] > [ 詳細ポリシー] > [ポリシー ] 移動します。
  2. [ 追加 ] をクリックして、RADIUS タイプの認証ポリシーを作成します。
  3. [作成]して[閉じる] をクリックします。

RADIUS ポリシーの設定

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

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

    RADIUS のシステムグローバルに認証ポリシーをバインドする

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

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

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

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

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

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

NetScaler 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 応答の属性です。ゼロの値は、属性がベンダーエンコードされていないことを示します。属性タイプは、RADIUS 応答のリモート IP アドレス属性です。最小値は1で、最大値は255です。

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

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

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

    1. グループベンダー識別子
    2. グループ属性タイプ
  4. OK」をクリックして「閉じる」をクリックします。

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

重要

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

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

  • 「構成のクリア」 操作の一部としてRBAconfigパラメータを「いいえ」に設定すると、NetScaler ADCはRBA構成とTACACSポリシーを保持するだけでなく、管理アクセスセッションも保持します。

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

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

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

  1. [ システム ] > [ 認証 ] > [ 詳細ポリシー] > [ポリシー ] 移動します。
  2. [ Add ] をクリックして、タイプ 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. システム > 認証 > 詳細ポリシー > 認証ポリシー > ポリシーに移動します
  2. 詳細ペインで、[ グローバルバインディング ] をクリックして、システムグローバル認証ポリシーバインディングを作成します。
  3. グローバルバインディング」をクリックします。

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

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

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

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

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

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

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

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

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

現在、NetScalerは、システムパラメーターで「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-->