ADC

用户、用户组和命令策略

您必须首先使用帐户定义用户,然后将所有用户组织成组。您可以创建命令策略,也可以使用内置命令策略来规范用户对命令的访问。

注意:

如果您希望了解有关配置用户和用户组的更多信息,作为流量管理的 NetScaler 身份验证和授权设置的一部分,请参阅 配置用户和组 主题。

您还可以为用户自定义命令行提示符。可以在用户配置、用户组配置和全局系统配置设置中定义提示。为用户显示的提示按以下优先顺序排列:

  1. 显示用户配置中定义的提示。
  2. 显示在用户组的组配置中定义的提示。
  3. 显示系统全局配置设置中定义的提示。

现在,您可以为系统用户非活动 CLI 会话指定超时值。如果用户的 CLI 会话处于空闲时间超过超时值,NetScaler 设备将终止连接。可以在用户配置、用户组配置或全局系统配置设置中定义超时。用户非活动 CLI 会话的超时按以下优先顺序确定:

  1. 用户配置。
  2. 用户组的组配置。
  3. 全局系统配置设置。

NetScaler 根管理员可以为系统用户配置最大并发会话限制。通过限制限制,可以减少打开的连接数量并提高服务器性能。只要 CLI 数量在配置的限制范围内,并发用户就可以多次登录 GUI。但是,如果 CLI 会话数量达到配置的限制,用户将无法再登录 GUI。例如,如果将并发会话数配置为 20,则并发用户可以登录 19 个 CLI 会话。但是,如果用户登录到 20<sup>th</sup> CLI 会话,则任何尝试登录 GUI、CLI 或 NITRO 都会导致错误消息(错误:超过 CFE 的连接限制)。

注意:

默认并发会话数配置为 20,最大并发会话数配置为 40。

配置用户帐户

要配置用户帐户,您只需指定用户名和密码即可。您可以随时更改密码和删除用户帐户。

注意:

不接受密码中的所有字符。但是,如果您在引号内键入字符,则可以使用。

此外,字符串的最大长度不得超过 127 个字符。

使用命令行界面创建用户帐户

在命令提示符处,键入以下命令以创建用户帐户并验证配置:

  • add system user <username> [-externalAuth ( ENABLED | DISABLED )] [-promptString <string>] [-timeout \<secs>] [-logging ( ENABLED | DISABLED )] [-maxsession <positive_integer>]
  • show system user <userName>

外部用户可以配置“logging”参数以使用 Web 日志记录或审核日志记录机制收集外部日志。如果启用了该参数,则审核客户端会使用 NetScaler 设备进行身份验证以收集日志。

示例:

> add system user johnd -promptString user-%u-at-%T

Enter password:
Confirm password:
> show system user johnd
user name: john
     Timeout:900 Timeout Inherited From: Global
     External Authentication: ENABLED
     Logging: DISABLED
     Maximum Client Sessions: 20
<!--NeedCopy-->

有关参数说明,请参阅 身份验证和授权用户命令参考 主题。

使用 NetScaler GUI 配置用户帐户

  1. 导航到“系统”>“用户管理”>“用户”,然后创建用户。
  2. 在详细信息窗格中,单击“添加”以创建系统用户。
  3. 在“创建系统组”页中,设置以下参数:

    1. 用户名。用户组的名称。
    2. CLI 提示符。您首选为 CLI 界面访问设置的提示。
    3. 空闲会话超时(秒)。设置用户在会话超时和关闭之前可以处于非活动状态的时间。
    4. 最大会话数。设置用户可以尝试的最大会话数。对于 nsroot 用户,无法修改最大会话参数。
    5. 启用日志权限。为用户启用登录权限。
    6. 启用外部身份验证。如果要使用外部身份验证服务器对用户进行身份验证,请选择该选项。
    7. 允许的管理接口。 选择向用户组授予访问权限的 NetScaler 接口。
    8. 命令策略。将命令策略绑定到用户组。
    9. 分区。将分区绑定到用户组。
  4. 单击创建关闭

创建用于系统用户身份验证的用户帐户

配置用户组

