Citrix ADC

外部用户验证

Citrix ADC 设备中的身份验证服务可以是本地或外部的。在外部用户身份验证中,设备使用外部服务器(如 LDAP、RADIUS 或 TACACS+)对用户进行身份验证。要对外部用户进行身份验证并授予该用户对设备的访问权限,您必须应用身份验证策略。Citrix ADC 系统身份验证使用高级身份验证策略和高级策略表达式。高级身份验证策略还用于分区 Citrix ADC 设备中的系统用户管理。

注意

如果您的设备仍在使用 Classic 策略及其表达式,则必须停止使用它,然后将 Classic 策略用法迁移到高级策略基础架构。

创建身份验证策略后,必须将其绑定到系统全局实体。您可以通过将单个身份验证策略绑定到系统全局实体来配置外部身份验证服务器(例如 TACACS)。或者,您可以通过将多个策略绑定到系统全局实体来配置身份验证服务器级联。

注意

当外部用户登录设备时,系统会在文件中生成一条错误消息“用户不ns.log 存在”。出现这种情况是因为系统运行 systemuser_systemcmdpolicy_bind 命令来初始化用户的 GUI。

LDAP 身份验证(使用外部 LDAP 服务器)

您可以将 Citrix ADC 设备配置为对一个或多个 LDAP 服务器的用户访问进行身份验证。LDAP 授权要求活动目录、LDAP 服务器和设备上的组名称相同。字符和大小写也必须相同。

有关 LDAP 验证策略的更多信息,请参阅 LDAP 身份验证策略 主题。

默认情况下,LDAP 身份验证通过使用 SSL/TLS 协议进行保护。有两种类型的安全 LDAP 连接。在第一种类型中,LDAP 服务器接受与用于接受清除 LDAP 连接的端口分开的 SSL/TLS 连接。用户建立 SSL/TLS 连接后,可以通过连接发送 LDAP 流量。第二种类型允许不安全和安全的 LDAP 连接,单个端口在服务器上处理它。在这种情况下,要创建一个安全的连接,客户端首先建立一个清晰的 LDAP 连接。然后 LDAP 命令 StartTLS 通过连接发送到服务器。如果 LDAP 服务器支持 StartTLSS,则通过使用 TLS 将连接转换为安全的 LDAP 连接。

LDAP 连接的端口号为:

  • 389 用于不安全的 LDAP 连接
  • 636 用于安全的 LDAP 连接
  • 3268 用于 Microsoft 不安全的 LDAP 连接
  • 3269 用于 Microsoft 安全的 LDAP 连接

使用 StartTLSS 命令的 LDAP 连接使用端口号 389。如果设备上配置了端口号 389 或 3268,则会尝试使用 StartTLSS 进行连接。如果使用任何其他端口号,则连接尝试使用 SSL/TLS。如果无法使用 StartTLSS 或 SSL/TLS,则连接失败。

