尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

华三交换机三权分立配置实战:基于RBAC实现网络设备精细化权限管理

华三交换机三权分立配置实战:基于RBAC实现网络设备精细化权限管理 1. 项目背景与核心价值为什么需要“三权分立”在任何一个稍具规模的企业网络里网络设备的管理权限都是一个敏感且关键的话题。想象一下如果一台核心交换机的管理员账号密码被一个实习生或者一个即将离职的员工掌握会发生什么误操作导致业务中断、恶意配置引发安全漏洞甚至直接清空配置让整个网络瘫痪。这种“超级管理员”一手遮天的模式在追求精细化管理和安全合规的今天已经显得非常粗放和危险。“三权分立”账号体系正是为了解决这个问题而生。它不是一个华三交换机独有的功能而是一种源于信息安全等级保护要求的通用管理思想。其核心是将传统“网管”的至高无上权力拆分成三个相互独立、相互制约的角色系统管理员、安全管理员和审计管理员。系统管理员可以理解为“操作工”或“实施者”。他负责日常的网络配置变更、故障处理、软件升级等具体操作。但他不能创建新的管理账号也不能查看别人的操作记录。安全管理员可以理解为“钥匙保管员”或“权限分配者”。他负责管理所有账号包括系统管理员和审计管理员的创建、删除、密码修改和权限分配。但他自己不能去执行具体的网络配置命令。审计管理员可以理解为“监工”或“审计员”。他专门负责查看、导出所有用户包括系统管理员和安全管理员的操作日志、登录日志、配置变更记录。但他既不能操作设备也不能管理账号。这样一来就形成了一个完美的制衡闭环安全管理员给系统管理员发“操作许可证”账号权限系统管理员凭“证”干活审计管理员全程录像监督。任何一个人的单点失误或恶意行为都无法对系统造成毁灭性打击并且所有操作都有迹可查。这对于满足等保测评、ISO27001等安全审计要求以及实现企业内控管理具有不可替代的价值。华三交换机的V7版本Comware系统完整地内置了这套“三权分立”模型。接下来我将以一台全新的H3C S6850交换机Comware V7为例带你从零开始手把手完成这套账号体系的配置并深入讲解每一步背后的逻辑和可能遇到的坑。2. 前期准备与环境确认磨刀不误砍柴工在开始敲命令之前充分的准备能避免你掉进80%的坑。很多人配置失败问题往往出在最开始的环节。2.1 确认你的设备与软件版本首先你必须确认你的交换机运行的是Comware V7操作系统。因为V5和V7的命令体系有巨大差异本文的方法仅适用于V7。登录设备使用display version命令查看。在输出信息中寻找类似以下的字段H3C Comware Software, Version 7.1.070, Release 6828P01只要版本号以“7”开头就没问题。如果你的设备是V5版本那么三权分立的配置方法和命令完全不同需要另寻资料。2.2 理解默认的权限模型在配置三权分立前你需要知道华三V7系统默认的权限模型是什么。默认情况下设备使用基于用户角色的访问控制RBAC。系统预定义了几个角色比如network-admin网络管理员拥有所有权限相当于以前的超级用户。network-operator网络操作员只有查看权限无配置权限。当你用默认的admin账号密码通常为admin登录时你自动拥有network-admin角色。我们的目标就是打破这个“全能”的network-admin创建三个新的、权限受限的角色和对应的账号。2.3 规划你的账号与IP地址在纸上或脑子里先做好规划这很重要。混乱的配置后期维护起来是噩梦。假设我们为一个小型办公网规划如下设备管理VLANVLAN 100 IP网段 192.168.100.0/24。系统管理员账号sysadmin角色system-admin(需要创建)用途日常配置接入交换机。安全管理员账号secadmin角色security-admin(需要创建)用途管理所有账号权限。审计管理员账号auditadmin角色audit-admin(需要创建)用途查看所有日志。本地用户数据库我们就使用设备本地认证简单可靠。对于大规模网络可以结合TACACS/RADIUS服务器。做好这些准备后我们就可以通过Console线或SSH以admin身份登录交换机进入系统视图开始配置。3. 核心配置步骤详解从角色创建到账号绑定现在我们进入实操核心环节。请跟随步骤并理解每一条命令的意图。3.1 创建三个核心管理角色这是实现三权分立的基础。我们需要创建三个角色并为他们分配精确的命令行权限。# 进入系统视图 H3C system-view [H3C] # 注意提示符变成了 [H3C]表示已在系统视图下 # 1. 创建系统管理员角色system-admin [H3C] role name system-admin [H3C-role-system-admin] description For daily network operation and maintenance # 为该系统管理员角色授权。这里是最关键的一步允许他执行几乎所有网络配置命令但禁止用户管理命令。 # rule命令的格式是rule number permit/deny command “命令模式::命令正则表达式” [H3C-role-system-admin] rule 1 permit command system-view [H3C-role-system-admin] rule 2 permit command interface * [H3C-role-system-admin] rule 3 permit command vlan * [H3C-role-system-admin] rule 4 permit command ip route * [H3C-role-system-admin] rule 5 permit command ospf * [H3C-role-system-admin] rule 6 permit command display * # 重点显式拒绝用户管理相关的命令防止越权 [H3C-role-system-admin] rule 10 deny command local-user * [H3C-role-system-admin] rule 11 deny command role * [H3C-role-system-admin] rule 12 deny command super * [H3C-role-system-admin] quit # 2. 创建安全管理员角色security-admin [H3C] role name security-admin [H3C-role-security-admin] description For user account and privilege management # 安全管理员只能操作用户和角色不能进行网络配置 [H3C-role-security-admin] rule 1 permit command local-user * [H3C-role-security-admin] rule 2 permit command role * [H3C-role-security-admin] rule 3 permit command super * [H3C-role-security-admin] rule 4 permit command display local-user [H3C-role-security-admin] rule 5 permit command display role # 显式拒绝网络配置命令 [H3C-role-security-admin] rule 10 deny command interface * [H3C-role-security-admin] rule 11 deny command vlan * [H3C-role-security-admin] rule 12 deny command ip route * [H3C-role-security-admin] quit # 3. 创建审计管理员角色audit-admin [H3C] role name audit-admin [H3C-role-audit-admin] description For viewing all logs and operation records # 审计管理员只有“读”权限主要是查看日志和配置 [H3C-role-audit-admin] rule 1 permit command display logbuffer * [H3C-role-audit-admin] rule 2 permit command display history-command all [H3C-role-audit-admin] rule 3 permit command display current-configuration [H3C-role-audit-admin] rule 4 permit command display this [H3C-role-audit-admin] rule 5 permit command display diagnostic-information # 显式拒绝任何修改性命令 [H3C-role-audit-admin] rule 10 deny command system-view [H3C-role-audit-admin] quit注意上面的rule授权只是示例。在实际生产环境中你需要根据你的网络管理范围仔细规划每个角色能执行的命令集。*是通配符但使用要谨慎。一个更稳妥的做法是先给角色较少的权限在实际使用中根据报错再逐步添加遵循最小权限原则。3.2 创建本地用户并绑定角色角色创建好了现在需要创建使用这些角色的账号。# 创建系统管理员用户 sysadmin 密码设置为明文 SysAdmin123 (生产环境建议用cipher加密方式) [H3C] local-user sysadmin class manage [H3C-luser-manage-sysadmin] password simple SysAdmin123 # 关键将该用户的服务类型设置为SSH和Terminal控制台这样他才能登录 [H3C-luser-manage-sysadmin] service-type ssh terminal # 关键绑定之前创建的角色 system-admin [H3C-luser-manage-sysadmin] authorization-attribute user-role system-admin [H3C-luser-manage-sysadmin] quit # 创建安全管理员用户 secadmin [H3C] local-user secadmin class manage [H3C-luser-manage-secadmin] password simple SecAdmin123 [H3C-luser-manage-secadmin] service-type ssh terminal [H3C-luser-manage-secadmin] authorization-attribute user-role security-admin [H3C-luser-manage-secadmin] quit # 创建审计管理员用户 auditadmin [H3C] local-user auditadmin class manage [H3C-luser-manage-auditadmin] password simple AuditAdmin123 [H3C-luser-manage-auditadmin] service-type ssh terminal [H3C-luser-manage-auditadmin] authorization-attribute user-role audit-admin [H3C-luser-manage-auditadmin] quit3.3 配置管理接口与SSH服务可选但重要为了让管理员能通过网络远程登录而不是必须接Console线我们需要配置管理VLAN和开启SSH。# 创建管理VLAN 100 [H3C] vlan 100 [H3C-vlan100] quit # 为VLAN 100配置IP地址作为管理地址 [H3C] interface vlan-interface 100 [H3C-Vlan-interface100] ip address 192.168.100.1 24 [H3C-Vlan-interface100] quit # 将连接管理员PC的端口例如G1/0/1划入管理VLAN [H3C] interface gigabitethernet 1/0/1 [H3C-GigabitEthernet1/0/1] port link-type access [H3C-GigabitEthernet1/0/1] port access vlan 100 [H3C-GigabitEthernet1/0/1] quit # 生成RSA密钥对这是SSH登录的基础 [H3C] public-key local create rsa # 开启SSH服务器功能并指定认证方式为本地密码认证 [H3C] ssh server enable [H3C] line vty 0 63 [H3C-line-vty0-63] authentication-mode scheme [H3C-line-vty0-63] protocol inbound ssh [H3C-line-vty0-63] quit3.4 验证配置与功能测试配置完成后千万不要直接保存重启。必须进行严格的验证。# 1. 保存当前配置 [H3C] save force # 2. 查看创建的用户和角色 [H3C] display local-user [H3C] display role all # 3. 退出当前admin登录用新账号测试 [H3C] quit H3C quit现在打开你的SSH客户端如SecureCRT、Xshell使用sysadmin账号登录192.168.100.1。测试1系统管理员 (sysadmin)# 尝试进行网络配置应该成功 H3C system-view [H3C] vlan 200 [H3C-vlan200] quit [H3C] interface gigabitethernet 1/0/2 [H3C-GigabitEthernet1/0/2] port link-type trunk [H3C-GigabitEthernet1/0/2] port trunk permit vlan all [H3C-GigabitEthernet1/0/2] quit # 尝试创建用户应该被拒绝 [H3C] local-user test Permission denied.这说明sysadmin的网络配置权限正常用户管理权限已被限制。测试2安全管理员 (secadmin)用secadmin重新登录。# 尝试创建用户应该成功 H3C system-view [H3C] local-user test class manage [H3C-luser-manage-test] password simple Test123 [H3C-luser-manage-test] service-type ssh [H3C-luser-manage-test] quit # 尝试配置VLAN应该被拒绝 [H3C] vlan 300 Permission denied.这说明secadmin的用户管理权限正常网络配置权限已被限制。测试3审计管理员 (auditadmin)用auditadmin重新登录。# 尝试查看日志和配置应该成功 H3C display logbuffer H3C display current-configuration | include local-user # 尝试进入系统视图或做任何修改应该被拒绝 H3C system-view Permission denied. [H3C] vlan 400 Permission denied.这说明auditadmin的只读审计权限正常。4. 高级配置与深度避坑指南如果你认为上面配置完就万事大吉那可能很快就会遇到麻烦。下面这些高级细节和“坑”是我在多次项目实施中总结出来的。4.1 权限规则的精细化控制与“黑洞”问题上面我们用rule deny显式拒绝了一些命令。但这里有个大坑华三V7的权限规则是“白名单”机制默认拒绝所有。你配置的permit规则是允许的例外deny规则是拒绝的例外。但命令的匹配顺序和范围需要特别注意。例如你为system-admin授权了rule 1 permit command system-view和rule 10 deny command local-user *。看起来没问题。但如果一个命令既匹配permit又匹配deny呢实际上deny的优先级更高。更常见的问题是权限不足。假设system-admin需要用到display ip interface brief这个命令来查看接口IP。如果你只授权了rule 6 permit command display *那么他执行display ip interface brief时可能会失败。因为display *这个规则太宽泛系统可能不会精确匹配到子命令。更安全的做法是授权到命令模式层级[H3C-role-system-admin] rule 6 permit readpermit read是一个特殊的规则允许该角色执行所有display和dir等只读命令。对于系统管理员给他permit read权限通常是安全和方便的。另一个坑是权限“黑洞”你创建了一个角色并精心配置了几十条permit规则但用户登录后连system-view都进不去。为什么因为你可能漏了授权command system-view。进入系统视图本身就是一个需要授权的高级命令。请务必把rule 1 permit command system-view作为每个可配置角色的第一条规则。4.2 密码策略与账号安全加固使用simple明文密码只是在演示。生产环境必须使用cipher加密并启用密码策略。# 设置密码加密方式为cipher默认就是但确认一下 [H3C] password-control enable # 创建密码策略 [H3C] password-control length 10 # 最小长度10位 [H3C] password-control composition type-number 3 type-length 3 # 至少包含3种字符数字、字母、特殊符号每种至少3个 [H3C] password-control aging 90 # 密码有效期90天 [H3C] password-control history 5 # 记住最近5次密码不能重复 [H3C] password-control login-attempt 5 exceed lock-time 10 # 密码错误5次锁定账号10分钟 # 更新用户密码为加密方式 [H3C] local-user sysadmin class manage [H3C-luser-manage-sysadmin] password cipher SysAdmin2024!Complex [H3C-luser-manage-sysadmin] quit # 同样修改 secadmin 和 auditadmin 的密码4.3 审计功能的强化让操作无所遁形三权分立中审计员的角色至关重要。除了基础的display logbuffer我们还需要开启更详细的命令记录和日志输出。# 开启终端日志监视功能实时在屏幕显示日志 [H3C] info-center enable [H3C] info-center source default logbuffer level informational [H3C] info-center source default console level informational # 在控制台显示 [H3C] info-center source default monitor level informational # 在终端显示 # 开启命令审计功能非常重要 [H3C] audit command enable # 设置审计员角色可以查看所有命令日志 [H3C] role audit-admin [H3C-role-audit-admin] rule 1 permit read # 这条规则让审计员能查看所有display命令包括 display history-command all查看历史命令 [H3C-role-audit-admin] quit # 配置日志主机将日志发送到专门的Syslog服务器进行集中存储和分析强烈推荐 [H3C] info-center loghost 192.168.100.100 facility local7配置完成后审计员auditadmin登录后执行display history-command all就能看到所有用户包括sysadmin和secadmin在设备上执行过的所有命令这对于事故回溯和合规审计是黄金证据。4.4 关于“超级密码”Super Password的迷思很多人在配置三权分立时会问那原来的admin账号怎么办如果三个管理员都忘了密码设备是不是就“砖”了华三设备提供了一个最后的“逃生通道”——超级密码Super Password。这不是一个普通的用户密码而是一个特殊的特权密码允许用户在登录后通过super命令临时提升到network-admin权限。# 设置超级密码同样建议用cipher [H3C] super password level 3 cipher SuperReset2024这个密码应该由最高管理者如IT总监密封保管不到万不得已绝不使用。它的存在是为了防止三权分立机制把自己“锁死”但它本身也破坏了分权制衡所以必须严格管控。当sysadmin用户登录后如果他需要执行一个超出其角色权限的命令比如某些高级诊断命令他可以输入H3C super 3 Password: # 这里输入超级密码 SuperReset2024 User privilege level is 3, and only those commands whose level is equal to or less than 3 can be used.输入正确的超级密码后他的权限会临时提升。所有通过super提升权限执行的操作都会被详细记录在审计日志中审计员可以清楚地看到谁、在什么时候、使用了超级权限。这就在应急和审计之间取得了平衡。5. 日常运维场景与故障排查配置不是终点日常用起来顺不顺手才是关键。下面分享几个典型场景和对应的处理方法。5.1 场景一新员工入职需要开通网络配置权限安全管理员 (secadmin)登录设备。评估新员工需要的权限范围。如果和现有sysadmin类似则直接创建一个新用户绑定system-admin角色即可。如果权限需求不同例如只需要配置接入层交换机不需要碰核心路由。那么安全管理员需要创建一个新的角色比如access-admin并为其精细授权只允许vlan,interface相关命令禁止ospf,bgp等。[H3C] role name access-admin [H3C-role-access-admin] rule 1 permit command system-view [H3C-role-access-admin] rule 2 permit command interface * [H3C-role-access-admin] rule 3 permit command vlan * [H3C-role-access-admin] rule 4 permit read [H3C-role-access-admin] quit [H3C] local-user newstaff class manage [H3C-luser-manage-newstaff] password cipher NewStaffPass123 [H3C-luser-manage-newstaff] service-type ssh terminal [H3C-luser-manage-newstaff] authorization-attribute user-role access-admin将账号密码发给新员工。审计管理员 (auditadmin)可以定期查看newstaff的操作日志确保其操作规范。5.2 场景二排查一个网络故障系统管理员权限不足sysadmin在排查一个复杂的OSPF邻居问题时发现需要查看一些调试信息 (debugging ospf event)但执行时提示Permission denied。分析debugging命令的权限级别通常较高可能没有包含在system-admin角色的默认权限里。解决有两种方式。方式A临时sysadmin申请使用超级密码 (super)临时提升权限执行调试命令。完成后立即退出超级权限。审计日志会记录此次提权。方式B永久sysadmin向secadmin提出权限变更申请。经审批后secadmin为system-admin角色添加一条规则rule 20 permit command debugging ospf *。这种方式更合规但流程稍长。教训在初次规划角色权限时应尽可能与运维团队沟通将常用的故障排查命令如debugging,ping,tracert,reset等考虑进去避免频繁申请临时权限。5.3 常见故障排查问题1用户登录成功但一输入system-view就提示Permission denied。原因该用户绑定的角色没有被授权command system-view。解决用secadmin账号登录检查并修改该角色的规则添加rule 1 permit command system-view。问题2用户可以在系统视图下配置VLAN但无法配置IP地址。原因角色权限未细化到interface vlan-interface或ip address命令。解决为角色添加更具体的命令规则例如rule X permit command interface vlan-interface *和rule Y permit command ip address *。或者如果确定该角色需要所有接口和IP相关权限可以使用更宽泛但精确的规则如rule X permit command interface *和rule Y permit command ip *。使用*通配符时要明确其范围。问题3审计员看不到某些用户的操作记录。原因1命令审计功能未全局开启 (audit command enable)。原因2日志缓冲区太小旧记录被覆盖。原因3用户使用了super提权但其基础角色下的操作可能记录不完整。解决检查audit command enable配置使用display logbuffer summary查看日志缓冲区设置必要时用info-center logbuffer size调大并配置日志外发到服务器确保记录不丢失。6. 配置备份、恢复与自动化管理思考一套好的权限体系必须有配套的维护流程。6.1 配置备份定期备份配置是生命线。我们可以让sysadmin或auditadmin执行备份。H3C tftp 192.168.100.200 put flash:/startup.cfg backup_20240701.cfg或者更简单地用display current-configuration将配置复制出来保存。注意备份文件里包含了所有用户的密码cipher文本。虽然这是加密的但仍需妥善保管备份文件将其视为敏感数据。6.2 配置恢复与灾难恢复如果设备配置丢失需要恢复。用Console线直连如果本地认证未损坏仍可用admin或已知的本地账号登录。如果所有本地账号都无法登录则需要进入BootROM菜单进行密码恢复此操作会清空当前配置请谨慎。重启设备按CtrlB进入BootROM选择跳过当前配置启动然后重置密码。恢复配置后第一件事就是重新配置三权分立账号因为恢复的配置里包含了旧的密码。6.3 向自动化运维演进Ansible与API手动配置和管理几十上百台交换机是低效的。结合热搜词里的“ansible配置华三交换机”我们可以向自动化迈进。华三V7设备支持通过NETCONF/YANG模型进行API管理也兼容Ansible的部分网络模块。你可以编写Ansible Playbook来自动化完成“三权分立”的初始配置。一个简化的思路是在Ansible控制机上为每台设备定义好三个角色的权限规则YAML格式。通过Ansiblenetconf_config模块使用初始超级密码需提前统一并安全存储登录设备。Playbook依次推送角色定义、创建本地用户、绑定角色、配置SSH等任务。任务完成后Playbook可以自动修改设备的超级密码并将新密码存入加密的保险库如Ansible Vault。这样新交换机上线时只需录入IP和初始密码一个Playbook就能完成包括三权分立在内的基础安全配置极大提升效率和规范性。当然这需要一定的脚本开发能力但长期来看收益巨大。走到这一步你已经不是简单地配置了几个交换机账号而是为企业构建了一套可审计、可追溯、权责清晰的网络设备安全管理基座。这套体系的价值会在每一次安全审计、每一次故障复盘、每一次人员变动中清晰地体现出来。配置的过程虽有细节需要打磨但一旦稳定运行它带来的安全感和秩序感会让所有的前期投入都显得无比值得。
返回列表