配置用户组后,您可以轻松地向组中的每个人授予相同的访问权限。要配置组,您需要创建组并将用户绑定到组。您可以将每个用户帐户绑定到多个组。将用户帐户绑定到多个组可能会在应用命令策略时提供更大的灵活性。

使用命令行界面创建用户组

在命令提示符处,键入以下命令以创建用户组并验证配置:

  • add system group <groupName> [-promptString <string>] [-timeout <secs>]
  • show system group <groupName>

示例:

> add system group Managers -promptString Group-Managers-at-%h

使用 CLI 将用户帐户绑定到组

在命令提示符处,键入以下命令以将用户帐户绑定到组并验证配置:

  • bind system group <groupName> -userName <userName>
  • show system group <groupName>

示例:

> bind system group Managers -userName user1

使用 NetScaler GUI 配置用户组

  1. 导航到“系统”>“用户管理”>“”,然后创建用户组。
  2. 在详细信息窗格中,单击“添加”以创建系统用户组。
  3. 在“创建系统组”页中,设置以下参数:

    1. 组名称。用户组的名称。
    2. CLI 提示符。您首选为 CLI 界面访问设置的提示。
    3. 空闲会话超时(秒)。设置用户在会话超时和关闭之前可以处于非活动状态的时间。
    4. 允许的管理接口。 选择向用户组授予访问权限的 NetScaler 接口。
    5. 会员。将用户帐户添加到组。
    6. 命令策略。将命令策略绑定到用户组。
    7. 分区。将分区绑定到用户组。
  4. 单击创建关闭

在 NetScaler GUI 上创建系统用户组进行用户身份验证

注意:

要向组添加成员,请在成员部分中单击 添加。从“可用”列表中选择用户并将其添加到“已配置”列表中。

配置命令策略

命令策略规定允许用户和用户组使用哪些命令、命令组、虚拟服务器和其他实体。

该设备提供了一组内置命令策略,您可以配置自定义策略。要应用策略,您可以将其绑定到用户或组。

以下是定义和应用命令策略时要记住的要点。

  • 您无法创建全局命令策略。命令策略必须直接绑定到设备上的用户和组。
  • 没有关联命令策略的用户或组受默认 (DENY-ALL) 命令策略的约束,因此,在将正确的命令策略绑定到他们的帐户之前,他们无法运行任何配置命令。
  • 所有用户都继承他们所属组的策略。
  • 将命令策略绑定到用户帐户或组帐户时,必须为其分配优先级。这使设备能够在两个或多个冲突的策略应用于同一个用户或组时确定哪个策略具有优先级。
  • 如果将两个具有相同优先级的不同命令策略绑定到一个用户帐户或组帐户,则绑定的第一个策略的优先级最高。
  • 默认情况下,以下命令可供任何用户使用,并且不受您指定的任何命令的影响:
  • help、show CLI attribute、set CLI prompt、clear CLI prompt、show CLI prompt、alias、unalias、history、quit、exit、whoami、config、set CLI mode、unset CLI mode 和 show CLI mode。

下表描述了内置策略。

策略名称 允许
read-only 对除了 show ns runningConfig、show ns ns.conf 和 NetScaler 命令组的 show 命令之外的所有显示命令的只读访问权限。
operator 对用于启用和禁用服务和服务器的命令的只读访问权限和访问权限。
network 所有访问权限(除设置和取消设置 SSL 命令外)、show ns ns.conf、show ns runningConfig 和 show gslb runningConfig 命令。
sysadmin [包含在 NetScaler 12.0 及更高版本中] 就设备允许的访问权限而言,系统管理员低于超级用户。系统管理员用户可以执行所有 NetScaler 操作,但以下例外情况:无法访问 NetScaler shell,无法执行用户配置,无法执行分区配置,以及系统管理员命令策略中所述的其他一些配置。
超级用户 完全访问权限。与 nsroot 用户相同的权限。

创建自定义命令策略

为拥有维护更多自定义表达式的资源的用户以及需要正则表达式所提供的灵活性的部署提供正则表达式支持。对于大多数用户来说,内置的命令策略就足够了。需要更多控制级别但不熟悉正则表达式的用户可能只想使用简单的表达式(例如本节提供的示例中的表达式)来保持策略的可读性。

