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

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

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

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

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

注意:

用户名是 remote Junos OS 演化版 中的特殊情况,必须始终使用小写。它充当由远程服务器进行身份验证但在设备上没有本地配置用户帐户的用户的模板。 Junos OS 演化版 会将模板的 remote 权限应用于那些没有本地定义帐户的经过身份验证的用户。映射到 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+ 服务器,以将经过身份验证的用户映射到相应的用户模板。

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

配置 TACACS+ 以使用管理实例

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

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

  1. 启用 mgmt_junos 管理实例。

  2. 为 TACACS+ 身份验证服务器和 TACACS+ 计费服务器(如果已配置)配置 routing-instance mgmt_junos 语句。

为多个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+ 服务器的授权请求检索这些属性。

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

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

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

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

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

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

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

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

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

请遵循以下准则,确定哪个时间间隔配置优先:

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

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

  • 如果 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 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层次结构级别的 [edit] CLI 中,然后进入 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+ 属性

姓名

描述

长度

字符串

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命令)需要 wheel 组成员资格权限。但是,当网络设备定义具有 或 all权限的maintenance本地用户帐户时,系统会自动向该用户授予 UNIX 轮组的成员资格。因此,我们建议您创建一个具有所需权限的用户模板帐户,并将单个用户帐户与用户模板帐户进行关联。

≥3

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

请参阅 访问权限级别概述

authentication-type

指示用于对用户进行身份验证的身份验证方法(本地数据库或TACACS+服务器)。如果使用本地数据库对用户进行身份验证,则属性值显示“本地”。如果用户使用 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+ 服务器还可以定义使用单个扩展正则表达式(如 POSIX 1003.2 中所定义)的瞻博网络 VSA,以允许或拒绝用户执行某些命令或查看和修改配置区域。将多个命令或配置层次结构括在括号中,并使用管道符号将它们分隔开。如果正则表达式包含任何空格、运算符或通配符,请用引号将其括起来。在本地和远程配置授权参数时,设备会将 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语句。
    注意:

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