Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

TACACS+ 身份验证

Junos OS 支持 TACACS+ 对网络设备上的用户进行集中身份验证。要在设备上使用 TACACS+ 身份验证,您(网络管理员)必须配置有关网络上一个或多个 TACACS+ 服务器的信息。您还可以在设备上配置 TACACS+ 计费,以收集有关登录或注销 LAN 的用户的统计数据,并将数据发送到 TACACS+ 计费服务器。

配置 TACACS+ 身份验证

TACACS+ 身份验证是一种对尝试访问网络设备的用户进行身份验证的方法。

要配置 TACACS+,请执行以下操作:

配置 TACACS+ 服务器详细信息

要在设备上使用 TACACS+ 身份验证,请配置有关网络上一个或多个 TACACS+ 服务器的信息,方法是在层次结构级别为每个 [edit system] TACACS+ 服务器包含一个tacplus-server语句。设备将按配置顺序查询 TACACS+ 服务器。如果主服务器(配置的第一个服务器)不可用,设备将尝试联系列表中的每个服务器,直到收到响应。

网络设备可以将经过 TACACS+ 身份验证的用户映射到本地定义的用户帐户或用户模板帐户,以确定授权。默认情况下,在以下情况下, Junos OS 会将经过 TACACS+ 身份验证的用户分配给用户模板帐户 remote(如果已配置):

  • 经过身份验证的用户未在本地设备上配置用户帐户。

  • TACACS+ 服务器未将用户分配到本地用户模板,或者服务器分配的模板未在本地设备上配置。

TACACS+ 服务器可以将经过身份验证的用户分配给其他用户模板,以向该用户授予不同的管理权限。用户在 CLI 中保留相同的登录名,但从分配的模板继承登录类、访问权限和有效用户 ID。如果经过 TACACS+ 身份验证的用户未映射到任何本地定义的用户帐户或用户模板,并且未配置模板 remote ,则身份验证将失败。

注:

remote用户名是一个特殊情况Junos OS,必须始终为小写。它充当由远程服务器进行身份验证但在设备上没有本地配置的用户帐户的用户的模板。 Junos OSremote 模板的权限应用于没有本地定义帐户的经过身份验证的用户。映射到模板的 remote 所有用户都在同一登录类中。

由于远程身份验证是在多台设备上配置的,因此通常在配置组内进行配置。此处显示的步骤位于名为 global的配置组中。使用配置群组是可选的。

要配置 TACACS+ 服务器的身份验证,请执行以下操作:

  1. 配置 TACACS+ 身份验证服务器的 IPv4 地址或 IPv6 地址。

    例如:

  2. (可选)配置发送到 TACACS+ 服务器的请求的数据包源地址。

    例如:

    源地址是在其中一个路由器接口或交换机接口上配置的有效 IPv4 地址或 IPv6 地址。如果网络设备有多个可以访问 TACACS+ 服务器的接口,请分配一个 IP 地址,该设备可用于与 TACACS+ 服务器进行所有通信。这样做会将固定地址设置为本地生成的 IP 数据包的源地址。

  3. 配置网络设备用于向 TACACS+ 服务器进行身份验证的共享密钥密码。

    配置的密码必须与 TACACS+ 服务器上配置的密码匹配。如果密码包含空格,请用引号将其括起来。设备将密码作为加密值存储在配置数据库中。

    例如:

  4. (可选)指定要联系 TACACS+ 服务器的端口(如果与默认端口 (49) 不同)。

    例如:

  5. (可选)配置设备等待接收来自 TACACS+ 服务器的响应的时间量。

    默认情况下,设备等待 3 秒。您可以配置 timeout 1 到 90 秒之间的值。

    例如,要等待 15 秒等待服务器的响应:

  6. (可选)将设备配置为为多个请求维护一个到服务器的打开 TCP 连接,而不是为每次连接尝试打开单独的连接。
    注:

    早期版本的 TACACS+ 服务器不支持该 single-connection 选项。如果指定此选项,但服务器不支持它,设备将无法与该 TACACS+ 服务器通信。

  7. (可选)要通过特定路由实例路由 TACACS+ 数据包,请配置语句 routing-instance 并指定有效的路由实例。

    默认情况下, Junos OS 通过默认路由实例路由 TACACS+ 的身份验证、授权和记帐数据包。

  8. 指定身份验证顺序,并包括该 tacplus 选项。

    在以下示例中,每当用户尝试登录时, Junos OS 首先查询 TACACS+ 服务器进行身份验证。如果失败,它将查询 RADIUS 服务器。如果失败,它将尝试使用本地配置的用户帐户进行身份验证。

  9. 将登录类分配给没有本地定义的用户帐户的经过 TACACS+ 身份验证的用户。

    配置用户模板帐户的方式与配置本地用户帐户的方式相同,不同之处在于不配置本地身份验证密码,因为 TACACS+ 服务器对用户进行身份验证。

    • 要对所有经过 TACACS+ 身份验证的用户使用相同的权限,请配置 remote 用户模板。

      例如:

    • 要对不同的 TACACS+ 身份验证用户使用不同的登录类,并授予他们不同的权限:

      1. Junos OS 配置中创建多个用户模板。例如:

      2. 配置 TACACS+ 服务器以将经过身份验证的用户映射到相应的用户模板。

        例如,将 local-user-name 瞻博网络供应商特定属性 (VSA) 设置为设备上配置的用户模板的名称,在上一示例中为 RO、OP 或 SU。如果设备无法将用户分配到本地用户帐户或用户模板,且 remote 未配置用户模板,则身份验证将失败。