使用正则表达式创建命令策略时,请记住以下几点。

  • 使用正则表达式定义受命令策略影响的命令时,必须用双引号将命令括起来。例如,要创建包含所有以 show开头的命令的命令策略,请键入以下内容:
  • “^show .*$”
  • 要创建包含所有以 rm 开头的命令的命令策略,请键入以下内容:
  • “^rm .*$”
  • 命令策略中使用的正则表达式不区分大小写。

下表列出了命令策略的正则表达式示例:

命令规范 匹配这些命令
“^rm\s+.*$” 所有删除操作,因为所有移除操作都以 rm 字符串开头,后面是空格和更多参数,例如命令组、命令对象类型和参数。
“^show\s+.*$” 所有 show 命令,因为所有 show 操作都以 show 字符串开头,后面是空格和更多参数,例如命令组、命令对象类型和参数。
“^shell$” 单独使用 shell 命令,但不能与任何其他参数(例如命令组、命令对象类型和参数)结合使用。
“^add\s+vserver\s+.*$” 所有创建虚拟服务器操作,包括添加虚拟服务器命令,然后添加空格和更多参数,例如命令组、命令对象类型和参数。
“^add\s+(lb\s+vserver)\s+.*” 所有创建 lb 虚拟服务器操作,其中包括 add lb 虚拟服务器命令后跟空格以及更多参数(如命令组、命令对象类型和参数)。

有关内置命令策略的信息,请参阅表格 内置命令策略 表。

使用命令行界面创建命令策略

在命令提示符处,键入以下命令以创建命令策略并验证配置:

  • add system cmdPolicy <policyname> <action> <cmdspec>
  • show system cmdPolicy <policyName>

示例:

add system cmdPolicy USER-POLICY ALLOW (\ server\ )|(\ service(Group)*\ )|(\ vserver\ )|(\ policy\ )|(\ policylabel\ )|(\ limitIdentifier\ )|(^show\ (?!(system|ns\ (ns.conf|runningConfig))))|(save)|(stat\ .*serv)

使用 NetScaler GUI 配置命令策略

  1. 导航到“系统”>“用户管理”>“命令策略”
  2. 在详细信息窗格中,单击“添加”以创建命令策略。
  3. 在“配置命令策略”页面中,设置以下参数:

    1. 策略名称
    2. 操作
    3. 命令规范
  4. 单击确定

为系统用户身份验证配置命令策略

将命令策略绑定到用户帐户和用户组

定义命令策略后,必须将其绑定到相应的用户帐户和组。绑定策略时,必须为其分配优先级,以便设备能够在两个或多个适用的命令策略发生冲突时确定要遵循的命令策略。

命令策略按以下顺序进行评估:

  • 直接绑定到用户和相应组的命令策略是根据优先级编号评估的。优先级号较低的命令策略先评估优先级号较高的命令策略。因此,编号较小的命令策略明确授予或拒绝的任何权限都不会被编号较高的命令策略所覆盖。
  • 当两个命令策略(一个绑定到用户帐户,另一个绑定到一个组)具有相同的优先级号时,将首先评估直接绑定到用户帐户的命令策略。

使用命令行界面将命令策略绑定到用户

在命令提示符处,键入以下命令以将命令策略绑定到用户并验证配置:

  • bind system user <userName> -policyName <policyName> <priority>
  • show system user <userName>

示例:

> bind system user user1 -policyName read_all 1

使用 NetScaler GUI 将命令策略绑定到用户帐户

导航到“系统”>“用户管理”>“用户”,选择用户并绑定命令策略。

将命令策略绑定到系统用户帐户

或者,您可以修改默认优先级,以确保按正确的顺序对策略进行评估。

使用命令行界面将命令策略绑定到组

在命令提示符处,键入以下命令以将命令策略绑定到用户组并验证配置:

  • bind system group <groupName> -policyName <policyName> <priority>
  • show system group <groupName>

示例:

> bind system group Managers -policyName read_all 1

使用 NetScaler GUI 将命令策略绑定到用户组

导航到“系统”>“用户管理”>“”,选择组并绑定命令策略。

在 NetScaler GUI 上将命令策略绑定到系统用户组帐户

