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+ 身份验证方法,但未在相应[edit system radius-server]的层级和[edit system tacplus-server]层级配置相应的 RADIUS 或 TACACS+ 服务器。 -
在为该服务器配置的超时值之前,或者在缺省超时之前(如果未配置超时),身份验证服务器不会响应。
-
由于网络问题,无法访问身份验证服务器。
由于以下一个或两个原因,身份验证服务器可能会返回拒绝响应:
-
访问路由器或交换机的用户的用户配置文件未在身份验证服务器上配置。
-
用户输入的登录凭据不正确。
如何使用本地密码身份验证
您可以在语句中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 对其进行加密时,您仍会通过互联网以纯文本形式发送密码。使用预加密密码更安全,因为这意味着密码的纯文本永远不必通过互联网发送。此外,使用密码时,一次只能为一个用户分配一个密码。
另一方面,RADIUS 和 TACACS+ 对密码进行加密。这些身份验证方法允许您一次分配一组用户,而不是一个一个地分配用户。但这些身份验证系统有何不同:
-
RADIUS 使用 UDP;TACACS+ 使用 TCP。
-
RADIUS 在传输过程中仅加密密码,而 TACACS+ 加密整个会话。
-
RADIUS 将身份验证(设备)和授权(用户)组合在一起,而 TACACS+ 将身份验证、授权和责任分开。
简而言之,TACACS+ 比 RADIUS 更安全。但是,RADIUS 具有更好的性能并且更具互操作性。RADIUS得到广泛支持,而TACACS+是思科专有产品,在思科之外不受广泛支持。
您可以根据系统、其限制以及 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) 用户名是登录名;但是,用户会从模板帐户继承权限、文件所有权和有效用户标识。
配置
过程
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层次结构级别的 [edit] CLI 中,然后进入 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 服务器对其进行身份验证时,他们将使用相同的用户 ID (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。
要配置备用模板用户,请指定 user-name 在 RADIUS 身份验证响应数据包中返回的参数。并非所有 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 服务器配置了以下信息:
密码为“olympia”的用户 Philip
密码为“bucephalus”和用户名为“operator”的用户 Alexander
密码为“redhead”,用户名为“operator”的用户 Darius
密码为“athena”的用户 Roxane
Philip 将被授予作为超级用户 (super-user) 的访问权限,因为他拥有一个唯一的本地用户帐户。Alexander 和 Darius 共享 UID 9990,并以操作员身份访问。Roxane 没有模板用户覆盖,因此与所有其他远程用户共享访问权限,获得只读访问权限。