从 2.2 代码开始,Cisco Catalyst 系列交换机(运行 CatOS 的 Catalyst 4000、Catalyst 5000 和 Catalyst 6000)支持部分身份验证。更高版本已增加了增强功能。用户设置的 TACACS+ TCP 端口 49(不是 XTACACS 用户数据协议端口 49),RADIUS 或者 Kerberos 服务器用于验证、授权和记帐 (AAA),与路由器用户的设置相同。本文档介绍启用这些功能所必需的最低要求的命令。在所讨论版本的交换机文档中可以找到其他选项。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
因为更高版本的代码支持更多选项,您需要发出 show version 命令来确定交换机上的代码版本。一旦您确定在交换机上使用的代码版本,请使用下表来确定哪些选项可以在您的设备上使用,哪些选项是您希望配置的。
当您添加身份验证和授权时,请一直保留在交换机中。在另一个窗口中测试配置,以避免意外锁定。
方法(最低要求) | Cat 版本 2.2 到 5.1 | Cat 版本 5.1 到 5.4.1 | Cat 版本 5.4.1 到 7.5.1 | Cat 版本 7.5.1 及更高版本 |
TACACS+ 身份验证 OR | 步骤 A | 步骤 A | 步骤 A | 步骤 A |
RADIUS 身份验证 OR | 不适用 | 步骤 B | 步骤 B | 步骤 B |
Kerberos 身份验证 OR | 不适用 | 不适用 | 步骤 K | 步骤 K |
本地用户名身份验证/授权 | 不适用 | 不适用 | 不适用 | 步骤 C |
Plus(选项) | ||||
TACACS+ 命令授权 | 不适用 | 不适用 | 步骤 D | 步骤 D |
TACACS+ Exec 授权 | 不适用 | 不适用 | 步骤 E | 步骤 E |
RADIUS Exec 授权 | 不适用 | 不适用 | 步骤 F | 步骤 F |
记帐 - TACACS+ 或 RADIUS | 不适用 | 不适用 | 步骤 G | 步骤 G |
TACACS+ 启用授权 | 步骤 H | 步骤 H | 步骤 H | 步骤 H |
RADIUS 启用授权 | 不适用 | 步骤 I | 步骤 I | 步骤 I |
TACACS+ 启用授权 | 不适用 | 不适用 | 步骤 J | 步骤 J |
使用更早的代码版本,其中的命令不如某些更高版本的命令复杂。您的交换机上可能提供了更高版本中的其他选项。
如果服务器发生故障,请发出 set authentication login local enable 命令,以确保交换机中有后门。
发出 set authentication login tacacs enable 命令,以启用 TACACS+ 身份验证。
发出 set tacacs server #.#.#.# 命令来定义服务器。
发出 set tacacs key your_key 命令来定义服务器密钥,这在使用 TACACS+ 时是可选的,因为它会造成从交换机到服务器的数据被加密。如果采用,它必须与服务器一致。
注意:Cisco Catalyst OS软件不接受问号(?)作为任何密钥或密码的一部分。问号在命令语法中明确表示需要帮助。
使用更早的代码版本,其中的命令不如某些更高版本的命令复杂。您的交换机上可能提供了更高版本中的其他选项。
如果服务器发生故障,请发出 set authentication login local enable 命令,以确保交换机中有后门。
发出 set authentication login radius enable 命令来启用 RADIUS 身份验证。
定义服务器。在其他所有 Cisco 设备上,默认的 RADIUS 端口为 1645/1646(身份验证/记帐)。
在Catalyst上,默认端口为1812/1813。如果您使用Cisco Secure或与其他Cisco设备通信的服务器,请使用1645/1646端口。发出 set radius server #.#.#.# auth-port 1645 acct-port 1646 primary 命令,以便在 Cisco IOS 中定义服务器,以及与 radius-server source-ports 1645-1646 等效的命令。
定义服务器密钥。
这是必须的,因为它会造成交换机到服务器的口令按照 RADIUS 身份验证/授权 RFC 2865 和 RADIUS 记帐 RFC 2866 所述被加密。 如果采用,它必须与服务器一致。发出 set radius key your_key 命令。
从 CatOS 版本 7.5.1 开始,支持本地用户身份验证。例如,您可以使用存储在 Catalyst 上的用户名和口令来完成身份验证/授权,而不是通过本地口令来进行身份验证。
本地用户身份验证只有两个权限级别,0或15。0级是非特权执行级别。级别 15 是有特权的启用级别。
如果在本示例中添加以下命令,则用户 poweruser 可以在 Telnet 或交换机的控制台上实现启用模式,用户 nonenable 可以在 Telnet 或交换机的控制台上实现 exec 模式。
set localuser user poweruser password powerpass privilege 15 set localuser user nonenable password nonenable
注:如果用户noneble知道设置启用密码,则该用户可以继续启用模式。
在配置之后,口令将被加密存储。
本地用户名认证可以与远程TACACS+ exec、命令记帐或远程RADIUS exec记帐一起使用。它还可以与远程 TACACS+ exec 或命令授权一起使用,但这种使用方式毫无意义,因为用户名需要同时存储在 TACACS+ 服务器和本地交换机上。
在本示例中,交换机被告知要求通过 TACACS+ 仅对配置命令进行授权。在 TACACS+ 服务器发生故障的情况下,身份验证为无。这适用于控制台端口和 Telnet 会话。发出以下命令:
set authorization 命令 enable config tacacs none both
在本示例中,当您设置这些参数时,可以将 TACACS+ 服务器配置为允许:
command=set arguments (permit)=port 2/12
set port enable 2/12 命令被发送到 TACACS+ 服务器以便验证。
注意:启用命令授权后,与不将enable视为命令的路由器不同,在尝试启用时,交换机会向服务器发送enable命令。请确保服务器同样配置为允许 enable 命令。
在本示例中,交换机被告知要求使用 TACACS+ 对 exec 会话进行授权。在 TACACS+ 服务器发生故障的情况下,授权为无。这适用于控制台端口和 Telnet 会话。发出 set authorization exec enable tacacs+ none both 命令
除认证请求外,它还从交换机上向TACACS+服务器发送单独的授权请求。如果为TACACS+服务器上的shell/exec配置了用户配置文件,则该用户可以访问交换机。
这可以防止未在服务器上配置 shell/exec 服务的用户(例如 PPP 用户)登录交换机。您收到 Exec mode authorization failed 消息。用户除了允许/拒绝 exec 模式以外,您还可以在进入服务器上分配的权限级别 15 时强制进入启用模式。它必须执行已修复 Cisco Bug ID CSCdr51314(仅限注册用户)的 runcode。
没有可以启用 RADIUS exec 授权的命令。另一种选择是在 RADIUS 服务器中将服务类型(RADIUS 属性 6)设置为管理(值为 6),以便将 RADIUS 服务器的用户以启用模式启动。如果服务设置为除“6-管理”以外的其他类型(例如“1-登录”、“7-shell”或“2-成帧”),用户会看到交换机 exec 提示符,而不是 enable 提示符。
将这些命令添加到交换机中,以便进行身份验证和授权:
aaa authorization exec TEST group radius line vty 0 4 authorization exec TEST login authentication TEST
为了启用 TACACS+ 记帐:
如果得到交换机提示符,请发出 set accounting exec enable start-stop tacacs+ 命令。
Telnet 到交换机外的用户,发出 set accounting connect enable start-stop tacacs+ 命令。
如果重新启动交换机,请发出 set accounting system enable start-stop tacacs+ 命令。
执行命令的用户,发出 set accounting commands enable all start-stop tacacs+ 命令。
对服务器发出的提醒,例如,要每分钟更新一次记录,以显示用户仍处于登录状态,可发出 set accounting update periodic 1 命令。
为了启用 RADIUS 记帐:
得到交换机提示符的用户,发出 set accounting exec enable start-stop radius 命令。
Telnet 到交换机外的用户,发出 set accounting connect enable start-stop radius 命令。
如果重新启动交换机,请发出 set accounting system enable start-stop radius 命令。
对服务器发出的提醒,例如,要每分钟更新一次记录,以显示用户仍处于登录状态,可发出 set accounting update periodic 1 命令。
此输出是关于记录如何在服务器上显示的示例:
Fri Mar 24 13:22:41 2000 10.31.1.151 pinecone telnet85 171.68.118.100 stop task_id=5 start_time=953936729 timezone=UTC service=shell disc-cause=2 elapsed_time=236 Fri Mar 24 13:22:50 2000 10.31.1.151 pinecone telnet85 171.68.118.100 stop task_id=15 start_time=953936975 timezone=UTC service=shell priv-lvl=0 cmd=enable Fri Mar 24 13:22:54 2000 10.31.1.151 pinecone telnet85 171.68.118.100 stop task_id=16 start_time=953936979 timezone=UTC service=shell priv-lvl=15 cmd=write terminal Fri Mar 24 13:22:59 2000 10.31.1.151 pinecone telnet85 171.68.118.100 stop task_id=17 start_time=953936984 timezone=UTC service=shell priv-lvl=15 cmd=show version Fri Mar 24 13:23:19 2000 10.31.1.151 pinecone telnet85 171.68.118.100 update task_id=14 start_time=953936974 timezone=UTC service=shell
此输出是关于记录如何在服务器上显示的示例:
Client-Id = 10.31.1.151 NAS-Port-Type = 0 User-Name = "login" Acct-Status-Type = Start Acct-Authentic = RADIUS User-Service-Type = 7 Acct-Session-Id = "0000002b" Acct-Delay-Time = 0 Client-Id = 10.31.1.151 NAS-Port-Type = 0 User-Name = "login" Calling-Station-Id = "171.68.118.100" Acct-Status-Type = Start User-Service-Type = Login-User Acct-Session-Id = "0000002c" Login-Service = Telnet Login-Host = 171.68.118.100 Acct-Delay-Time = 0 Client-Id = 10.31.1.151 NAS-Port-Type = 0 User-Name = "login" Calling-Station-Id = "171.68.118.100" Acct-Status-Type = Stop User-Service-Type = Login-User Acct-Session-Id = "0000002c" Login-Service = Telnet Login-Host = 171.68.118.100 Acct-Session-Time = 9 Acct-Delay-Time = 0 Client-Id = 10.31.1.151 NAS-Port-Type = 0 User-Name = "login" Acct-Status-Type = Stop Acct-Authentic = RADIUS User-Service-Type = 7 Acct-Session-Id = "0000002b" Received unknown attribute 49 Acct-Session-Time = 30 Acct-Delay-Time = 0
请完成以下步骤:
发出 set authentication enable local enable 命令,以便确保在服务器发生故障时有后门。
发出 set authentication enable tacacs enable 命令,以便通知交换机向服务器发送启用请求。
添加这些命令是为了让交换机将用户名 $enab15$ 发送到 RADIUS 服务器。不是所有的 RADIUS 服务器都支持这种用户名。请参阅步骤 E,了解另一替代方案,例如,如果将服务类型设置为“[RADIUS attribute 6 - to Administrative]”,从而以启用模式启动个人用户。
发出 set authentication enable local enable 命令,以便确保在服务器发生故障时有后门。
如果您的 RADIUS 服务器支持 $enab15$ 用户名,请发出 set authentication enable radius enable 命令,以便通知交换机向服务器发送启用请求。
当用户尝试启用时,此命令的新增内容会导致交换机将启用发送到服务器。服务器需要有 enable 命令权限。在本示例中,当服务器发生故障时将故障转移到无:
set author enable enable tacacs+ none both
有关如何对交换机设置 Kerberos 的详细信息,请参阅使用身份验证、授权和记帐来控制并监控对交换机的访问。
有关口令恢复过程的详细信息,请参阅口令恢复过程。
本页是思科产品的口令恢复过程的索引。
对于附加安全性,可以通过 ip permit 命令配置 Catalyst,以控制 Telnet 的访问:
set ip permit enable telnet
set ip permit range mask|host(设置ip允许范围掩码)
这只允许指定的范围或主机 Telnet 到交换机。
在 Catalyst 上启用调试之前,请查看服务器日志,以了解失败的原因。这样会更容易,并且可减少对交换机的中断。在早期的交换机版本中,debug 是以工程模式执行的。在更高的代码版本中,无需再为了执行 debug 命令而进入工程模式:
set trace tacacs|radius|kerberos 4
注意:set trace tacacs|radius|kerberos 0命令将Catalyst返回到无跟踪模式。
有关多层 LAN 交换机的详细信息,请参阅交换机产品支持页。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
27-Dec-2007 |
初始版本 |