用户身份验证概述
Junos OS 演化版支持您(网络管理员)用于控制用户访问网络的不同身份验证方法。这些方法包括本地密码身份验证、RADIUS 和 TACACS+。您可以使用这些身份验证方法之一来验证尝试使用 SSH 和 Telnet 访问路由器或交换机的用户和设备。身份验证可防止未经授权的设备和用户访问您的 LAN。
用户身份验证方法
Junos OS 演化版支持三种用户身份验证方法:本地密码身份验证、RADIUS 和 TACACS+。
使用本地密码身份验证时,您可以为允许登录路由器或交换机的每个用户配置一个密码。
RADIUS 和 TACACS+ 是用于验证尝试使用任何登录方法访问路由器或交换机的用户的身份验证方法。它们是分布式的客户端/服务器系统——RADIUS 和 TACACS+ 客户端在路由器或交换机上运行,服务器在远程网络系统上运行。
您可以将路由器或交换机配置为 RADIUS 和/或 TACACS+ 客户端。您还可以在 Junos OS 演化版配置文件中配置身份验证密码。您可以确定方法的优先级,以配置软件在验证用户访问时尝试不同身份验证方法的顺序。
为用户身份验证配置本地用户模板帐户
您可以使用本地用户模板帐户为通过远程身份验证服务器进行身份验证的用户分配不同的登录类,从而授予不同的权限。每个模板都可以为分配给该模板的用户定义一组不同的权限。您可以在路由器或交换机上本地定义模板,TACACS+ 和 RADIUS 身份验证服务器将引用这些模板。将经过身份验证的用户分配到模板帐户时,CLI 用户名是登录名,但该用户将从模板帐户继承权限、文件所有权和有效用户 ID。
当您配置本地用户模板且用户登录时,Junos OS Evolved 会向身份验证服务器发出请求,以验证用户的登录名。如果用户已通过身份验证,服务器会将本地用户名返回给 Junos OS 演化版(local-user-name
对于 TACACS+ 和 Juniper-Local-User-Name
RADIUS)。然后,Junos OS Evolved 确定是否为该登录名指定了本地用户名,如果指定,Junos OS Evolved 会将用户分配到该本地用户模板。如果经过身份验证的用户不存在本地用户模板,则路由器或交换机默认为该 remote
模板(如果已配置)。
要配置本地用户模板,请在 [edit system login]
层次结构级别定义模板用户名。分配一个类以指定要授予模板应用其的本地用户的权限:
[edit system login] user local-username { full-name "Local user account"; uid uid-value; class class-name; }
要将用户分配到本地用户模板,请使用适当的参数(local-user-name
对于 TACACS+ 和 Juniper-Local-User-Name
RADIUS)配置远程身份验证服务器,并指定为本地用户模板定义的用户名。要为共享本地用户模板帐户的用户配置不同的访问权限,可以在认证服务器配置文件中使用供应商特定的属性来允许或拒绝用户的特定命令和配置层次结构。
此示例在本地设备上配置 sales
和 engineering
用户模板。然后,TACACS+ 服务器配置文件会将用户分配到特定的模板。
[edit] system { login { user sales { uid 6003; class sales-class; } user engineering { uid 6004; class super-user; } } }
对用户 Simon 和 Rob 进行身份验证后,路由器或交换机将应用 sales
本地用户模板。对登录用户 Harold 和 Jim 进行身份验证后,路由器或交换机将应用 engineering
本地用户模板。
user = simon { ... service = junos-exec { local-user-name = sales allow-commands = "configure" deny-commands = "shutdown" } } user = rob { ... service = junos-exec { local-user-name = sales allow-commands = "(request system) | (show rip neighbor)" deny-commands = "clear" } } user = harold { ... service = junos-exec { local-user-name = engineering allow-commands = "monitor | help | show | ping | traceroute" deny-commands = "configure" } } user = jim { ... service = junos-exec { local-user-name = engineering allow-commands = "show bgp neighbor" deny-commands = "telnet | ssh" } }
配置用于用户身份验证的远程用户模板帐户
网络设备可以将经过远程身份验证的用户映射到本地定义的用户帐户或用户模板帐户,从而确定授权。 remote
模板帐户是一个特殊的用户模板。默认情况下, Junos OS 演化 版会在以下情况下将经过远程身份验证的用户 remote
分配给模板帐户(如果已配置):
-
经过身份验证的用户没有在本地设备上配置用户帐户。
-
远程认证服务器未将用户分配到本地用户模板,或者服务器分配的模板未在本地设备上配置。
要配置模板帐户,remote
请在[edit system login]
层次结构级别包含user remote
语句,并为分配给remote
模板的用户指定登录类:
[edit system login] user remote { full-name "remote users"; uid uid-value; class class-name; }
要为共享 remote
模板帐户的用户配置不同的访问权限,可以在身份验证服务器配置文件中使用特定于供应商的属性来允许或拒绝用户的特定命令和配置层次结构。
示例:创建模板帐户
此示例说明如何创建模板帐户。
要求
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
您可以创建在使用 RADIUS 或 TACACS+ 身份验证时由一组用户共享的模板帐户。将经过身份验证的用户分配到模板帐户时,CLI 用户名是登录名,但该用户将从模板帐户继承权限、文件所有权和有效用户 ID。
默认情况下, Junos OS Evolved 会在以下情况下将 remote
经过远程身份验证的用户分配给模板帐户:
-
经过身份验证的用户没有在本地设备上配置用户帐户。
-
远程认证服务器未将用户分配到本地用户模板,或者服务器分配的模板未在本地设备上配置。
在此示例中 remote
,您将创建模板帐户,并将用户的用户名 remote
设置为,并将用户的登录名类设置为 operator
。设备会将 remote
模板分配给通过 RADIUS 或 TACACS+ 进行身份验证但没有本地用户帐户或属于其他本地模板帐户的用户。
然后,创建一个本地模板帐户,并将用户名设置为 admin,将登录名类设置为超级用户。当您需要将经过远程身份验证的用户分配到不同的登录类时,请使用本地模板帐户。因此,每个模板都可以为分配给该用户模板的用户授予一组不同的权限。
配置
创建远程模板帐户
分步过程
要创建模板帐户, remote
请执行以下操作:
-
设置用户的用户
remote
名和登录类。[edit system login] user@host# set user remote class operator
结果
在配置模式下,输入 show system login
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show system login user remote { class operator; }
配置设备后,进入 commit
配置模式。
创建本地模板帐户
分步过程
要创建本地模板帐户,请执行以下操作:
-
设置用户模板的用户名和登录类。
[edit system login] user@host# set user admin class superuser
结果
在配置模式下,输入 show system login
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show system login user admin { class super-user; }
配置设备后,进入 commit
配置模式。
要完整设置 RADIUS 或 TACACS+ 身份验证,您必须配置至少一台 RADIUS 或 TACACS+ 服务器并指定系统身份验证顺序。有关详细信息,请参阅以下任务:
-
配置 RADIUS 服务器。请参阅 RADIUS 身份验证。
-
配置 TACACS+ 服务器。请参阅 TACACS+ 身份验证。
-
配置系统认证顺序。请参阅 LDAPS、RADIUS、TACACS+ 和本地密码的认证顺序。
什么是远程身份验证服务器?
您可能已经在网络中使用了一个或多个远程身份验证服务器。最佳做法是使用这些服务器,因为它们允许您为网络中的所有设备集中创建一组一致的用户帐户。当您使用远程身份验证服务器在网络中实施身份验证、授权和问责 (AAA) 解决方案时,管理用户帐户会容易得多。
大多数企业使用三种基本远程身份验证方法中的一种或多种:LDAPS、RADIUS 和 TACACS+。Junos OS 演化版支持 RADIUS 和 TACACS+,您可以将 Junos OS 演化版配置为查询任一类型的远程身份验证服务器。RADIUS 或 TACACS+ 服务器背后的理念很简单:每个服务器都充当一个中央身份验证服务器,路由器、交换机、安全设备和服务器可在用户尝试访问这些系统时使用该服务器对用户进行身份验证。想一想在客户端/服务器模型中,中央用户目录为身份验证审核和访问控制提供的优势。RADIUS 和 TACACS+ 身份验证方法为您的网络基础架构提供了相当的优势。
与在每台设备上创建本地用户相比,使用中央服务器具有多种优势,这是一项耗时且容易出错的任务。中央身份验证系统还简化了一次性密码系统(如 SecureID)的使用,该系统可防止密码嗅探和密码重放攻击。在此类攻击中,有人可以使用捕获的密码冒充系统管理员。
-
RADIUS - 当您优先考虑互操作性和性能时,应使用 RADIUS。
-
互操作性—RADIUS 的互操作性比 TACACS+ 更具互操作性,这主要是因为 TACACS+ 的专有特性。虽然 TACACS+ 支持更多协议,但 RADIUS 是普遍支持的。
-
性能—RADIUS 对路由器和交换机的轻量级比 TACACS+ 轻得多。因此,网络工程师通常更喜欢 RADIUS 而不是 TACACS+。
-
-
TACACS+ - 当您优先考虑安全性和灵活性时,应使用 TACACS+。
-
安全性—TACACS+ 比 RADIUS 更安全。不仅整个会话都经过加密,而且授权和身份验证是分开进行的,以防止任何人试图强行进入您的网络。
-
灵活性—传输控制协议 (TCP) 是比 UDP 更灵活的传输协议。您可以在更高级的网络中使用 TCP 做更多的事情。此外,TACACS+ 还支持更多的企业协议,如 NetBIOS。
-