RADIUS TACACS+ 和本地密码的 身份验证顺序
Junos OS 支持不同的身份验证方法,包括本地密码身份验证、 RADIUS 和 TACACS+,以控制对网络的访问。
将设备配置为支持多种身份验证方法时,可以确定设备尝试不同方法的顺序。本主题讨论身份验证顺序的工作原理以及如何在设备上对其进行配置。
身份验证顺序概述
您(网络管理员)可以将语句 authentication-order
配置为优先顺序, Junos OS 以尝试不同的身份验证方法来验证用户对路由器或交换机的访问权限。如果未设置身份验证顺序,则默认情况下, Junos OS 会根据用户配置的本地密码来验证用户。
如果身份验证顺序包括 RADIUS 或 TACACS+ 服务器,但服务器不响应请求, Junos OS 则始终默认尝试本地密码身份验证作为最后的手段。
如果身份验证顺序包括 RADIUS 或 TACACS+ 服务器,但服务器拒绝请求,则请求的处理会更加复杂。
-
如果(本地密码身份验证)包含在身份验证顺序的末尾,并且远程身份验证服务器拒绝身份验证请求,则
password
设备将尝试本地密码身份验证。 -
如果(本地密码身份验证)未包含在身份验证顺序中,并且远程身份验证服务器拒绝身份验证请求,则
password
请求以拒绝结束。
因此,设备必须包含 password
作为最终身份验证顺序选项,以便设备在远程身份验证服务器拒绝请求时尝试本地密码身份验证。
如果身份验证顺序设置为 authentication-order password
,则设备仅使用本地密码身份验证。
使用远程身份验证
您可以将 Junos OS 配置为 RADIUS 或 TACACS+ 身份验证客户端(或两者的组合)。
如果语句中包含的 authentication-order
认证方法不可用,或者认证方法可用,但相应的认证服务器返回拒绝响应, Junos OS 请尝试语句中包含的 authentication-order
下一个认证方法。
RADIUS 或 TACACS+ 服务器身份验证可能会由于以下一个或多个原因而失败:
-
已配置身份验证方法,但未配置相应的身份验证服务器。例如,语句中包含
authentication-order
RADIUS 和 TACACS+ 身份验证方法,但相应的 RADIUS 或 TACACS+ 服务器未在各自的[edit system radius-server]
[edit system tacplus-server]
层次结构级别进行配置。 -
如果未配置超时,则身份验证服务器不会在该服务器配置的超时值之前或默认超时之前进行响应。
-
由于网络问题,无法访问身份验证服务器。
由于以下一个或两个原因,身份验证服务器可能会返回拒绝响应:
-
访问路由器或交换机的用户配置文件未在身份验证服务器上配置。
-
用户输入不正确的登录凭据。
如何使用本地密码身份验证
您可以在语句中authentication-order
显式配置password
身份验证方法,也可以在远程身份验证服务器发生故障时将此方法用作回退机制。password
身份验证方法查询在层次结构级别配置的[edit system login]
本地用户配置文件。在以下场景中,用户可以使用本地用户名和密码登录路由器或交换机:
-
密码认证方法 (
password
) 显式配置为语句中的authentication-order
身份验证方法之一。在这种情况下,如果没有以前的身份验证方法接受登录凭据,设备将尝试本地密码身份验证。无论以前的身份验证方法无法响应,还是由于用户名或密码不正确而返回拒绝响应,都是如此。
-
密码身份验证方法未显式配置为语句中的
authentication-order
身份验证方法之一。在这种情况下,仅当所有配置的身份验证方法都无法响应时,操作系统才会尝试本地密码身份验证。如果任何配置的身份验证方法由于用户名或密码不正确而返回拒绝响应,则操作系统不使用本地密码身份验证。
身份验证尝试顺序
表 1描述层次结构级别的语句[edit system]
如何authentication-order
确定 Junos OS 用于验证用户访问设备的过程。
语法 |
身份验证尝试顺序 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
如果配置了 SSH 公钥,则 SSH 用户身份验证首先尝试执行公钥身份验证,然后再使用语句中 authentication-order
配置的身份验证方法。如果希望 SSH 登录使用语句中 authentication-order
配置的身份验证方法,而无需先尝试执行公钥身份验证,请不要配置 SSH 公钥。
配置 RADIUS、TACACS+ 和本地密码身份验证的 身份验证顺序
使用该 authentication-order
语句,您可以在验证用户对路由器或交换机的访问权限时,确定尝试不同身份验证方法的 Junos OS 顺序。如果未设置身份验证顺序,则默认情况下,将根据用户本地配置的密码来验证用户。
使用纯文本配置密码并依赖 Junos OS 对其进行加密时,您仍然以纯文本形式通过 Internet 发送密码。使用预加密的密码更安全,因为这意味着密码的纯文本永远不必通过互联网发送。此外,使用密码时,一次只能将一个用户分配给密码。
另一方面, RADIUS 和 TACACS+ 对密码进行加密。这些身份验证方法允许您一次分配一组用户,而不是逐个分配用户。但以下是这些身份验证系统的不同之处:
-
RADIUS 使用 UDP;TACACS+ 使用 TCP。
-
RADIUS 在传输过程中仅加密密码,而 TACACS+ 加密整个会话。
-
RADIUS 结合了身份验证(设备)和授权(用户),而 TACACS+ 将身份验证、授权和问责分开。
简而言之,TACACS+ 比 RADIUS 更安全。但是,RADIUS 具有更好的性能并且更具互操作性。RADIUS 受到广泛支持,而 TACACS+ 是 Cisco 的专有产品,在 Cisco 之外并未得到广泛支持。
您可以根据系统、系统限制以及 IT 策略和操作首选项来配置身份验证顺序。
要配置身份验证顺序,请在层次结构级别包含 authentication-order
语句 [edit system]
。
[edit system] user@host# set authentication-order [authentication-methods ]
有关可包含此语句的层次结构级别的列表,请参阅此语句的语句摘要部分。
以下是可能的认证订单输入选项:
-
radius
- 使用 RADIUS 身份验证服务器验证用户。 -
tacplus
— 使用 TACACS+ 身份验证服务器验证用户。 -
password
— 使用在层次结构级别的身份验证语句[edit system login user]
中本地配置的用户名和密码验证用户。
质询握手身份验证协议 (CHAP) 身份验证序列不能超过 30 秒。如果对客户端进行身份验证的时间超过 30 秒,则会放弃身份验证并启动新序列。
例如,假设您配置了三个 RADIUS 服务器,以便路由器或交换机尝试与每个服务器联系三次。进一步假设,每次重试时,服务器都会在 3 秒后超时。在这种情况下,在 CHAP 将其视为失败之前给予 RADIUS 身份验证方法的最长时间是 27 秒。如果向此配置添加更多 RADIUS 服务器,则可能不会联系它们,因为在尝试这些服务器之前可能会放弃身份验证过程。
Junos OS 对 CHAP 身份验证一次可以具有的常设身份验证服务器请求数实施限制。因此,当超过此限制时,身份验证服务器方法(例如 RADIUS)可能无法对客户端进行身份验证。如果身份验证失败,路由器或交换机将重新启动身份验证序列,直到身份验证成功并建立链路。但是,如果 RADIUS 服务器不可用,并且还配置了其他身份验证方法(如 tacplus
或 password
),则会尝试下一个身份验证方法。
以下示例说明如何配置 radius
和 password
身份验证:
[edit system] user@switch# set authentication-order [ radius password ]
下面的示例演示如何在语句之后radius
插入tacplus
语句:
[edit system] user@switch# insert authentication-order tacplus after radius
以下示例说明如何从身份验证顺序中删除 radius
语句:
[edit system] user@switch# delete authentication-order radius
示例:配置身份验证顺序
此示例说明如何配置用户登录的身份验证顺序。
要求
开始之前,请执行初始设备配置。请参阅适用于您设备的入门指南。
概述
您可以配置设备用于验证用户对设备的访问权限的身份验证方法顺序。对于每次登录尝试,设备将按配置的顺序尝试身份验证方法,直到密码匹配或尝试了所有身份验证方法。如果未配置远程身份验证,则会根据用户配置的本地密码对其进行验证。
此示例将设备配置为首先使用 RADIUS 身份验证服务尝试用户身份验证,然后使用 TACACS+ 身份验证服务,最后使用本地密码身份验证。
使用本地密码身份验证时,必须为要访问系统的每个用户创建一个本地用户帐户。但是,使用远程身份验证服务器时,可以创建一组用户共享的模板帐户(用于授权目的)。将用户分配给模板帐户时,命令行界面 (CLI) 用户名为登录名;但是,用户从模板帐户继承特权、文件所有权和有效用户 ID。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后进入 commit
配置模式。
delete system authentication-order set system authentication-order radius insert system authentication-order tacplus after radius insert system authentication-order password after tacplus
GUI 快速配置
分步过程
要配置身份验证顺序:
-
在 J-Web 用户界面中,选择
Configure>System Properties>User Management
。 -
单击
Edit
。将出现“编辑用户管理”对话框。 -
Authentication Method and Order
选择选项卡。 -
在“可用方法”下,选择设备应用于对用户进行身份验证的身份验证方法。使用箭头按钮将项目移动到“所选方法”列表。可用的方法包括:
-
RADIUS
-
TACACS+
-
本地密码
如果要使用多种方法对用户进行身份验证,请重复此步骤以将其他方法添加到“所选方法”列表中。
-
-
在“所选方法”下,使用向上箭头和向下箭头指定设备执行身份验证方法的顺序。
-
单击此项
OK
可检查您的配置并将其另存为候选配置。 -
配置设备后,单击
Commit Options>Commit
。
分步过程
要配置身份验证顺序:
-
删除任何现有
authentication-order
语句。[edit] user@host# delete system authentication-order
-
将 RADIUS 身份验证添加到身份验证顺序。
[edit] user@host# set system authentication-order radius
-
将 TACACS+ 身份验证添加到身份验证顺序中。
[edit] user@host# insert system authentication-order tacplus after radius
-
将本地密码身份验证添加到身份验证顺序。
[edit] user@host# insert system authentication-order password after tacplus
结果
在配置模式下,输入 show system authentication-order
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show system authentication-order authentication-order [ radius tacplus password ];
配置设备后,进入 commit
配置模式。
要完全设置 RADIUS 或 TACACS+ 身份验证,必须至少配置一个 RADIUS 或 TACACS+ 服务器,并创建用户帐户或用户模板帐户。
-
配置 RADIUS 服务器。请参阅 示例:配置 RADIUS 服务器以进行系统身份验证。
-
配置 TACACS+ 服务器。请参阅 示例:配置 TACACS+ 服务器以进行系统身份验证。
-
配置用户。请参阅 示例:配置新用户帐户。
-
配置模板帐户。请参阅 示例:创建模板帐户。
示例:为 RADIUS、TACACS+ 和密码身份验证配置系统身份验证
以下示例说明如何在运行 Junos OS 的设备上为 RADIUS、TACACS+ 和密码身份验证配置系统身份验证 。
在此示例中,只有用户 Philip 和经过 RADIUS 服务器身份验证的用户才能登录。如果用户登录但未通过 RADIUS 服务器进行身份验证,则会拒绝用户访问路由器或交换机。如果 RADIUS 服务器不可用,将使用身份验证方法对 password
用户进行身份验证,并允许访问路由器或交换机。有关密码认证方法的详细信息,请参见 身份验证顺序概述。
当 Philip 尝试登录系统时,如果 RADIUS 服务器对他进行身份验证,他将获得该 super-user
类的访问权限和权限。不会为其他用户配置本地帐户。当他们登录到系统并且 RADIUS 服务器对其进行认证时,将使用相同的用户标识 (UID) 9999 和与 operator
类关联的特权授予访问权限。
[edit] system { authentication-order radius; login { user philip { full-name "Philip"; uid 1001; class super-user; } user remote { full-name "All remote users"; uid 9999; class operator; } } }
出于授权目的,您可以使用模板帐户创建一组用户可以同时共享的单个帐户。例如,创建远程模板帐户时,一组远程用户可以同时共享单个 UID。有关模板帐户的详细信息,请参见 示例:配置身份验证顺序。
当用户登录到设备时, RADIUS 或 TACACS+ 服务器使用用户的登录名进行身份验证。如果身份验证服务器成功对用户进行身份验证,并且未在 [edit system login user]
层次结构级别配置用户,则结果如下:设备使用用户的默认远程模板用户帐户,前提是在层次结构级别配置 edit system login user remote
了远程模板帐户。远程模板帐户充当由身份验证服务器进行身份验证但在设备上缺少本地配置的用户帐户的所有用户的默认模板用户帐户。此类用户共享相同的登录类和 UID。
要配置备用模板用户,请指定 RADIUS 身份验证响应数据包中返回的user-name
参数。并非所有 RADIUS 服务器都 允许您更改此参数。下面显示了 Junos OS 配置示例:
[edit] system { authentication-order radius; login { user philip { full-name "Philip"; uid 1001; class super-user; } user operator { full-name "All operators"; uid 9990; class operator; } user remote { full-name "All remote users"; uid 9999; class read-only; } } }
假定您的 RADIUS 服务器配置了以下信息:
密码为“奥林匹亚”的用户菲利普
用户亚历山大,密码为“bucephalus”,用户名为“operator”
用户大流士与密码“红发”和用户名“操作员”
密码为“雅典娜”的用户 Roxane
Philip 将以超级用户 ()super-user
身份获得访问权限,因为它拥有唯一的本地用户帐户。Alexander 和 Darius 共享 UID 9990,并具有作为操作员的访问权限。Roxane 没有模板用户覆盖,因此与所有其他远程用户共享访问权限,获得只读访问权限。