或者,您可以修改默认优先级,以确保按正确的顺序对策略进行评估。

示例用例:管理制造组织中的用户帐户、用户组和命令策略

以下示例显示如何创建一组完整的用户帐户、组和命令策略,并将每个策略绑定到相应的组和用户。这家名为 Example Manufacturing, Inc. 的公司有三个用户可以访问 NetScaler 设备:

  • John Doe。IT 经理。John 必须能够看到 NetScaler 配置的所有部分,但无需修改任何内容。

  • Maria Ramiez。首席 IT 管理员。Maria 必须能够查看和修改 NetScaler 配置的所有部分,NetScaler 命令除外(本地策略规定必须以 nsroot 身份登录时执行)。

  • Michael Baldrock。负责负载平衡的 IT 管理员。Michael 必须能够看到 NetScaler 配置的所有部分,但只能修改负载平衡功能。

下表显示了示例公司的网络信息、用户帐户名、组名和命令策略的明细。

字段 注意
NetScaler 主机名 ns01.example.net 不适用
用户帐户 johnd、mariar 和 michaelb IT 经理 John Doe、IT 管理员 Maria Ramirez 和 IT 管理员 Michael Baldrock。
Managers 和 SysOps 所有经理和所有 IT 管理员。
命令策略 read_all、modify_lb 和 modify_all 允许完全只读访问权限、允许修改负载平衡访问权限和允许完全修改访问权限。

以下描述将引导您完成在名为 ns01.example.net 的 NetScaler 设备上创建一套完整的用户帐户、组和命令策略的过程。

该描述包括将相应的用户帐户和组相互绑定以及将相应的命令策略绑定到用户帐户和组的过程。

此示例说明如何使用优先级为 IT 部门的每位用户授予精确的访问权限和权限。

该示例假设已在 NetScaler 上执行了初始安装和配置。

为示例组织配置用户帐户、组和命令策略

  1. 使用“配置用户帐户”部分中描述的过程创建用户帐户 jondmariarmichaelb
  2. 使用配置用户组中描述的过程创建用户组 ManagersSysOps,然后将用户 mariarmichaelb 绑定到 SysOps 组,将用户 johnd 绑定到 Managers 组。
  3. 使用创建自定义命令策略中描述的过程创建以下命令策略:

    • read_all 包含操作 允许 和命令规范 "(^show\s+(?!system)(?!ns ns.conf)(?!ns runningConfig).*)|(^stat.*)"
    • modify_lb 将操作设置为“允许”,命令规范为 "^set\s+lb\s+.*$"
    • modify_all,操作为“允许”,命令规范为 "^\S+\s+(?!system).*"
  4. 使用“将命令策略绑定到用户和组”中描述的过程将 read_all 命令策略绑定到 SysOps 组,优先级值为 1
  5. 使用“将命令策略绑定到用户和组”中描述的过程将 modify_lb 命令策略绑定到用户 michaelb,优先级值为 5

您刚刚创建的配置结果如下:

  • IT 经理 John Doe 对整个 NetScaler 配置具有只读访问权限,但他无法进行修改。
  • IT 负责人 Maria Ramirez 几乎可以完全访问 NetScaler 配置的所有区域,只需登录即可执行 NetScaler 级别的命令。
  • 负责负载平衡的 IT 管理员 Michael Baldrock 拥有 NetScaler 配置的只读访问权限,并且可以修改负载平衡的配置选项。

适用于特定用户的命令策略集是直接应用于用户帐户的命令策略和应用于该用户所属的一个或多个组的命令策略的组合。

每次用户输入命令时,操作系统都会搜索该用户的命令策略,直到找到与该命令相匹配的具有 ALLOW 或 DENY 操作的策略。找到匹配项后,操作系统会停止其命令策略搜索并允许或拒绝访问该命令。

如果操作系统找不到匹配的命令策略,则会根据 NetScaler 设备的默认拒绝策略拒绝用户访问该命令。

注意:

将用户分成多个组时,请注意不要造成意想不到的用户命令限制或权限。为避免这些冲突,在将用户分组组织时,请记住 NetScaler 命令策略搜索程序和策略排序规则。

用户、用户组和命令策略