Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

RADIUS 身份验证

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

配置 RADIUS 服务器身份验证

RADIUS 身份验证是一种对尝试访问网络设备的用户进行身份验证的方法。以下各节介绍使用 RADIUS 的原因及其配置方法。

为什么使用 RADIUS

您(网络管理员)可以使用不同的协议对网络设备上的用户进行集中身份验证,包括 RADIUS 和 TACACS+。我们推荐 RADIUS,因为它是一个多供应商 IETF 标准,其功能比 TACACS+ 或其他专有系统的功能更广泛地被接受。此外,我们建议使用一次性密码系统以提高安全性,这些系统的所有供应商都支持 RADIUS。

当您优先考虑互操作性和性能时,应使用 RADIUS:

  • 互操作性 — RADIUS 比 TACACS+ 更具互操作性,这主要是因为 TACACS+ 的专有性质。虽然 TACACS+ 支持更多协议,但普遍支持 RADIUS。

  • 性能 — 路由器和交换机上的 RADIUS 更轻。因此,网络工程师通常更喜欢 RADIUS,而不是 TACACS+。

配置 RADIUS 服务器详细信息

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

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

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

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

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

注意:

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

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

要通过 RADIUS 服务器配置身份验证,请执行以下操作:

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

    例如:

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

    例如:

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

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

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

    例如:

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

    默认端口为 1812(在 RFC 2865 中指定)。

    例如:

    注意:

    您还可以配置语句以 accounting-port 指定要将记帐数据包发送到哪个 RADIUS 服务器端口。默认值为 1813(在 RFC 2866 中指定)。

  5. (可选)配置设备尝试联系 RADIUS 服务器的次数以及设备等待接收服务器响应的时间量。

    默认情况下,设备尝试联系服务器三次并等待三秒钟。您可以配置 retry 1 到 100 次的值以及 timeout 1 到 1000 秒的值。

    例如,要联系 RADIUS 服务器 2 次并等待 10 秒等待响应:

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

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

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

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

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

      例如:

    • 要对不同的 RADIUS 身份验证用户使用不同的登录类,并授予他们不同的权限,请执行以下操作:

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

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

        将瞻博网络本地用户名瞻博网络 VSA(供应商特定属性)(供应商 2636,类型 1,字符串)设置为设备上配置的用户模板的名称,在上一示例中为 RO、OP 或 SU。RADIUS 服务器在 RADIUS 访问-接受消息中包含该属性。如果设备无法将用户分配到本地用户帐户或用户模板,且 remote 未配置用户模板,则身份验证将失败。

配置 RADIUS 以使用管理实例

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

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

  1. mgmt_junos启用管理实例。

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

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

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

要求

准备工作:

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

  • 在网络上至少设置一个 RADIUS 服务器。

概述

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

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

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

配置

程序

CLI 快速配置

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

分步过程

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

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

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

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

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

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

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

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

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

验证

确认配置工作正常。

验证 RADIUS 服务器配置

目的

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

行动

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

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

Junos OS 演化版支持在 RADIUS 服务器上配置瞻博网络 RADIUS 供应商特定属性 (VSA)。这些 VSA 封装在 RADIUS 供应商特定的属性中,供应商 ID 设置为瞻博网络 ID 号 2636。

表 1 列出了您可以配置的瞻博网络 VSA。

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

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

名字

描述

类型

长度

字符串

瞻博网络本地用户名

指示用户登录到设备时分配给此用户的用户模板的名称。此属性仅在访问-接受数据包中使用。

1

≥3

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

瞻博网络允许命令

包含一个扩展的正则表达式,除了用户的登录类权限位授权的那些命令之外,它还允许用户运行命令。此属性仅在访问-接受数据包中使用。

2

≥3

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

瞻博网络拒绝命令

包含一个扩展正则表达式,该表达式拒绝用户运行由用户的登录类权限位授权的命令的权限。此属性仅在访问-接受数据包中使用。

3

≥3

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

瞻博网络允许配置

包含一个扩展的正则表达式,除了由用户的登录类权限位授权的那些语句之外,它还允许用户查看和修改配置语句。此属性仅在访问-接受数据包中使用。

4

≥3

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

瞻博网络拒绝配置

包含一个扩展正则表达式,该表达式拒绝用户查看或修改由用户的登录类权限位授权的配置语句的权限。此属性仅在访问-接受数据包中使用。

5

≥3

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

Juniper-Interactive-Command

指示用户输入的交互式命令。此属性仅在记帐请求数据包中使用。

8

≥3

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

瞻博网络配置更改

指示导致配置(数据库)更改的交互式命令。此属性仅在记帐请求数据包中使用。

9

