用户身份验证概述
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;
}
要将用户分配给本地用户模板,请使用适当的参数(对于 TACACS+ 和 Juniper-Local-User-Name RADIUS)local-user-name配置远程身份验证服务器,并指定为本地用户模板定义的用户名。要为共享本地用户模板帐户的用户配置不同的访问权限,可以在身份验证服务器配置文件中使用特定于供应商的属性来允许或拒绝用户的特定命令和配置层次结构。
此示例是在本地设备上配置 和 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 模板帐户,并将用户名 remote 设置为,并将用户 operator的登录类设置为 。设备会 remote 将模板分配给经过 RADIUS 或 TACACS+ 身份验证但没有本地用户帐户或属于其他本地模板帐户的用户。
然后,您可以创建一个本地模板帐户,并将用户名设置为管理员,将登录类设置为超级用户。当您需要将经过远程身份验证的用户分配给不同的登录等级时,您可以使用本地模板帐户。因此,每个模板都可以为分配给该用户模板的用户授予一组不同的权限。
配置
创建远程模板帐户
分步程序
要创建模板帐户, 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) 解决方案时,管理用户帐户会变得更加容易。
大多数企业使用两种基本的远程身份验证方法之一: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。
-