配置 TACACS+ 以使用管理实例

默认情况下, Junos OS 通过默认路由实例路由 TACACS+ 的身份验证、授权和记帐数据包。您还可以通过非默认 VRF 实例中的管理接口路由 TACACS+ 数据包。

要通过 mgmt_junos 管理实例路由 TACACS+ 数据包,请执行以下操作:

  1. mgmt_junos启用管理实例。

  2. routing-instance mgmt_junos为 TACACS+ 认证服务器和 TACACS+ 记帐服务器配置语句(如果已配置)。

为多个 TACACS+ 服务器配置相同的身份验证服务

您可以通过在 和 [edit system tacplus-server][edit system tacplus-options] 层次结构级别包含语句,为多个 TACACS+ 服务器配置相同的身份验证服务。

要将同一身份验证服务分配给多个 TACACS+ 服务器,请执行以下操作:

  1. 按照中所述 配置 TACACS+ 身份验证配置 TACACS+ 服务器。
  2. service-name[edit system tacplus-options]层次结构级别配置语句。
    service-name 是身份验证服务的名称,默认情况下为 junos-exec

    例如:

以下示例说明如何为多个 TACACS+ 服务器配置相同的身份验证服务:

配置瞻博网络供应商特定的 TACACS+ 属性

Junos OS 可以将经过 TACACS+ 身份验证的用户映射到本地定义的用户帐户或用户模板帐户,这决定了授权。您还可以通过在 TACACS+ 服务器上定义瞻博网络供应商特定的 TACACS+ 属性,选择性地配置用户的访问权限。您可以按用户在 TACACS+ 服务器配置文件中定义属性。对用户进行身份验证后,网络设备通过 TACACS+ 服务器的授权请求检索这些属性。

要指定这些属性,请在 service TACACS+ 服务器配置文件中包含以下形式的语句:

可以在语句或group语句中user定义service语句。

配置 TACACS+ 授权配置文件的定期刷新

将运行 Junos OS 的设备配置为使用 TACACS+ 服务器进行身份验证时,设备会提示用户输入登录信息,这些信息由 TACACS+ 服务器验证。成功对用户进行身份验证后,网络设备会向 TACACS+ 服务器发送授权请求,以获取用户的授权配置文件。授权配置文件指定经过身份验证的用户或设备的访问权限。

