Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

RADIUS、TACACS + 和本地密码的身份验证顺序

 

Junos OS 支持不同的方法,如本地密码身份验证、RADIUS 和 TACACS +,以控制对网络的访问。身份验证方法用于验证尝试使用 telnet 访问路由器或交换机的用户。您可以设置方法的优先级,以配置在验证用户对路由器或交换机或安全设备的访问时,Junos OS 尝试不同身份验证方法的顺序。有关更多信息,请阅读本主题。

RADIUS、TACACS + 和密码身份验证 Junos OS 身份验证顺序

使用此authentication-order语句,您可以优先考虑在验证用户对路由器或交换机的访问时,Junos OS 尝试不同身份验证方法的顺序。

如果按身份验证顺序配置了 RADIUS 和/或 TACACS + 服务器,但没有响应请求,则 Junos OS 始终默认为尝试本地密码身份验证,最后是一种手段。如果身份验证顺序设置为authentication-order password,则将是唯一尝试的身份验证方法。

注意

不可能,尝试按照顺序将本地密码身份验证配置 RADIUS 或 TACACS + 之前没有意义,因为“不会发生响应。”本地认证请求将始终被接受或拒绝。

当 RADIUS 或 TACACS + 存在时处理被拒绝的身份验证请求将更加复杂。

  • 如果password (本地密码认证)是身份验证顺序,则 RADIUS 和/或 TACACS + 拒绝将在拒绝后结束。

  • 如果password在身份验证顺序中包含,并且 RADIUS 和/或 TACACS + 拒绝身份验证,则 Junos OS尝试本地身份验证检查。

换言之,包括password作为最终身份验证顺序选项的一种方式,您可以选择是 RADIUS 和/或 TACACS + 拒绝在那里结束,还是在本地为请求提供身份验证的最后一次机会。

使用 RADIUS 或 TACACS + 身份验证

您可以将 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]层次结构级别。

  • RADIUS 或 TACACS + 服务器在[edit system radius-server][edit system tacplus-server]层次结构级别配置的超时时间内未响应。

  • 由于网络问题,无法访问 RADIUS 或 TACACS + 服务器。

由于以下原因,RADIUS 或 TACACS + 服务器身份验证可能会返回拒绝响应:

  • 访问路由器或交换机的用户的用户配置文件可能未在 RADIUS 或 TACACS + 服务器上配置。

  • 用户输入错误的登录证书。

使用本地密码验证

您可以显式配置密码身份验证方法,或在远程认证服务器发生故障时将此方法用作回退机制。密码身份验证方法用于参考[edit system login]层次结构级别上配置的本地用户配置文件。用户可以在以下情况下使用本地用户名和密码登录到路由器或交换机:

  • 密码身份验证方法(密码)显式配置为[authentication-order authentication-methods]语句中的一种身份验证方法。在这种情况下,如果以前没有身份验证接受登录证书,则会尝试密码身份验证方法。无论由于用户名或密码不正确,上一次身份验证方法是否无法响应或返回拒绝响应,这一点都是如此。

  • 密码身份验证方法未显式配置为authentication-order authentication-methods语句中的身份验证方法之一。在这种情况下,仅当所有配置的身份验证方法都无法响应时,才会尝试密码身份验证方法。如果任何配置的身份验证方法因用户名或密码不正确而返回 "拒绝" 响应,则不会对其进行咨询。

身份验证尝试顺序

表 1介绍了authentication-order层次[edit system]结构级别的语句如何确定 Junos OS 用于对用户进行身份验证以访问路由器或交换机的过程。

表 1: 身份验证尝试顺序

语法

身份验证尝试顺序

authentication-order radius;

  1. 尝试配置 RADIUS 认证服务器。
  2. 如果 RADIUS 服务器可用,并且接受身份验证,则授予访问权限。
  3. 如果 RADIUS 服务器可用但拒绝身份验证,则拒绝访问。
  4. 如果 RADIUS 服务器不可用,请尝试密码身份验证。

    注意: 如果 RADIUS 服务器可用,则不会尝试进行密码身份验证,因为不会按身份验证顺序明确配置。

authentication-order [ radius password ];

  1. 尝试配置 RADIUS 认证服务器。
  2. 如果 RADIUS 服务器无法响应或返回拒绝响应,请尝试密码身份验证,因为它以身份验证顺序明确配置。

