02-RBAC配置
本章节下载: 02-RBAC配置 (199.21 KB)
RBAC(Role Based Access Control,基于角色的访问控制)通过建立“权限<->角色”的关联实现将权限赋予给角色,并通过建立“角色<->用户”的关联实现为用户指定角色,从而使用户获得相应角色所具有的权限。RBAC的基本思想就是给用户指定角色,这些角色中定义了允许用户操作哪些系统功能以及资源对象。
由于权限与用户的分离,RBAC具有以下优势:
· 管理员不需要针对用户去逐一指定权限,只需要预先定义具有相应权限的角色,再将角色赋予用户即可。因此RBAC更能适应用户的变化,提高了用户权限分配的灵活性。
· 由于角色与用户的关系常常会发生变化,但是角色和权限的关系相对稳定,因此利用这种稳定的关联可减小用户授权管理的复杂性,降低管理开销。
系统预定义了多种用户角色,用户角色名和对应的权限如表1-1所示。这些用户角色缺省均具有操作所有系统资源的权限,但具有不同的系统功能操作权限。如果系统预定义的用户角色无法满足权限管理需求,管理员还可以自定义用户角色来对用户权限做进一步控制。
用户角色名 |
权限 |
network-admin |
可操作系统所有功能和资源 |
network-operator |
· 可执行系统所有功能和资源的相关display命令(除display history-command all等命令) · 如果用户采用本地认证方式登录系统并被授予该角色,则可以修改自己的密码 · 可执行进入XML视图的命令 · 可允许用户操作所有读类型的Web菜单选项 · 可允许用户操作所有读类型的XML元素 · 可允许用户操作所有读类型的OID |
level-n (n = 0~15) |
· level-0:可执行命令ping、tracert、ssh2、telnet和super,且管理员可以为其配置权限 · level-1:具有level-0用户角色的权限,并且可执行系统所有功能和资源的相关display命令(除display history-command all之外),以及管理员可以为其配置权限 · level-2~level-8和level-10~level-14:无缺省权限,需要管理员为其配置权限 · level-9:可操作系统中绝大多数的功能和所有的资源,且管理员可以为其配置权限,但不能操作display history-command all命令、RBAC的命令(Debug命令除外)、文件管理、设备管理以及本地用户特性。对于本地用户,若用户登录系统并被授予该角色,可以修改自己的密码 · level-15:具有与network-admin角色相同的权限 |
guest-manager |
来宾用户管理员,只能查看和配置与来宾有关的web页面,没有控制命令行的权限 |
· 缺省MDC中系统预定义了表1-1中的所有用户角色,而非缺省MDC中没有network-admin和network-operator两种用户角色。
· 用户以任意角色登录设备,均具有执行system-view、quit和exit命令的权限。
· 预定义的用户角色中,仅用户角色level-0~level-14可以通过自定义规则和资源控制策略调整自身的权限。需要注意的是,这种修改对于display history-command all命令不生效,即不能通过添加对应的规则来更改它的缺省执行权限。
只有具有network-admin或者level-15用户角色的用户登录设备后才具有执行创建/修改/删除本地用户和本地用户组的权限;其它角色的用户,即使被授权本地用户和本地用户组的操作权限,也仅仅具有修改自身密码的权限,没有除此之外的对本地用户和本地用户组的任何操作权限。
通过为用户授权角色实现角色与用户的关联。将有效的用户角色成功授权给用户后,登录设备的用户才能以各角色所具有的权限来配置、管理或者监控设备。根据用户登录设备时采用的不同认证方式,可以将为用户授权角色分为AAA(Authentication、Authorization、Accounting,认证、授权、计费)方式和非AAA方式。
(1) AAA方式:用户登录时使用的认证方式为scheme,用户登录设备后所拥有的用户角色由AAA功能进行授权。
· 若用户通过了本地授权,则由设备为其授权用户角色,授权的用户角色是在本地用户中设置的。
· 若用户通过了远程授权,则由远程AAA服务器为其授权用户角色,授权的用户角色是在远程AAA服务器(RADIUS或HWTACACS服务器)上设置的。
(2) 非AAA方式:用户登录时使用的认证方式为none或者password,用户登录后所拥有的用户角色是用户线下配置的用户角色。
以上两种方式均支持对一个用户同时授权多个用户角色。拥有多个角色的用户可获得这些角色中被允许执行的功能以及被允许操作的资源的集合。例如,某用户拥有角色A,它禁止用户执行qos apply policy命令,且仅允许操作接口2。同时,该用户拥有角色B,它允许用户执行qos apply policy命令,且允许用户操作所有接口。则,这种情况下该用户将能够在所有接口下执行qos apply policy命令,以及可以操作所有的接口资源。
· AAA相关内容的介绍请参见“安全配置指导”中的“AAA”。
· 用户线相关内容的介绍请参见“基础配置指导”中的“登录设备”。
· 通过publickey或password-publickey认证登录服务器的SSH用户将被授予同名的设备管理类本地用户视图下配置的授权用户角色。SSH用户相关的介绍请参见“安全配置指导”中的“SSH”。
表1-2 RBAC配置任务简介
配置任务 |
说明 |
详细配置 |
为用户授权角色 |
可选 |
|
切换用户角色 |
可选 |
为保证对用户授权角色成功,设备上必须存在对应的被授权的用户角色。若要授权的用户角色有多个,则只要被授权的用户角色中的一个或多个在设备上存在,相应的用户角色即可授权成功;若设备上不存在任何一个被授权的用户角色,则用户角色授权将会失败。
对于通过AAA远程认证登录设备的用户,由AAA服务器的配置决定为其授权的用户角色。有关AAA以及远程AAA认证相关配置的详细介绍请参见“安全配置指导”中的“AAA”。
RADIUS服务器上的授权角色配置与服务器的具体情况有关,请参考服务器的配置指导进行;HWTACACS服务器上的授权角色配置必须满足格式:roles="name1 name2 namen",其中name1、name2、namen为要授权下发给用户的用户角色,可为多个,并使用空格分隔。
需要注意的是,若AAA服务器同时为用户授权了包括安全日志管理员在内的多个用户角色,则仅安全日志管理员角色生效。
对于通过本地AAA认证登录设备的用户,由本地用户配置决定为其授权的用户角色。有关AAA以及本地用户相关配置的详细介绍请参见“安全配置指导”中的“AAA”。
需要注意的是:
· 由于本地用户缺省就拥有一个用户角色,如果要赋予本地用户新的用户角色,请确认是否需要保留这个缺省的用户角色,若不需要,请删除。
· 系统中的最后一个安全日志管理员角色的本地用户不可被删除。
安全日志管理员与其它用户角色互斥,因此在为本地用户授权用户角色时,有以下内容需要关注:
· 为一个本地用户授权安全日志管理员角色时,经过界面的交互式确认后,系统会自动删除当前用户的所有其它他用户角色。
· 如果已经为当前本地用户授权了安全日志管理员角色,再授权其它的用户角色时,经过界面的交互确认后,系统会自动删除当前用户的安全日志管理员角色。
表1-3 为本地用户授权用户角色
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建本地用户,并进入本地用户视图 |
local-user user-name class { manage | network } |
- |
为本地用户授权用户角色 |
authorization-attribute user-role role-name |
缺省情况下,由用户角色为network-admin或level-15的用户创建的本地用户将被授权用户角色network-operator 可通过多次执行本命令,为本地用户授权多个用户角色,最多可授权64个 |
切换用户角色是指在不退出当前登录、不断开当前连接的前提下修改用户的用户角色,改变用户所拥有的命令行权限。切换后的用户角色只对当前登录生效,用户重新登录后,又会恢复到原有角色。
· 为了防止对设备的误操作,通常情况下建议管理员使用较低权限的用户角色登录设备、查看设备运行参数,当需要对设备进行维护时,再临时切换到较高权限的用户角色。
· 当管理员需要暂时离开设备或者将设备暂时交给其它人代为管理时,为了安全起见,可以临时切换到较低权限的用户角色,来限制其他人员的操作。
为了保证操作的安全性,通常用户进行用户角色切换时,均需要输入用户角色切换密码。切换到不同的用户角色时,需要输入相应切换密码。如果服务器没有响应或者没有配置用户角色切换密码,则切换操作失败,若还有备份认证方案,则转而进行备份认证。因此,在进行切换操作前,请先保证配置了正确的用户角色切换密码。
为了保证切换操作的安全性,执行用户角色切换时,需要进行身份认证。设备支持如表1-4所示的四种用户角色切换认证方式。
认证方式 |
涵义 |
说明 |
local |
本地密码认证 |
设备验证用户输入的用户角色切换密码 使用该方式时,需要在设备上使用super password命令设置用户角色切换密码 对于Console/AUX用户,在设备仅采用本地密码切换认证方式且未配置切换密码的情况下,设备不关心用户是否输入切换密码以及输入切换密码的内容,可允许用户成功切换用户角色 |
scheme |
通过HWTACACS或RADIUS进行远程AAA认证 |
设备将用户角色切换使用的用户名和密码发送给HWTACACS/RADIUS服务器进行远程验证 使用该方式时,需要进行以下相关配置: · 在设备上配置HWTACACS/RADIUS方案,并在ISP域中引用已创建的HWTACACS/RADIUS方案,详细介绍请参见“安全配置指导”中的“AAA” · 在HWTACACS/RADIUS服务器上创建相应的用户并配置密码 |
local scheme |
先本地密码认证,后远程AAA认证 |
先进行本地密码认证,若设备上未设置本地用户角色切换密码,使用Console或VTY用户线登录的用户则转为远程AAA认证 |
scheme local |
先远程AAA认证,后本地密码认证 |
先进行远程AAA认证,远程HWTACACS/RADIUS服务器无响应或设备上的AAA远程认证配置无效时,转为本地密码认证 |
· 当使用HWTACACS方案进行用户角色切换认证时,系统使用用户输入的用户角色切换用户名进行角色切换认证,HWTACACS服务器上也必须存在相应的用户。
¡ 当用户要切换到level-n的用户角色时,要求HWTACACS服务器上存在能提供切换到level-n角色的用户。在HWTACACS服务器上,支持切换到用户角色level-n的用户也能够支持切换到level-0到level-n之间任意的用户角色。
¡ 当用户要切换到非level-n的用户角色时,要求HWTACACS服务器上存在至少能提供切换到level-0角色的用户,且该用户配置了取值为allowed-roles=”role”的自定义属性(其中role为要切换的目的用户角色名称)。
· 当使用RADIUS方案进行用户角色切换认证时,系统使用“$enabn$”形式的用户名进行用户角色切换认证,其中n为用户希望切换到的用户角色level-n中的n,RADIUS服务器上也必须存在该形式用户名的用户。与HWTACACS不同的是,用户进行角色切换时可输入任意用户名,该名称在认证过程中无实际意义。
¡ 当用户要切换到level-n的用户角色时,要求RADIUS服务器上存在用户名为“$enabn$”的用户。例如,用户希望切换到用户角色level-3,输入任意用户名,系统忽略用户输入的用户名,使用“$enab3$”形式的用户名进行用户角色切换认证。
¡ 当用户要切换到非level-n的用户角色时,要求RADIUS服务器上存在用户名为“$enab0$”的用户,且该用户配置了取值为allowed-roles=”role”的自定义属性(其中role为要切换的目的用户角色名称)。
· 用户进行用户角色切换认证时,系统发送给RADIUS服务器的认证请求报文中的用户名中不会携带域名,系统发送给HWTACACS服务器的认证请求报文中的用户名是否携带域名由配置决定(user-name-format),系统采用的切换认证方案由用户输入的用户名中指定的域名决定,若该用户名中未携带域名,则使用缺省域。
· 当用户从用户角色a切换到用户角色b后,若输入quit命令,将退出当前登录的用户线。
表1-5 配置用户角色切换时的认证方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置用户角色切换时的认证方式 |
super authentication-mode { local | scheme } * |
缺省情况下,采用local认证方式 |
配置用户角色切换的密码 |
super password [ role role-name ] [ { hash | simple } string ] |
如果采用local认证方式,则该步骤必选 缺省情况下,未设置切换用户角色的密码 若不指定用户角色,则设置的是切换到当前缺省目的用户角色的密码 |
(可选)配置用户角色切换的缺省目的用户角色 |
super default role role-name |
缺省情况下,用户角色切换的缺省目的角色为network-admin |
表1-6 切换用户角色
操作 |
命令 |
说明 |
切换用户角色 |
super [ role-name ] |
该命令在用户视图下执行 若不指定用户角色,则切换到当前缺省目的用户角色。缺省的目的用户角色由super default role命令指定 用户最多可以连续进行三次切换认证,如果三次认证都失败则本轮切换失败 若要执行切换用户角色的操作,必须保证当前用户具有执行本命令的权限 |
用户通过本地认证并被授权指定的用户角色后,发现登录设备后实际具有的权限与被授权的用户角色权限不符。
可能是该本地用户被授权了其它用户角色,例如该本地用户还具有缺省的用户角色。
通过display local-user命令查看该用户实际拥有的用户权限,并删除授予用户的多余用户角色。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!