TACACS+ 服务器将授权配置文件作为授权回复消息的一部分发送。在 TACACS+ 服务器上配置的远程用户将映射到在运行 Junos OS的设备上配置的本地用户或用户模板。 Junos OS 结合了用户的远程授权配置文件和本地配置的授权配置文件,后者在 [edit system login class] 层次结构级别进行配置。

默认情况下,授权请求和回复消息的交换仅在身份验证成功后发生一次。您可以配置设备,以便定期 Junos OS 从 TACACS+ 服务器获取远程授权配置文件,并刷新本地存储的授权配置文件。此定期刷新可确保本地设备反映授权参数中的任何更改,而无需用户重新启动身份验证过程。

要启用授权配置文件的定期刷新,必须设置本地设备检查在 TACACS+ 服务器上远程配置的授权配置文件的时间间隔。如果远程授权配置文件发生更改,设备将从 TACACS+ 服务器获取授权配置文件以及在登录类层次结构下配置的授权配置文件。设备通过组合远程和本地配置的授权配置文件来刷新存储在本地的授权配置文件。

您可以在运行的 Junos OS 设备上本地配置刷新时间间隔,也可以直接在 TACACS+ 服务器上配置刷新时间间隔。时间间隔范围为 15 到 1440 分钟。

  • 要在本地设备上配置授权配置文件的定期刷新,请在层次结构级别包含 authorization-time-interval 语句 [edit system tacplus-options] ,如下所示:
  • 要在 TACACS+ 服务器上配置定期刷新,请使用 refresh-time-interval 以下语法在授权配置文件中添加参数:

使用以下准则确定哪个时间间隔配置优先:

  • 如果仅在 TACACS+ 服务器上配置刷新时间间隔,或者仅在运行 Junos OS的设备上配置刷新时间间隔,则配置的值将生效。
  • 如果在 TACACS+ 服务器和正在运行 Junos OS的设备上都配置了刷新时间间隔,则在 TACACS+ 服务器上配置的值优先。

  • 如果未在 TACACS+ 服务器或正在运行 Junos OS的设备上配置刷新时间间隔,则不会发生定期刷新。

  • 如果在 TACACS+ 服务器上配置的刷新时间间隔超出范围或无效,则本地配置的刷新时间间隔将生效。如果未在本地配置刷新时间间隔,则不会发生定期刷新。

设置定期刷新时间间隔后,如果用户在本地设备发送授权请求之前更改了刷新间隔,则更新后的刷新间隔将在下一次立即定期刷新后生效。

示例:配置 TACACS+ 服务器以进行系统身份验证

此示例通过 TACACS+ 服务器配置系统身份验证。

要求

准备工作:

  • 执行初始设备配置。请参阅适用于您设备的入门指南。

  • 在您的网络上至少设置一个 TACACS+ 服务器。

概述

在此示例中,您将添加一个 IP 地址为 172.16.98.1 的新 TACACS+ 服务器。您可以将 TACACS+ 服务器的共享密钥密码指定为 Tacacssecret1。设备将密钥作为加密值存储在配置数据库中。最后,指定设备在 TACACS+ 服务器请求中使用的源地址。在大多数情况下,您可以使用设备的环路地址,在本例中为 10.0.0.1。

您可以在网络设备上配置对多种用户身份验证方法的支持,例如本地密码身份验证、TACACS+ 和 RADIUS。配置多种身份验证方法时,可以确定设备尝试不同方法的顺序。在此示例中,您将设备配置为首先使用 TACACS+ 身份验证服务,如果失败,则尝试本地密码身份验证。

经过 TACACS+ 身份验证的用户必须映射到网络设备上的本地用户帐户或本地用户模板帐户,这将确定授权。默认情况下,如果经过 TACACS+ 身份验证的用户未映射到本地用户帐户或特定用户模板,则会将该用户分配到 remote 用户模板(如果已配置)。此示例配置 remote 用户模板。

配置

程序

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit] 中,然后进入 commit 配置模式。

分步过程

要配置 TACACS+ 服务器以进行系统身份验证,请执行以下操作:

  1. 添加新的 TACACS+ 服务器并设置其 IP 地址。

  2. 指定 TACACS+ 服务器的共享密钥(密码)。

  3. 将设备的环路地址指定为源地址。

  4. 指定设备的身份验证顺序,并包括该 tacplus 选项。

  5. remote配置用户模板及其登录类。
