用户身份验证概述
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 会向身份验证服务器发出请求,以验证用户的登录名。如果用户已通过身份验证,服务器会将本地用户名返回给 Junos OS( local-user-name
对于 TACACS+, Juniper-Local-User-Name
对于 RADIUS)。然后,Junos OS 确定是否为该登录名指定了本地用户名,如果是,Junos OS 会将用户分配到该本地用户模板。如果经过身份验证的用户不存在本地用户模板,则路由器或交换机默认使用该 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
模板帐户,请在层次结构级别包含user remote
[edit system login]
语句,并为分配给remote
模板的用户指定登录类:
[edit system login] user remote { full-name "remote users"; uid uid-value; class class-name; }
要为共享 remote
模板帐户的用户配置不同的访问权限,您可以在身份验证服务器配置文件中使用特定于供应商的属性来允许或拒绝用户的特定命令和配置层次结构。
示例:创建模板帐户
此示例演示如何创建模板帐户。
要求
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
您可以创建在使用 RADIUS 或 TACACS+ 身份验证时由一组用户共享的模板帐户。将经过身份验证的用户分配给模板帐户时,CLI 用户名为登录名,但用户从模板帐户继承权限、文件所有权和有效用户 ID。
默认情况下,在以下情况下, Junos OS 会将经过远程身份验证的用户 remote
分配给模板帐户:
-
经过身份验证的用户未在本地设备上配置用户帐户。
-
远程身份验证服务器不会将用户分配到本地用户模板,或者服务器分配的模板未在本地设备上配置。
在此示例中,您将创建remote
模板帐户并将用户的operator
用户名remote
和登录类设置为 。设备会将模板分配给 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+ 服务器以进行系统身份验证。
-
配置系统身份验证顺序。请参阅 示例:配置身份验证顺序。
什么是远程身份验证服务器?
您可能已经在网络中使用了一个或多个远程身份验证服务器。使用这些服务器是最佳做法,因为它们允许您为网络中的所有设备集中创建一组一致的用户帐户。使用远程身份验证服务器在网络中实施身份验证、授权和责任 (AAA) 解决方案时,管理用户帐户要容易得多。
大多数企业使用三种基本远程身份验证方法中的一种或多种: RADIUS 和 TACACS+。Junos OS 支持所有三种方法,并且您可以将 Junos OS 配置为查询任何类型的远程身份验证服务器。RADIUS 或 TACACS+ 服务器背后的 理念很简单:每个都充当中央身份验证服务器,路由器、交换机、安全设备和服务器可在用户尝试访问这些系统时使用该服务器对用户进行身份验证。想想中央用户目录在客户端/服务器模型中为身份验证审核和访问控制提供的优势。 RADIUS 和 TACACS+ 身份验证方法可为您的网络基础架构提供类似的优势。
与在每个设备上创建本地用户的替代方案相比,使用中央服务器具有多种优势,这是一项耗时且容易出错的任务。中央身份验证系统还简化了一次性密码系统的使用,例如 SecureID,该系统可防止密码嗅探和密码重放攻击。在此类攻击中,有人可以使用捕获的密码伪装成系统管理员。
-
RADIUS - 当您优先考虑互操作性和性能时,应使用 RADIUS。
-
互操作性 — RADIUS 比 TACACS+ 更具互操作性,这主要是因为 TACACS+ 的专有性质。虽然 TACACS+ 支持更多协议,但普遍支持 RADIUS。
-
性能 — 与 TACACS+ 相比,RADIUS 在路由器和交换机上的重量要轻得多。因此,网络工程师通常更喜欢 RADIUS,而不是 TACACS+。
-
-
TACACS+ - 当您优先考虑安全性和灵活性时,应使用 TACACS+。
-
安全性 — TACACS+ 比 RADIUS 更安全。不仅对整个会话进行加密,而且授权和身份验证是分开进行的,以防止任何人试图强行进入您的网络。
-
灵活性 — 传输控制协议 (TCP) 是比 UDP 更灵活的传输协议。您可以在更高级的网络中使用 TCP 执行更多操作。此外,TACACS+ 支持更多企业协议,如 NetBIOS。
-