authentication-order [ radius tacplus ];

  1. 尝试配置 RADIUS 认证服务器。
  2. 如果 RADIUS 服务器可用,并且接受身份验证,则授予访问权限。
  3. 如果 RADIUS 服务器无法响应或返回拒绝响应,请尝试配置 TACACS + 服务器。
  4. 如果 TACACS + 服务器可用且接受身份验证,则授予访问权限。
  5. 如果 TACACS + 服务器可用但拒绝身份验证,则拒绝访问。
  6. 如果 RADIUS 和 TACACS + 服务器均不可用,请尝试密码身份验证。

    注意: 如果 RADIUS 或 TACACS + 服务器可用,则不会尝试密码身份验证,因为不会按身份验证顺序明确配置。

authentication-order [ radius tacplus password ];

  1. 尝试配置 RADIUS 认证服务器。
  2. 如果 RADIUS 服务器可用,并且接受身份验证,则授予访问权限。
  3. 如果 RADIUS 服务器无法响应或返回拒绝响应,请尝试配置 TACACS + 服务器。
  4. 如果 TACACS + 服务器可用且接受身份验证,则授予访问权限。
  5. 如果 TACACS + 服务器未能响应或返回拒绝响应,请尝试密码身份验证,因为它按身份验证顺序明确配置。

authentication-order tacplus;

  1. 尝试配置 TACACS + 认证服务器。
  2. 如果 TACACS + 服务器可用且接受身份验证,则授予访问权限。
  3. 如果 TACACS + 服务器可用但拒绝身份验证,则拒绝访问。
  4. 如果 TACACS + 服务器不可用,请尝试密码认证。

    注意: 如果有 TACACS + 服务器可用,则不会尝试密码身份验证,因为不会按身份验证顺序明确配置。

authentication-order [ tacplus password ];

  1. 尝试配置 TACACS + 认证服务器。
  2. 如果 TACACS + 服务器未能响应或返回拒绝响应,请尝试密码身份验证,因为它按身份验证顺序明确配置。

authentication-order [ tacplus radius ];

  1. 尝试配置 TACACS + 认证服务器。
  2. 如果 TACACS + 服务器可用且接受身份验证,则授予访问权限。
  3. 如果 TACACS + 服务器未能响应或返回拒绝响应,请尝试配置 RADIUS 服务器。
  4. 如果 RADIUS 服务器可用,并且接受身份验证,则授予访问权限。
  5. 如果 RADIUS 服务器可用但拒绝身份验证,则拒绝访问。
  6. 如果 TACACS + 和 RADIUS 服务器均不可用,请尝试密码认证。

    注意: 如果可以使用 TACACS + 或 RADIUS 服务器,则不会尝试密码身份验证,因为不会按身份验证顺序明确配置。

authentication-order [ tacplus radius password ];

  1. 尝试配置 TACACS + 认证服务器。
  2. 如果 TACACS + 服务器可用且接受身份验证,则授予访问权限。
  3. 如果 TACACS + 服务器未能响应或返回拒绝响应,请尝试配置 RADIUS 服务器。
  4. 如果 RADIUS 服务器可用,并且接受身份验证,则授予访问权限。
  5. 如果 RADIUS 服务器无法响应或返回拒绝响应,请尝试密码身份验证,因为它以身份验证顺序明确配置。

authentication-order password;

  1. 尝试使用在[edit system login]层次结构级别上配置的密码对用户进行身份验证。
  2. 如果接受身份验证,则授予访问权限。
  3. 如果身份验证被拒绝,则拒绝访问。
注意

如果配置了 SSH 公钥,则 SSH 用户身份验证首先尝试执行公钥身份验证,然后再使用authentication-order语句中配置的身份验证方法。如果希望 SSH 登录使用在身份验证顺序语句中配置的身份验证方法,而不先尝试执行公钥身份验证,则不要配置 SSH 公钥。

在基于 TX Matrix 路由器的路由矩阵中,必须仅在配置组re0re1中配置身份验证顺序。身份验证顺序不得在[edit system]层次结构中配置。这是因为路由矩阵的身份验证顺序仅在交换机卡机箱(或 TX Matrix 路由器)或交换机结构机箱(适用于 TX Matrix Plus 路由器)上进行控制。

在 Junos OS 版本10.0 和更高版中,超级用户(属于超级用户登录类)也根据配置用于 TACACS +、RADIUS 或使用authentication-order语句的密码身份验证的身份验证顺序进行验证。例如,如果唯一配置的身份验证顺序为 TACACS +,则超级用户只能通过 TACACS + 服务器的认证,并且密码认证不能用作替代方法。但是,在 Junos OS 版本9.6 和更早发行版中,超级用户可以使用密码身份验证来登录,即使未使用authentication-order语句显式配置密码认证也是如此。

为 RADIUS、TACACS + 和本地密码身份验证配置 Junos OS 身份验证顺序