结果

在配置模式下,输入 show system 命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。

以下输出仅包含与此示例相关的配置层次结构部分:

配置设备后,进入 commit 配置模式。

验证

确认配置工作正常。

验证 TACACS+ 服务器配置

目的

验证 TACACS+ 服务器是否对用户进行身份验证。

操作

登录到网络设备,并验证登录是否成功。要验证设备是否使用 TACACS+ 服务器进行身份验证,您可以尝试使用未在配置中定义本地身份验证密码的帐户登录。

瞻博网络供应商特定的 TACACS+ 属性

Junos OS 支持在 TACACS+ 服务器上配置瞻博网络 TACACS+ 供应商特定属性 (VSA)。 表 1 列出了受支持的瞻博网络 VSA。

某些属性接受 POSIX 1003.2 中定义的扩展正则表达式。如果正则表达式包含任何空格、运算符或通配符,请用引号将其括起来。有关详细信息,请参阅:

表 1: 瞻博网络供应商特定的 TACACS+ 属性

名称

Description

长度

字符串

local-user-name

指示用户登录到设备时分配给此用户的用户模板的名称。

≥3

一个或多个包含可打印 ASCII 字符的八位位组。

allow-commands

包含一个扩展的正则表达式,除了用户的登录类权限位授权的那些命令之外,它还允许用户运行命令。

≥3

一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。

allow-commands-regexps

包含一个扩展的正则表达式,除了用户的登录类权限位授权的那些命令之外,它还允许用户运行命令。

≥3

一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。

allow-configuration

包含一个扩展的正则表达式,除了由用户的登录类权限位授权的那些语句之外,它还允许用户查看和修改配置语句。

≥3

一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。

allow-configuration-regexps

包含一个扩展的正则表达式,除了由用户的登录类权限位授权的那些语句之外,它还允许用户查看和修改配置语句。

≥3

一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。

deny-commands

包含一个扩展正则表达式,该表达式拒绝用户运行由用户的登录类权限位授权的命令的权限。

≥3

一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。

deny-commands-regexps

包含一个扩展正则表达式,该表达式拒绝用户运行由用户的登录类权限位授权的命令的权限。

≥3

一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。

deny-configuration

包含一个扩展正则表达式,该表达式拒绝用户查看或修改由用户的登录类权限位授权的配置语句的权限。

≥3

一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。

deny-configuration-regexps

包含一个扩展正则表达式,该表达式拒绝用户查看或修改由用户的登录类权限位授权的配置语句的权限。

≥3

一个或多个包含可打印 ASCII 字符的八位位组,形式为扩展正则表达式。

user-permissions

包含服务器用于指定用户权限的信息。

注:

当 TACACS+ 服务器定义 user-permissions 向用户授予 maintenance 权限 all 的属性时,用户的组成员身份列表不会自动包含 UNIX 轮组。某些操作(如从本地 shell 运行命令) su root 需要轮组成员身份权限。但是,当网络设备定义具有权限 maintenanceall的本地用户帐户时,将自动授予该用户 UNIX 轮组的成员资格。因此,我们建议您创建具有所需权限的用户模板帐户,并将各个用户帐户与用户模板帐户关联。

≥3

一个或多个包含可打印 ASCII 字符的八位位组。

请参阅 访问权限级别概述

authentication-type

指示用于对用户进行身份验证的身份验证方法(本地数据库或 TACACS+ 服务器)。如果使用本地数据库对用户进行身份验证,则属性值将显示“local”。如果使用 TACACS+ 服务器对用户进行身份验证,则属性值将显示“远程”。

≥5

一个或多个包含可打印 ASCII 字符的八位位组。

session-port

指示已建立会话的源端口号。

整数的大小

整数

在 RADIUS 或 TACACS+ 服务器上使用正则表达式允许或拒绝命令

