用户级别切换认证技术白皮书
关键词:级别切换认证,RADIUS,HWTACACS
摘 要:本文主要介绍用户级别切换认证的产生背景、认证机制及其典型组网应用。
缩略语:
缩略语 | 英文全名 | 中文解释 |
AAA | Authentication, Authorization, Accounting | 认证、授权、计费 |
RADIUS | Remote Authentication Dial-In User Service | 远程认证拨号用户服务 |
HWTACACS | HW Terminal Access Controller Access Control System | HW终端访问控制器控制系统协议 |
为了限制不同用户对设备的访问权限,系统对用户进行了分级管理。用户的级别与命令级别对应,不同级别的用户登录设备后,只能使用等于或低于自己级别的命令。但在有些情况下,用户需要在不退出当前登录、不断开当前连接的前提下,修改自身的用户级别。例如,管理员通常以较低级别的用户身份登录设备、查看设备运行状态,当需要进行配置、维护类操作时,就希望临时切换到较高的级别。
用户级别切换功能就可以满足以上需求,该功能允许登录设备的用户通过执行super命令从当前的级别切换到指定的级别。级别切换后用户不需要重新登录,可以继续配置设备,只是可以执行的命令会不一样。且切换后的级别是临时的,只对当前登录生效,用户重新登录后,又会恢复到原有级别。
当使用super命令从高级别往低级别或相同级别间切换时,由于用户的访问权限并未增加,因此切换行为不需要通过任何认证;而从低级别往高级别切换时,相当于用户请求增加访问权限,因此系统需要对这种级别提升行为进行认证,只有认证通过,才赋予该用户新的访问权限。
目前,设备上支持两种基本的级别切换认证方案:
l 本地级别切换认证
l 远程AAA级别切换认证
此外,为增加配置的灵活性,设备还提供了以下两种组合认证方案:
l 远程AAA级别切换认证无响应的情况下转本地级别切换认证
l 本地级别切换密码没有设置时转远程AAA级别切换认证
本地级别切换是指使用一个本地配置的密码对级别切换行为进行认证。对于要切换到某一个级别的行为,所有用户均使用同一个密码。如下所示,任何登录到设备上的用户,要切换到3级别时,只需要正确输入一个该设备上预先设置的本地级别切换密码就可以。
<Device> super 3
Password: <——此处输入本地级别切换密码
User privilege level is 3, and only those commands can be used
whose level is equal or less than this.
Privilege note: 0-VISIT, 1-MONITOR, 2-SYSTEM, 3-MANAGE
远程AAA级别切换认证是指使用远程AAA服务器(RADIUS服务器或HWTACACS服务器)对级别切换行为进行认证。例如,某网络管理部门的所有维护人员均使用RADIUS认证登录设备,且登录后的访问级别为0级(visit级别),所有人员都可以执行一些具备网络诊断功能的基本操作(例如ping),但只有该部门的管理员可以利用super命令提升自身的用户级别。管理员利用super命令改变自身级别时,可以通过RADIUS进行级别切换认证,认证通过后,才能将自身的用户级别提升至更高级别(1~3)。
如下所示,要切换到3级别时,需要正确输入用户名和对应的级别切换密码。
<Device> super 3
Username:olive@abc
Password: <——此处输入对应的级别切换密码
User privilege level is 3, and only those commands can be used
whose level is equal or less than this.
Privilege note: 0-VISIT, 1-MONITOR, 2-SYSTEM, 3-MANAGE
本地级别切换认证方式具有配置简单、易用的优点,但在也存在以下问题:
l 无法对级别切换的操作者进行身份区分,任何拥有本地切换密码的用户都可以使用相同的切换密码来提升自身的级别。
l 本地密码在存储及管理方面都有一定的局限性,且容易产生安全隐患。
相比较而言,远程AAA级别切换认证需要部署相应的AAA服务器来配合,用户信息的管理与维护上比本地级别切换稍显复杂,但它具有如下优点:
l 可提升用户级别切换的安全性
通过使用远程AAA级别切换认证提升了级别切换的安全性。用户进行级别切换操作时使用相应的级别切换用户名和密码在远程AAA(RADIUS或HWTACACS)服务器上进行身份认证,不同的用户可拥有不同的级别切换权限。
l 可提高设备管理的灵活性
通过与本地级别切换认证组合使用,增强了认证的可靠性,提高了设备管理的灵活性。
下文描述遵从以下约定:
l 使用“Super认证”简化指代“用户级别切换认证”
l 黑体表示的关键字(例如scheme)仅与当前版本设备上的相应命令行对应
Super认证的认证过程与用户登录设备的认证方式有密切的联系,会因为不同的用户登录方式而存在配置和使用方面的一些差异。为了更好得理解和使用Super认证,我们首先对用户的登录认证方式进行一下简单了解。
表1 用户登录的认证方式
登录认证方式 | 涵义 |
none | 用户登录用户界面时不需要进行认证 |
password | 用户登录用户界面时需要进行密码认证 |
scheme | 用户登录用户界面时需要进行用户名和密码认证 |
目前,设备上支持如下四种Super认证方式:
l 本地Super认证
l 通过HWTACACS/ RADIUS进行远程Super认证
l 远程Super认证无响应后转本地Super认证
l 本地级别切换密码未设置后转远程Super认证
表2是当前设备上支持的Super认证方式的汇总及各认证方式的简单说明。
表2 Super认证方式汇总表
Super认证方式 | 涵义 | 说明 |
local | 本地Super认证 | 设备验证用户输入的级别切换密码(与设备上配置的本地级别切换密码比较) |
scheme | 通过HWTACACS/ RADIUS进行远程Super认证 | 设备将级别切换用户名和密码发送给远程HWTACACS/ RADIUS服务器进行认证 |
scheme local | 远程Super认证无响应后转本地Super认证 | 远程HWTACACS/ RADIUS服务器无响应或AAA配置无效时,设备转为进行本地Super认证 |
local scheme | 本地级别切换密码未设置后转远程Super认证 | 若设备上没有设置本地级别切换密码,则除使用Console用户界面登录的用户可直接切换级别外,其它用户(使用AUX、TTY或VTY用户界面登录的用户)则转为进行远程Super认证 |
如果设备上设置了对应的本地级别切换密码,则系统提示用户输入该密码,并把用户输入的密码和对应的本地级别切换密码进行比较,如果一致则提示用户认证成功,如果认证尝试次数达到3次则提示用户认证失败,否则提示用户重新输入本地级别密码。
如果用户登录时曾经输入过用户名,则使用登录时所用的用户名做Super认证,直接提示用户输入密码;否则先提示用户输入用户名,然后提示用户输入密码。
由于RADIUS协议无法区分用户所申请的权限级别,所以使用RADIUS进行Super认证时无论用户输入的用户名(或用户登录名)是什么,设备都会根据用户申请的权限级别使用固定用户名“$enab+level”构造认证请求报文进行认证,其中level为用户申请的权限级别(0~3)。例如用户要申请切换到级别3,则设备将使用“$enab3”作为用户名向RADIUS服务器发起认证。(若配置要求用户名中携带域名,则为$enab3@domain,domain为用户的认证域)。因此,相应的RADIUS服务器上就需要添加用户名为“$enab3”的用户。
RADIUS服务器接收到认证请求报文后,就对级别切换用户名和密码进行认证。如果认证成功,RADIUS服务器返回认证成功消息;如果认证失败,则返回认证失败消息。如果认证尝试次数达到3次,则提示用户认证失败,否则提示用户重新输入级别切换用户名和密码。
如果用户登录时曾经输入过用户名,则使用登录时所用的用户名做Super认证,直接提示用户输入密码;否则先提示用户输入用户名,然后提示用户输入密码。
HWTACACS协议支持用户申请权限级别,使用HWTACACS进行Super认证时,设备使用用户输入的用户名(或用户登录名)和密码发起认证。
HWTACACS服务器接收到认证请求报文后,就对级别切换用户名和密码进行认证。如果认证成功,HWTACACS服务器返回认证成功消息;如果认证失败,则返回认证失败消息。如果认证尝试次数达到3次则提示用户认证失败,否则提示用户重新输入级别切换用户名和密码。
前面已经介绍了三种用户登录认证方式及四种Super认证方式,下面对两者组合使用的情况下,用户进行级别切换操作时的输入情况进行汇总,具体如表3所示。
需要说明的是:
l 表中第三列为用户在第一种Super认证方式下进行级别切换操作时的输入信息。
l 表中第四列为用户在第一种Super认证方式未生效的情况下,转换到第二种Super认证方式时的输入信息。
l 未配置切换方案的情况下,无第四列内容,以“-”表示。
表3 不同Super认证方式下的用户输入信息描述表
用户登录认证方式 | Super认证方式 | Super认证输入 | Super认证方式切换后 Super认证输入 |
none/password | local | 本地级别切换密码(设备上设置) | - |
local scheme | 本地级别切换密码 | 级别切换用户名和密码 (AAA服务器上设置) | |
scheme | 级别切换用户名和密码 | - | |
scheme local | 级别切换用户名和密码 | 本地级别切换密码 | |
scheme | local | 本地级别切换密码 | - |
local scheme | 本地级别切换密码 | 级别切换密码(AAA服务器上设置),系统使用登录用户名作为级别切换用户名 | |
scheme | 级别切换密码(AAA服务器上设置),系统使用登录用户名作为级别切换用户名 | - | |
scheme local | 级别切换密码(AAA服务器上设置),系统使用登录用户名作为级别切换用户名 | 本地级别切换密码 |
对登录Device的Telnet用户进行用户级别切换认证。
具体要求:
l 用户名为test@bbb的Telnet用户登录Device的认证方式为本地认证,登录后所能访问的命令级别为0级。
l 该Telnet用户要将用户级别提升为3时,首先需要通过RADIUS服务器进行远程Super认证,若AAA配置无效或者RADIUS服务器没有响应则转为本地Super认证。
(1) Telnet用户建立与Device的连接
在Telnet客户端按照提示输入用户名test@bbb及对应的密码,即可进入Router的用户界面,且只能访问级别为0级的命令。
<Device> telnet 192.168.1.70
Trying 192.168.1.70 ...
Press CTRL+K to abort
Connected to 192.168.1.70 ...
**************************************************************************
* Copyright (c) 2004-2009 Hangzhou H3C Tech. Co., Ltd. All rights reserved.*
* Without the owner's prior written consent, *
* no decompiling or reverse-engineering shall be allowed. *
**************************************************************************
Login authentication
Username:test@bbb
Password:
<Device> ?
User view commands:
cluster Run cluster command
display Display current system information
ping Ping function
quit Exit from current command view
ssh2 Establish a secure shell client connection
super Set the current user priority level
telnet Establish one TELNET connection
tracert Trace route function
(2) 切换用户级别
# 在当前的用户界面下执行切换用户级别到3级的命令,按照提示输入RADIUS级别切换认证密码pass3,若认证成功即可将当前Telnet用户的级别切换到3级。
<Device> super 3
Password: <——此处需输入RADIUS级别切换认证密码
User privilege level is 3, and only those commands can be used
whose level is equal or less than this.
Privilege note: 0-VISIT, 1-MONITOR, 2-SYSTEM, 3-MANAGE
# 若输入切换密码后,系统提示错误并通知用户认证模式已改变,则表示本次切换认证失败。继续按照提示输入本地级别切换认证密码654321,若认证成功即可将当前Telnet用户的级别切换到3级。
<Device> super 3
Password:
Error: Invalid configuration or no response from the authentication server.
Info: Change authentication mode to local.
Password: <——此处需输入本地级别切换认证密码
User privilege level is 3, and only those commands can be used
whose level is equal or less than this.
Privilege note: 0-VISIT, 1-MONITOR, 2-SYSTEM, 3-MANAGE
Copyright © 2009 杭州华三通信技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。