使用此authentication-order语句,您可以优先考虑在验证用户对路由器或交换机的访问时,Junos OS 尝试不同身份验证方法的顺序。如果您不设置身份验证顺序,默认情况下,用户将根据其配置的密码进行验证。

使用纯文本配置密码并依赖 Junos OS 进行加密时,您仍以纯文本形式在 internet 上发送密码。使用预先加密的密码更安全,因为这意味着密码的纯文本决不会通过互联网发送。此外,借助密码,一次只能将一个用户分配给一个密码。

另一方面,RADIUS 和 TACACS + 预 ecrypt 密码。二者都允许您一次分配一组用户,而不是一段时间。但以下是这些认证系统的不同之处:

  • RADIUS 使用 UDP,而 TACACS + 使用 TCP。

  • RADIUS 在传输期间仅加密密码,而 TACACS + 加密整个会话。

  • RADIUS 结合身份验证(设备)和授权(用户),而 TACACS + 分隔身份验证、授权和责任。

简而言之,TACACAS + 是这两方面的安全性。但是,RADIUS 具有更好的性能,并且更具可互操作性。RADIUS 受到广泛支持,而 TACACS + 是 Cisco 专有产品,不在 Cisco 外部广泛支持。

您可以根据您的系统、其限制以及您的 IT 策略和操作首选项来配置身份验证顺序。

要配置身份验证顺序,请将authentication-order语句包含在[edit system]层次结构级别:

有关可在其中包含此语句的层次结构级别列表,请参阅本声明的语句摘要部分。

以下是可能的身份验证顺序条目选项:

  • radius—验证用户是否使用 RADIUS 认证服务器。

  • tacplus—使用 TACACS + 认证服务器验证用户。

  • password—通过在[edit system login user]层次结构级别包括身份验证语句,验证用户使用本地配置的用户名和密码。

如果按身份验证顺序配置了 RADIUS 和/或 TACACS + 服务器,但没有响应请求,则 Junos OS 始终默认为尝试本地密码身份验证,最后是一种手段。如果身份验证顺序设置为authentication-order password,则将是唯一尝试的身份验证方法。

注意

不可能,尝试按照顺序将本地密码身份验证配置 RADIUS 或 TACACS + 之前没有意义,因为“不会发生响应。”本地认证请求将始终被接受或拒绝。

当 RADIUS 或 TACACS + 存在时处理被拒绝的身份验证请求将更加复杂。

  • 如果password (本地密码认证)是身份验证顺序,则 RADIUS 和/或 TACACS + 拒绝将在拒绝后结束。

  • 如果password在身份验证顺序中包含,并且 RADIUS 和/或 TACACS + 拒绝身份验证,则 Junos OS尝试本地身份验证检查。

换言之,包括password作为最终身份验证顺序选项的一种方式,您可以选择是 RADIUS 和/或 TACACS + 拒绝在那里结束,还是在本地为请求提供身份验证的最后一次机会。

有关详细信息,请参阅Junos OS Authentication Order for RADIUS, TACACS+, and Password Authentication

CHAP 身份验证序列的时间不能超过30秒。如果对客户端进行身份验证所需的时间较长,则会放弃身份验证并启动新序列。

例如,如果您将三个 RADIUS 服务器配置为使路由器或交换机尝试每次与每台服务器联系,并在 3 秒后重试服务器超时,则在 CHAP 认为该故障之前,给 RADIUS 身份验证方法的最大时间为27秒。如果将更多 RADIUS 服务器添加到此配置中,则可能无法联系它们,因为在尝试这些服务器之前可能会放弃身份验证进程。

Junos OS 对一次 CHAP 身份验证可以拥有的已有认证服务器请求数量施加限制。因此,在超过此限制—时,身份验证—服务器方法 RADIUS (例如)可能无法对客户端进行身份验证。如果失败,则由路由器或交换机 reinitiated 身份验证顺序,直至认证成功且链路启动。但是,如果 RADIUS 服务器不可用,并且还配置了其他身份验证方法tacpluspassword如或radius),则会尝试下一次身份验证方法。

以下示例显示如何配置radiuspassword认证:

以下示例显示如何从身份验证顺序radius中删除语句:

以下示例显示如何在tacplusradius语句后插入语句:

示例:配置身份验证顺序

此示例演示如何配置身份验证顺序。

要求

开始之前,请先执行初始设备配置。请参阅设备的入门指南。

概述

您可以配置设备用来验证用户是否可以访问的身份验证方法。对于每次登录尝试,设备都会按顺序尝试身份验证方法,从第一个开始,直到密码匹配。如果不配置系统认证,用户将根据其配置的本地密码进行验证。