Junos OS 可以将经过 RADIUS 和 TACACS+ 身份验证的用户映射到本地定义的用户帐户或用户模板帐户,后者定义用户的访问权限。您还可以通过在相应的身份验证服务器上定义瞻博网络 RADIUS 和 TACACS+ 供应商特定属性 (VSA),选择性地配置用户的访问权限。

用户的登录类定义了一组权限,该权限确定用户有权执行哪些操作模式和配置模式命令,以及用户可以查看和修改哪些配置区域。登录类还可以定义正则表达式,这些正则表达式允许或拒绝用户执行某些命令或查看和修改配置的某些区域,以及权限标志授权的内容。登录类可以包含以下语句来定义用户授权:

  • permissions

  • allow-commands

  • allow-commands-regexps

  • allow-configuration

  • allow-configuration-regexps

  • deny-commands

  • deny-commands-regexps

  • deny-configuration

  • deny-configuration-regexps

同样,RADIUS 或 TACACS+ 服务器配置可以使用瞻博网络 VSA 来定义确定用户访问权限的特定权限或正则表达式。有关受支持的 RADIUS 和 TACACS+ VSA 的列表,请参阅以下内容:

您可以将 RADIUS 或 TACACS+ 服务器上的用户权限定义为空格分隔值的列表。

  • RADIUS 服务器使用以下属性和语法:

    例如:

  • TACACS+ 服务器使用以下属性和语法:

    例如:

RADIUS 或 TACACS+ 服务器还可以定义瞻博网络 VSA,这些 VSA 使用单个扩展正则表达式(如 POSIX 1003.2 中所定义)来允许或拒绝用户执行某些命令或查看和修改配置区域的能力。您可以将多个命令或配置层次结构括在括号中,并使用管道符号将它们分隔开。如果正则表达式包含任何空格、运算符或通配符,请用引号将其括起来。在本地和远程配置授权参数时,设备会将 TACACS+ 或 RADIUS 授权期间收到的正则表达式与本地设备上定义的任何正则表达式合并。

  • RADIUS 服务器使用以下属性和语法:

    例如:

  • TACACS+ 服务器使用以下属性和语法:

    例如:

RADIUS 和 TACACS+ 服务器还支持配置与可在本地设备上配置的相同 *-regexps 语句相对应的属性。*-regexps TACACS+ 属性和 *-Regexps RADIUS 属性使用与先前属性相同的正则表达式语法,但它们使您能够使用变量配置正则表达式。

  • RADIUS 服务器使用以下属性和语法:

  • TACACS+ 服务器使用以下属性和语法:

    例如,TACACS+ 服务器配置可以定义以下属性:

在 RADIUS 或 TACACS+ 服务器上,您还可以使用简化的语法定义属性,其中您可以在单独的行上指定每个单独的表达式。

对于 RADIUS 服务器,请使用以下语法指定各个正则表达式:

对于 TACACS+ 服务器,请使用以下语法指定各个正则表达式:

注:
  • 在 TACACS+ 服务器语法中,数值 1 到 n 必须是唯一的,但不必是连续的。例如,以下语法有效:

  • RADIUS 或 TACACS+ 服务器对单个正则表达式行的数量施加了限制。

  • 发出 show cli authorization 命令时,命令输出会在一行中显示正则表达式,即使您在单独的行上指定每个表达式也是如此。

用户可以通过发出 show cli authorization 操作模式命令来验证其类、权限以及命令和配置授权。

注:

在网络设备上本地配置授权参数以及在 RADIUS 或 TACACS+ 服务器上远程配置授权参数时,设备会将在 TACACS+ 或 RADIUS 授权期间收到的正则表达式与任何本地配置的正则表达式合并。如果最终表达式包含语法错误,则总体结果是无效的正则表达式。

配置 TACACS+ 系统记帐

您可以在设备上配置 TACACS+ 记帐,以收集有关登录或注销 LAN 的用户的统计数据,并将这些数据发送到 TACACS+ 记帐服务器。统计数据可用于常规网络监控、分析和跟踪使用模式,或根据会话持续时间或访问的服务类型向用户计费。

