怎么才能定于定义某些账户禁用某些高危命令,调用端口后依然无法生效
role name gaowei rule 1 deny command shutdown rule 2 deny command undo shutdown rule 3 deny command ip route-static rule 4 permit command interface rule 5 permit command display * rule 6 permit command user-bind * rule 100 permit command .* # local-user ceshi01 class manage password si ........001232 service-type ssh authorization-attribute user-role gaowe
(0)
最佳答案
你的RBAC配置思路是没错的,规则rule 100 permit command .*也没有问题。自定义角色不生效,大概率不是因为“写得不对”,而是陷入了一个关于*通配符行为的常见误区:
根据H3C的RBAC(基于角色的访问控制)机制,
rule会选择最先匹配的规则来执行,而不是通常ACL规则里“编号越小越优先”的既定逻辑。
一个看似开放的permit command .*规则,如果放在最前面,就会提前接管所有命令行的检查权限,导致后面的deny规则无法生效。下面是我为你整理的修正后的完整配置流程。
这是一个构造正确的gaowei用户角色配置示例,我将规则按优先级从高到低排列(但请注意之前提到的“最先匹配”逻辑,现在的写法是先在 rule 10 用 deny 拦截高危命令)。
关键点:
规则条号 10 远小于 100,但因我们是先用 deny 匹配不安全命令,再用 permit 兜底,配置顺序和匹配逻辑得以统一。
严格指定命令所在视图:高危命令(如 shutdown)前必须加上interface * ;前缀,以明确定位其在接口视图下。
确保 local-user 绑定此角色,并正确配置该用户的认证方式。
display role name gaowei:检查角色权限配置是否正确。
使用ssh或telnet方式以ceshi01登录验证。
| 排查项 | 现象/问题 | 解决方案 |
|---|---|---|
| 配置未生效 | display this 看不到新规则 | 确认已在 system-view 下执行 commit 并保存配置。早期版本可能需要 role feature-group 相关操作。 |
| 登录时权限不足 | 提示 Permission denied 无法登录 | 确认 local-user 只保留 gaowei 一个角色(移除 network-operator),避免因“无权限登录”。 |
| 规则顺序不符预期 | 被意图允许的命令被拒绝 | 调整规则顺序,让更具体的规则优先于 .* 通配规则。 |
| 高危命令仍可执行 | 仍可在接口视图执行 shutdown | 检查命令规则是否指定命令视图 interface * ; shutdown。 |
| 无法进入某些视图 | 无法进入需要权限的配置模式 | 在规则中显式加上 system-view ; interface * 等进入视图的命令。 |
| 修改不更新 | 修改角色后现有会话仍不受影响 | 角色规则仅对新登录会话生效。用户重新登录后才会加载新权限--1。 |
| FTP等异常 | FTP 命令无法补全 | 检查 local-user 的授权角色:V5/V7 版本的某些组合会导致命令补全失效-2;确认已取消 authorization-attribute user-role 15 这类旧权限等级。 |
(0)
是要做权限限制嘛
参考如下
role name role1
rule 1 permit command system ; arp static *
rule 2 permit command display current-configuration*
rule 3 permit command system ; acl advanced * ; rule *
(0)
暂无评论
rule 100 permit command .*
# 先删除旧角色,重建
undo role name gaowei
role name gaowei
# 1. 禁止 关闭端口(必须精确写完整关键字)
rule 1 deny command system-view ; interface * ; shutdown
rule 2 deny command system-view ; interface * ; undo shutdown
# 2. 禁止 静态路由
rule 3 deny command system-view ; ip route-static *
# 3. 允许 进入接口
rule 4 permit command system-view ; interface *
# 4. 允许 查看信息
rule 5 permit command display *
# 5. 允许 user-bind
rule 6 permit command user-bind *
# 6. 最后:禁止所有未明确允许的命令(关键!)
rule 99 deny command .*
local-user ceshi01
class manage
password simple xxxxxx
service-type ssh
authorization-attribute user-role gaowei
ceshi01 登录后:✅ 可以 display 查看✅ 可以 interface 进入端口✅ 可以 user-bind❌ 无法敲 shutdown(提示无权)❌ 无法敲 undo shutdown❌ 无法配 ip route-static❌ 无法进入系统视图乱改其他配置完全达到你的需求:只能看、能进接口、不能关端口、不能加路由rule 100 permit command .*
(0)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论