配置 LDAP 服务器时,字母字符的大小写必须与服务器和设备上的大小写匹配。如果指定了 LDAP 服务器的根目录,则还会搜索所有子目录以查找用户属性。在大型目录中,它可能会影响性能。因此,Citrix 建议您使用特定组织单位 (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 目录(以前称为 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 目录(以前称为 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 目录(以前称为 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 建议您使用高级身份验证策略,因为从 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 ADC GUI 配置 LDAP 用户身份验证

  1. 导航到 系统 > 身份验证 > 高级策略 > 策略
  2. 单击添加创建 LDAP 类型的身份验证策略。
  3. 单击创建关闭

配置 LDAP 用户身份验证

使用 Citrix ADC GUI 将身份验证策略绑定到全局系统以进行 LDAP 身份验证

  1. 导航到“系统”>“身份验证”>“高级策 略”>“身份验证策略”。
  2. 在详细信息窗格中,单击全局绑定以创建系统全局身份验证策略绑定。
  3. 单击“全局绑定”。

    将身份验证策略绑定到全局系统以进行 LDAP 身份验证

  4. 选择身份验证配置文件。

    选择验证配置文件

  5. 选择 LDAP 策略。
  6. 在 “ 系统全局身份验证策略绑定 ” 页中,设置以下参数:

    1. 选择 策略。
    2. 绑定细节

    选择 LDAP 策略

  7. 点击 绑定完成
  8. 单击全局绑定以确认绑定到系统全局的策略。

    LDAP 全局绑定

确定 LDAP 目录中的属性

如果您在确定 LDAP 目录属性方面需要帮助,可以使用 Softerra 免费的 LDAP 浏览器轻松查找它们。

您可以从 Softerra LDAP 管理员网站 <http://www.ldapbrowser.com> 下载 LDAP 浏览器。安装浏览器后,设置以下属性:

  • LDAP 服务器的主机名或 IP 地址。
  • LDAP 服务器的端口。默认值为 389。
  • 基本 DN 字段可以留空。
  • LDAP 浏览器提供的信息可帮助您确定“身份验证”选项卡所需的基本 DN。
  • 匿名绑定检查确定 LDAP 服务器是否需要浏览器连接到它的用户凭据。如果 LDAP 服务器需要凭据,请将复选框保持清除状态。

完成设置后,LDAP 浏览器将在左侧窗格中显示配置文件名称并连接到 LDAP 服务器。

有关详细信息,请参阅 LDAP 主题。

为 LDAP 用户提供基于密钥的身份验证支持

使用基于密钥的身份验证,您现在可以通过 SSH 获取存储在 LDAP 服务器中用户对象上的公钥列表。在基于角色的身份验证 (RBA) 过程中,Citrix ADC 设备必须从 LDAP 服务器中提取 SSH 公钥。检索到的公钥与 SSH 兼容,必须允许您通过 RBA 方法登录。

在“add authentication ldapAction”和“set authentication 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-->

  • 通过设置操作,您可以将“sshPublicKey”属性配置为已添加的 ldapAction 命令。

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

RADIUS 认证(使用外部 RADIUS 服务器)

您可以将 Citrix ADC 设备配置为对一个或多个 RADIUS 服务器的用户访问进行身份验证。如果您使用的是 RSA SecurID、SafeWord 或 Gemalto Protiva 产品,请使用 RADIUS 服务器。

有关 RADIUS 身份验证策略的更多信息,请参阅 RADIUS 身份

您的配置可能需要使用网络访问服务器 IP 地址 (NAS IP) 或网络访问服务器标识符 (NAS ID)。将设备配置为使用 RADIUS 身份验证服务器时,请遵循以下准则:

  • 如果启用 NAS IP 的使用,设备将其配置的 IP 地址发送到 RADIUS 服务器,而不是用于建立 RADIUS 连接的源 IP 地址。
  • 如果配置 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 策略进行配置。Citrix 建议您使用高级身份验证策略,因为从 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. 导航到 系统 > 身份验证 > 高级策略 > 策略
  2. 单击添加以创建类型为 RADIUS 的身份验证策略。
  3. 单击创建关闭

配置 RADIUS 策略

使用 GUI 将身份验证策略绑定到系统全局以进行 RADIUS 身份验证

  1. 导航到 系统 > 身份验证 > 高级策略 > 策略
  2. 在详细信息窗格中,单击全局绑定以创建系统全局身份验证策略绑定。
  3. 单击“全局绑定”。

    将身份验证策略绑定到 RADIUS 的全局系统

  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 服务器进行 IP 地址提取时,您可以配置供应商标识符和属性类型。

供应商标识符使 RADIUS 服务器能够从 RADIUS 服务器上配置的 IP 地址池中为客户端分配 IP 地址。供应商 ID 和属性用于建立 RADIUS 客户端和 RADIUS 服务器之间的关联。供应商 ID 是 RADIUS 响应中提供内部网络 IP 地址的属性。值为零表示属性未经供应商编码。属性类型是 RADIUS 响应中的远程 IP 地址属性。最小值为 1,最大值为 255。

常见的配置是提取 RADIUS 属性 框架的 IP 地址。供应商 ID 设置为零或未指定。属性类型设置为 8。

使用 GUI 进行 RADIUS 的组提取

  1. 导航到“系统”>“身份验证”>“高级策 略”>“RADIUS”,然后选择策略。
  2. 选择或创建 RADIUS 策略。
  3. 在“配置身份验证 RADIUS 服务器”页中,设置以下参数。

    1. 组供应商标识符
    2. 组属性类型
  4. 单击确定关闭

    RADIUS的组抽取

TACACS+ 身份验证(使用外部 TACACS+ 服务器)

重要

  • Citrix 建议您在运行“clear ns config”命令时不要修改任何与 TACACS 相关的配置。

  • 当高级策略的 “clear ns config” 命令中的 RBAconfig 参数设置为 NO 时,与高级策略相关的 TACACS 相关配置将被清除并重新应用。

您可以配置 TACACS+ 服务器进行身份验证。与 RADIUS 身份验证类似,TACACS+ 使用私有密钥、IP 地址和端口号。默认端口号为 49。要将设备配置为使用 TACACS+ 服务器,请提供服务器 IP 地址和 TACACS+ 密钥。只有当使用的服务器端口号不是默认端口号 49 时,才必须指定端口。

有关更多信息,请参阅 TACACS 验证

使用 GUI 配置 TACACS+ 身份验证

  1. 导航到 系统 > 身份验证 > 高级策略 > 策略
  2. 单击 添加 以创建类型为 TACACS 的身份验证策略。
  3. 单击创建关闭

配置 TACACS 策略

在设备上配置 TACACS+ 服务器设置后,将策略绑定到系统全局实体。

使用 CLI 将身份验证策略绑定到系统全局实体

配置身份验证策略后,将策略绑定到系统全局实体。

在命令行提示符处,执行以下操作:

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

示例:

bind system global pol_classic -priority 10

另外,请阅读 Citrix 文章 CTX113820 了解使用 TACACS 进行外部身份验证的信息。

使用 GUI 将身份验证策略绑定到系统全局实体

  1. 导航到系统 > 身份验证 > 高级策略 > 身份验证策略 > 策略
  2. 在详细信息窗格中,单击全局绑定以创建系统全局身份验证策略绑定。
  3. 单击“全局绑定”。

    将身份验证策略绑定到系统全局以进行 TACACS 身份验证

  4. 选择 TACACS 策略。
  5. 在 “ 系统全局身份验证策略绑定 ” 页中,设置以下参数:

    1. 选择 策略。
    2. 绑定细节

    系统全局用于 TACACS 身份验证

  6. 单击绑定关闭
  7. 单击全局绑定以确认绑定到系统全局的策略。

    TACACS 系统全局绑定确认

有关 TACACS 组提取的更多信息,请阅读 Citrix 文章 CTX220024

显示外部用户的登录尝试失败次数

当您在成功登录 Citrix ADC 管理控制台之前尝试至少一次登录失败时,Citrix ADC 设备将向外部用户显示无效登录尝试次数。

注意

目前,Citrix 仅支持在系统参数中启用了“持久登录尝试”参数的外部用户的键盘交互式身份验证。

在命令提示符下,键入: 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-->