要配置 TACACS+ 记帐,请指定:

  • 一个或多个 TACACS+ 计费服务器,用于从设备接收统计数据

  • 要收集的会计数据类型

您可以将同一服务器用于 TACACS+ 记帐和身份验证,也可以使用单独的服务器。您可以指定 TACACS+ 计费服务器的列表。设备将按配置顺序查询服务器。如果主服务器(配置的第一个服务器)不可用,设备将尝试联系列表中的每个服务器,直到收到响应。

启用 TACACS+ 计费后,作为 TACACS+ 客户端的瞻博网络设备可以向 TACACS+ 服务器通知用户活动,例如软件登录、配置更改和交互式命令。

配置 TACACS+ 服务器记帐

要配置 TACACS+ 服务器记帐,请执行以下操作:

  1. 配置要审核的事件。

    例如:

    events 可以包括以下一项或多项:

    • login- 审核登录

    • change-log—审计配置更改

    • interactive-commands- 审核交互式命令(任何命令行输入)

  2. 启用 TACACS+ 计费。
  3. 配置一个或多个 TACACS+ 记帐服务器的地址。

    例如:

    注:

    如果未在层次结构级别配置 [edit system accounting destination tacplus] 任何 TACACS+ 服务器,设备将使用在层次结构级别配置 [edit system tacplus-server] 的 TACACS+ 服务器。

  4. (可选)配置 TACACS+ 计费请求的源地址。

    例如:

    源地址是在其中一个路由器接口或交换机接口上配置的有效 IPv4 地址或 IPv6 地址。如果网络设备有多个可以访问 TACACS+ 服务器的接口,请分配一个 IP 地址,该设备可用于与 TACACS+ 服务器进行所有通信。这样做会将固定地址设置为本地生成的 IP 数据包的源地址。

  5. 配置网络设备用于向 TACACS+ 记帐服务器进行身份验证的共享密钥密码。

    配置的密码必须与 TACACS+ 服务器上配置的密码匹配。如果密码包含空格,请用引号将其括起来。设备将密码作为加密值存储在配置数据库中。

    例如:

  6. (可选)如有必要,请指定要将记帐数据包发送到哪个 TACACS+ 记帐服务器端口(如果与默认值 (49) 不同)。
  7. (可选)配置设备等待从 TACACS+ 计费服务器接收响应的时间量。

    默认情况下,设备等待三秒钟。您可以配置 timeout 1 到 90 秒之间的值。

    例如,要等待 15 秒等待服务器的响应:

  8. (可选)将设备配置为为多个请求维护一个到服务器的打开 TCP 连接,而不是为每次连接尝试打开单独的连接。
    注:

    早期版本的 TACACS+ 服务器不支持该 single-connection 选项。如果指定此选项,但服务器不支持它,设备将无法与该 TACACS+ 服务器通信。

  9. (可选)要通过非默认管理实例或其他路由实例(而不是默认路由实例)路由 TACACS+ 记帐数据包,请配置 routing-instance 语句并指定路由实例。
    例如:
  10. 要确保登录事件的启动和停止请求正确记录在 TACACS+ 服务器记帐日志文件而不是管理日志文件中,请在层次结构级别包括no-cmd-attribute-value[edit system tacplus-options]语句或exclude-cmd-attribute语句。
    注:

    这两个语句都支持在记帐文件而不是管理文件中正确记录记帐请求。如果配置该 no-cmd-attribute-value 语句,则在启动和停止请求中将属性的值 cmd 设置为 null 字符串。如果配置该 exclude-cmd-attribute 语句, cmd 则该属性将从启动和停止请求中完全排除。

变更历史表

是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。

版本
说明
18.2R1
从 Junos OS 18.2R1 版开始,您可以通过在身份验证中配置的任何路由实例路由 TACACS+ 流量。
17.4R1
从 Junos OS 17.4R1 版开始,现有 TACACS+ 行为得到增强,可支持通过名为 mgmt_junos 的非默认 VRF 实例中的管理接口路由 TACACS+ 数据包。