交换机上新增的一个用户角色配置信息如下:
role name test
rule 11 permit command system-view ; interface GigabitEthernet * ;
rule 12 permit command system-view ; interface GigabitEthernet * ; undo shutdown
rule 13 permit command system-view ; interface GigabitEthernet * ; shutdown
如果想把上面的信息转换到IMC的TAM组件中的命令集内来起到同样的功能时,是不是要去掉前面的阶梯试图(因为交换机上每条要执行的命令都要在前面跟上响应的试图),配置为:
system-view ;
interface * ;
shutdown
undo shutdown
命令集的默认授权改为拒绝,此时在命令集里面新增deny模式的.* 命令
IMC中是否需要这样改动,因为IMC是IMC HWTACACS 命令集是逐行匹配、顺序匹配、最长匹配,按单条命令 / 分段路径校验的?
根据您提供的角色配置,在IMC TAM的命令集中进行配置时,不需要去掉前面的阶梯视图。IMC TAM的命令授权是基于正则表达式对用户输入的命令行进行逐行、顺序、最长匹配的。因此,必须将完整的命令路径(包括进入各级视图的命令)配置在命令集中,才能实现精确授权。
您提供的角色配置目标是允许用户在任意GigabitEthernet接口下执行shutdown和undo shutdown命令。在IMC TAM的命令集中,为实现相同效果,应进行如下配置:
system-viewinterface GigabitEthernet \S+shutdownundo shutdown.*,以拒绝所有未被前面规则明确允许的其他命令。这是因为IMC的匹配机制是顺序执行。当用户输入system-view时,会匹配第一条允许规则;接着输入interface GigabitEthernet 1/0/1,会匹配第二条允许规则;最后输入shutdown,会匹配第三条允许规则。如果用户尝试输入其他未被允许的命令(例如display this),由于前几条规则都不匹配,最终会落到最后一条拒绝所有(.*)的规则上,从而被拒绝执行。
因此,您在IMC中需要配置的命令集内容应类似于:
system-view
interface GigabitEthernet \S+
shutdown
undo shutdown
.*
其中,前四条规则的“授权”字段应设置为“允许”,最后一条.*规则的“授权”字段应设置为“拒绝”。
你的理解有偏差。正确的做法是不需要去掉交换机上的“阶梯视图”,而是要将完整的命令路径(包括进入各级视图的命令)都配置在IMC TAM的命令集中。
你的想法(去掉视图、只保留system-view、interface *等)在IMC TAM的匹配机制下无法实现预期的授权效果。
IMC TAM的命令授权是基于正则表达式,对用户输入的完整命令行进行逐行、顺序、最长匹配。这意味着:
匹配对象是完整命令:当你在交换机上输入一条完整命令(例如 system-view 然后回车,再输入 interface GigabitEthernet 1/0/1),IMC TAM收到的是这条完整的命令字符串。
匹配过程是顺序的:IMC会按照命令集中规则的顺序,从上到下逐一尝试匹配。
需要明确授权路径:为了让用户能执行 shutdown,他必须先能进入 system-view 和 interface 视图。因此,命令集中必须按顺序包含进入这些视图的命令,否则用户在第一步就会被拒绝。
你的目标是为用户授权,使其能在任意GigabitEthernet接口下执行 shutdown 和 undo shutdown 命令。
配置示例:
在IMC TAM的命令集配置界面中,你添加的规则看起来会像这样:
其中,前四条规则设置为“允许”,最后一条 .* 规则设置为“拒绝”。
暂无评论
rule 12 permit command system-view ; interface GigabitEthernet * ; undo shutdown
system-view ; int g1/0/1 ; undo shutdown);
它不能约束分步输入:
用户分步敲:
system-view →回车→interface GigabitEthernet 1/0/1→回车→undo shutdown
不会命中这条 rule!本地 role 想要管控分步逐级进入视图执行命令,必须拆分多条规则分别放行每一级视图命令。
system-view
interface GigabitEthernet *
shutdown
undo shutdown
deny .* (全部默认拒绝,你这个思路是正确的)permit system-view
permit interface GigabitEthernet *
permit shutdown
permit undo shutdown
shutdown / undo shutdown 没有绑定视图!
一旦这样配置:用户在任意视图只要输入 shutdown 都会放行。
例如用户在系统视图误敲 shutdown(部分设备支持全局 shutdown 相关命令),存在风险。IMC 原生 TAM 命令集不支持【视图 + 命令】联合匹配(这是和本地 role 最大差异!本地 role 支持system-view;interface*;shutdown链式约束视图路径,IMC 做不到)。
permit system-view
permit interface GigabitEthernet *
permit shutdown
permit undo shutdown
deny .*
shutdown 在所有视图都允许,无法限制仅在接口视图执行。补充:IMC TAM 只有「单行字符串通配匹配」,没有 Comware RBAC 那种命令路径视图链式匹配能力,这是底层协议限制,不是配置问题。
是不是要去掉前面阶梯视图分号,配置独立单行: system-view; interface ; shutdown undo shutdown 命令集默认拒绝,最后添加 deny .
aaa
authorization-cmd 15 hwtacacs
;的复合命令,这类配置几乎永远不会命中用户正常分步操作场景。
| 项目 | 交换机本地 Role RBAC rule | IMC TAM HWTACACS 命令授权 |
|---|---|---|
| 匹配对象 | 支持分号串联的一整行复合命令;支持视图路径链式约束 | 仅匹配单次回车提交的单行独立命令 |
| 视图感知 | 支持 system-view;interface*;cmd 限定视图路径 | 无视图上下文,只匹配命令文本字符串 |
| 冲突规则 | rule 编号越大优先级越高 | 命令集从上至下顺序匹配,命中即终止 |
| 通配符 | * 任意匹配 | * / .* 正则匹配(IMC 命令集使用正则表达式) |
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论