≥3

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

瞻博网络用户权限

包含服务器用于指定用户权限的信息。此属性仅在访问-接受数据包中使用。

注意:

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

10

≥3

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

该字符串是由空格分隔的权限标志的列表。必须完整指定每个标志的确切名称。

请参阅 访问权限级别概述

瞻博网络身份验证类型

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

11

≥5

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

瞻博网络会话端口

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

12

整数的大小

整数

Juniper-allow-configuration-Regexps
(仅限半径)

包含一个扩展的正则表达式,除了由用户的登录类权限位授权的那些语句之外,它还允许用户查看和修改配置语句。此属性仅在访问-接受数据包中使用。

13

≥3

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

Juniper-deny-configuration-Regexps
(仅限半径)

包含一个扩展正则表达式,该表达式拒绝用户查看或修改由用户的登录类权限位授权的配置语句的权限。此属性仅在访问-接受数据包中使用。

14

≥3

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

有关 VSA 的详细信息,请参阅 RFC 2138,远程身份验证拨入用户服务 (RADIUS)。

在 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 授权期间收到的正则表达式与任何本地配置的正则表达式合并。如果最终表达式包含语法错误,则总体结果是无效的正则表达式。

了解 RADIUS 记帐

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

要配置 RADIUS 记帐,请指定:

  • 一个或多个 RADIUS 记帐服务器,用于从设备接收统计数据

  • 要收集的会计数据类型

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

设备和 RADIUS 服务器之间的 RADIUS 记帐过程的工作方式如下:

  1. RADIUS 记帐服务器侦听特定端口上的用户数据报协议 (UDP) 数据包。RADIUS 记帐的默认端口为 1813。

  2. 设备将包含事件记录的 记帐请求 数据包转发到记帐服务器。与此请求方关联的事件记录包含一个 Acct-Status-Type 属性,其值指示此请求方的用户服务的开始。当请求方的会话结束时,计费请求将包含一个指示用户服务结束的 Acct-Status-Type 属性值。RADIUS 记帐服务器将此记录为包含会话信息和会话长度的停止记帐记录。

  3. RADIUS 记帐服务器将这些事件记录在文件中,作为开始记帐或停止记帐记录。在 FreeRADIUS 上,文件名是服务器的地址,例如 192.0.2.0。

  4. 记帐服务器向设备发送 记帐响应 数据包,确认它已收到记帐请求。

  5. 如果设备未从服务器收到记帐响应数据包,它将继续发送记帐请求,直到服务器返回响应。

您可以在 RADIUS 服务器上查看通过此过程收集的统计信息。要查看这些统计信息,请访问配置为接收这些统计信息的日志文件。

配置 RADIUS 系统记帐

启用 RADIUS 记帐后,作为 RADIUS 客户端的瞻博网络设备可以向 RADIUS 服务器通知用户活动,例如软件登录、配置更改和交互式命令。RADIUS 记帐的框架在 RFC 2866, RADIUS 记帐中进行了描述。

在 RADIUS 服务器上配置用户事件的审核

要配置 RADIUS 记帐:

  1. 配置要审核的事件。

    例如:

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

    • login- 审核登录

    • change-log—审计配置更改

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

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

    例如:

    注意:

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

  4. (可选)配置 RADIUS 记帐请求的源地址。

    例如:

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

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

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

    例如:

  6. (可选)如有必要,指定要将记帐数据包发送到哪个 RADIUS 记帐服务器端口(如果与默认值 (1813) 不同)。
    注意:

    如果在层次结构级别启用 RADIUS 记帐 [edit access profile profile-name accounting-order] ,则会在默认端口 1813 上触发记帐,即使您未为语句指定 accounting-port 值也是如此。

  7. (可选)配置设备尝试联系 RADIUS 记帐服务器的次数以及设备等待从服务器接收响应的时间量。

    默认情况下,设备尝试联系服务器三次并等待三秒钟。您可以配置 retry 1 到 100 次的值以及 timeout 1 到 1000 秒的值。

    例如,要联系服务器 2 次并等待 10 秒等待响应:

  8. (可选)要通过非默认管理实例而不是默认路由实例路由 RADIUS 记帐数据包,请配置语句 routing-instance mgmt_junos
  9. (可选)在层次结构级别配置enhanced-accounting[edit system radius-options]语句,以包括用户登录事件的其他记帐属性,包括访问方法、远程端口和访问权限。
    注意:

    要限制要审核的属性值的数量,请在层次结构级别配置 enhanced-avs-max <number> 语句 [edit system accounting]

以下示例为 RADIUS 记帐配置了三个服务器(10.5.5.5、10.6.6.6 和 10.7.7.7):