此示例将设备配置为先尝试使用本地密码进行用户身份验证,然后使用 RADIUS 服务器,最后使用 TACACS + 服务器。

使用本地密码认证时,必须为每个要访问系统的用户创建一个本地用户帐户。但是,当您使用 RADIUS 或 TACACS + 认证时,您可以创建由一组用户共享的单个帐户(用于授权目的)。您可以使用远程和本地用户模板帐户创建这些帐户。当用户使用模板帐户时,命令行界面(CLI)用户名即为登录名;但是,权限、文件所有权和有效用户 ID 继承于模板帐户。

配置

CLI 快速配置

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

GUI 快速配置

要配置认证顺序:

  1. 在 J-Web 用户界面中,选择Configure>System Properties>User Management""。
  2. 单击Edit。此时将出现 "编辑用户管理" 对话框。
  3. 选择 " Authentication Method and Order " 选项卡。
  4. 在 "可用方法" 下,选择设备用于验证用户身份的身份验证方法,然后使用箭头按钮将项目移至 "选定方法" 列表中。可用方法包括:
    • RADIUS

    • TACACS+

    • 本地密码

    如果您希望使用多种方法来验证用户的身份,请重复此步骤,将其他方法添加到所选方法列表中。

  5. 在选择的方法下,使用向上箭头和向下箭头指定设备执行身份验证方法的顺序。
  6. 单击OK以检查您的配置并将其另存为候选配置。
  7. 如果您完成了设备配置,请单击Commit Options>Commit

分步过程

下面的示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅在配置模式中使用 CLI 编辑器中的CLI 用户指南

要配置认证顺序:

  1. 将 RADIUS 身份验证添加至身份验证顺序。
  2. 将 TACACS + 认证添加至认证顺序。

结果

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

如果您完成了设备配置,请从commit配置模式进入。

注意

要完全设置 RADIUS 或 TACACS + 认证,必须至少配置一个 RADIUS 或 TACACS + 服务器并创建用户模板帐户。执行以下任务之一:

针对

确认配置是否正常工作。

验证身份验证顺序配置

用途

验证身份验证顺序是否已配置。

操作

在操作模式下,输入show system authentication-order命令。

示例:为 RADIUS、TACACS + 和密码身份验证配置系统身份验证

以下示例显示如何为 RADIUS、TACACS + 和密码身份验证配置系统身份验证。

在此示例中,只有由远程 RADIUS 服务器认证的用户 Philip 和用户才能登录。如果用户登录且未通过 RADIUS 服务器的认证,则用户将被拒绝访问路由器或交换机。如果 RADIUS 服务器不可用,则使用password身份验证方法对用户进行身份验证,并允许访问路由器或交换机。有关密码身份验证方法的详细信息,请参阅Junos OS Authentication Order for RADIUS, TACACS+, and Password Authentication

Philip 尝试登录系统时,如果 RADIUS 服务器对其进行身份验证,则授予他对super-user类的访问权限和权限。没有为其他用户配置本地帐户。当他们登录系统且 RADIUS 服务器对其进行身份验证时,将使用相同的用户 ID (UID)9999和与operator类相关的权限来访问它们。

注意

出于授权目的,您可以使用模板帐户创建可同时由一组用户共享的单个帐户。例如,当您创建远程模板帐户时,一组远程用户可以同时共享一个 UID。有关模板帐户的详细信息,请参阅 Example: Configuring Authentication Order顺序。

当用户登录设备时,用户’的登录名将由 RADIUS 或 TACACS + 服务器用于认证。如果认证服务器成功认证用户,并且用户未在[edit system login user]层次结构级别配置,则设备将使用用户的默认远程模板用户帐户,前提是在edit system login user remote层次结构级别配置了远程模板帐户。远程模板帐户用作由认证服务器认证但未在设备上具有本地配置的用户帐户的所有用户的默认模板用户帐户。此类用户共享相同的登录类和 UID。

要配置备用模板用户,请指定 RADIUS user-name身份验证响应数据包中返回的参数。并非所有 RADIUS 服务器都允许您更改此参数。下面显示 Junos OS 配置示例:

假设您的 RADIUS 服务器配置了以下信息:

  • 带口令“的用户 Philip olympia”

  • 带密码“的用户 Alexander” bucephalus 和“用户名运算符”

  • 带密码“的用户 Darius” redhead 和“用户名运算符”

  • 带口令“的用户 Roxane athena”

Philip 将被授予访问权限,超级用户super-user(),因为他拥有自己的本地用户帐户。Alexander 和 Darius share UID 9990 并具有作为运营商的访问权。Roxane 没有模板-用户替代,她与所有其他远程用户共享访问权限,获取只读访问权限。