news 2026/10/13 8:34:56

华为交换机SSH加固:账号提权与ACL源限制配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为交换机SSH加固:账号提权与ACL源限制配置指南

你负责维护的交换机,如果管理员账号直接开到最高权限,每个值班人手一套15级密码,那出事只是早晚的问题。换成“登录账号 + Super Password 提权”,再配一条 ACL 只放行运维终端 IP,这才是大多数企业运维规范里真正想要的效果。这篇按华为交换机从头到尾捋一遍 SSH 加固配置:生成设备密钥、开 SSH、建账号、配 Super 提权、用 ACL 锁源 IP,最后再附上一份我踩过的坑合集。适合刚接手设备、正准备把 Telnet 换成 SSH 的同学,也适合想给设备加一道“双门禁”但一直没时间整理的老工程师。

1. 配置前必须想清楚的几件事

1.1 设备当前状态与连接方式的兜底评估

做 SSH 改造之前,第一件事不是敲命令,而是先确认你手里还有没有一条“怎么折腾都不会断”的通道。最稳妥的就是 console 线。很多现场事故都是这样发生的:远程 SSH 登录设备,一顿操作把 SSH 相关配置改坏了,然后连接断开,远程又进不去,设备也访问不了,最后只能跑机房。所以我的习惯是:凡是涉及 SSH、ACL、端口安全这类配置,一定先把 console 线插上,确认 console 口能正常登录,再动远程配置。console 口本身不走 SSH 协议,也不受 VTY 下的 ACL 限制,只要它认证配置没坏,就是最后的救命通道。

接着确认设备的系统版本和命令风格。华为交换机常见的是 VRP(Versatile Routing Platform),命令在 S 系列、CE 系列上有一些差异,但 SSH 基础配置这块写法基本一致。你可以先执行display version查看版本,再执行display ssh server status看当前 SSH 服务是否已经开启。如果设备上已经存在老旧的 SSH 密钥或旧配置,需要评估要不要清理重用。别一上来就把原有的密钥删掉,如果现场有其他网管系统或监控系统依赖这台设备的 SSH 指纹,重生成密钥后所有人的客户端 known_hosts 都会报警,这个影响面要提前说清楚。

1.2 管理平面与账号体系的规划

在配置之前,最好把网络拓扑和管理地址落在一张草图上。比如我下面拿一个非常典型的办公网环境举例:

  • 设备管理地址:192.168.10.1
  • 运维终端(放行访问):192.168.10.10,192.168.10.11
  • 管理网段:192.168.10.0/24

为什么要单独拿出“管理地址”和“运维终端”来说?因为华为交换机默认所有 VLANIF 接口都可以作为管理口,如果管理地址和业务网段混合在一起,你很难用 ACL 来控制谁能 SSH。规范一点的做法是单独划分管理 VLAN,专门放设备的管理 IP,运维终端也统一放在这个 VLAN 里。如果网络规模小,至少也要在规划表里写清楚哪几台机器可以登录设备,不要最后用0.0.0.0 0.0.0.0放行全网段,等于没设防。

账号体系也要提前设计。我给很多项目做加固的时候,推荐“双密码”模型:登录账号给一个普通权限,日常巡检够用;要执行写配置、重启、删除这类高风险命令时,再通过 Super 密码临时提权到 15 级。这样账号密码和 Super 密码分开管理,即使账号密码泄露,也不至于让人直接清空配置。华为交换机默认的权限等级里,level 3一般可以满足日常配置和查看,level 15是最高权限。用这种方式做权限分离,比把所有账号都开成 15 级要安全得多,也方便后期审计谁在什么时候提过权。

2. SSH 服务的核心配置流程

2.1 生成设备密钥对

SSH 能安全工作的前提,是交换机自身有可用的主机密钥对。这个密钥对用来在会话建立时做服务器身份认证和密钥交换,相当于交换机的“身份证”。华为设备默认没有生成 RSA 主机密钥,所以拿到新设备后第一步就是生成密钥对。

在系统视图下执行:

<SW> system-view [SW] rsa local-key-pair create The key name will be: SW_Host The range of public key size is 2048 to 2048.

这里不同版本提示文字有差异,但核心是选择密钥长度。我建议直接选2048,有些老设备提示默认 512 或 1024,不要为了省事接受默认值,加密强度太弱对现代运维来说是不可接受的。生成过程中设备会提示收集随机数,一般在设备上敲几个字母或等待片刻就能完成。

这里有个细节:如果设备之前已经有 RSA 密钥,再执行 create 会提示是否覆盖。覆盖操作会让所有之前保存过该设备指纹的 SSH 客户端检测到 host key 变化,连接时报指纹不匹配。如果是生产设备,操作前务必确认没有网管平台依赖旧指纹。另外,华为设备也可以生成 ECDSA 密钥用于 SSH,但多数客户端和平台对 RSA 的兼容性最好,现场我基本都是只配 RSA 2048,不折腾其他算法。

2.2 开启 SSH 服务并约束进入方式

生成完密钥对之后,需要把 SSH 服务打开。这个命令在不同版本上稍有区别,但基本都在系统视图下执行:

[SW] ssh server enable [SW] ssh server port 22 [SW] quit

ssh server enable是全局开关,默认状态下设备不监听 22 端口,不开这个命令,SSH 客户端连接时基本是直接超时或拒绝。ssh server port 22是可选的,如果公司安全基线要求修改默认端口,可以改成别的端口,但说实话,改端口这种事情对内部运维体系来说收益有限,反而会给后续的端口扫描、防火墙策略、客户端配置都增加复杂度。除非有明确等保要求,否则保持 22 就行。

真正重要的是 VTY 的限制。华为交换机的远程登录通道是 VTY 虚拟终端线,默认可能同时允许 Telnet 和 SSH。为了消除明文协议,我们要把 VTY 上的协议入口收紧为只允许 SSH:

[SW] user-interface vty 0 4 [SW-ui-vty0-4] protocol inbound ssh [SW-ui-vty0-4] quit

注意protocol inbound ssh这行配置是不能省的。很多设备默认接受 Telnet 和 SSH,你如果不显式改成 SSH,那即使配好了 SSH 服务,Telnet 还是能进来。明文账号密码在网络里跑一圈,等于是给抓包的人送人头。改完这一步之后,Telnet 到设备 23 端口会直接失败。

2.3 创建登录账号并绑定 SSH 服务

账号在华为设备上一般放在 AAA 体系里管理。用本地账号做认证,需要在 AAA 域下创建用户并设置服务类型和权限级别。下面是我常用的最小配置:

[SW] aaa [SW-aaa] local-user admin password cipher 复杂密码请自行替换 [SW-aaa] local-user admin service-type ssh [SW-aaa] local-user admin privilege level 3 [SW-aaa] quit

这里三个配置行都有讲究。

第一,密码用cipher而不是simple。simple会把明文密码直接存在配置文件里,任何能display current-configuration的人都能看到。cipher是加密存储,虽然也能被解密(华为的 cipher 算法可以逆推,但需要专门的破解流程,不是一眼能看出来的),但日常防御级别够了。

第二,service-type ssh表示这个账号只能通过 SSH 登录,不能走 Telnet。如果这里漏配,可能会遇到账号密码明明正确但 SSH 认证失败的诡异问题,后面排查章节会细说。

第三,privilege level 3是当前账号的默认权限级别。这里我故意不给 15,是为了配合后面 Super Password 做提权管理。如果你对权限没要求,有些人会直接配level 15,省得提权麻烦,但这也就失去了双层密码的意义。

配置完之后,一定要在当前激活的配置视图里执行一遍display ssh user-information或者display current-configuration configuration aaa确认配置落表。另外,华为设备里有一个默认的本地用户,出厂密码有可能是一段固定字符串,这种默认账号在生产环境必须改掉或直接禁用,很多安全基线检查第一项就是看默认账号密码有没有改。

3. Super Password 提权机制实战

3.1 为什么需要“登录后再提权”

华为交换机默认的权限级别是 0 到 15,级别越高能执行的命令越多。很多网管习惯用一个 15 级账号走天下,这在小规模环境里确实方便,但在稍微正规一点的环境里,这会让“最小权限原则”直接破产。

举个例子:一个值班工程师,日常只需要display interface、display logbuffer这类巡检命令,但他的账号是 15 级,那他不小心敲一个reset saved-configuration,设备并不会拦他。这种事故真实发生过,而且不止一次。如果账号本身只有 3 级权限,日常巡检足够,但执行reset这类高危命令时系统会要求提权,没有 Super 密码的人就只能停下来,找有权限的人处理。这其实是在流程层面加了一道“人工确认”,而不只是技术限制。

你可以把 Super Password 理解成设备上的sudo。账号密码对应“你能登录这台设备”,Super 密码对应“你能在这台设备上做哪些级别的操作”。Super 密码配得好的话,你的设备账号管理可以做成:普通账号分散发给一线人员,Super 密码只掌握在二线核心运维手里。

3.2 配置 Super 密码与等级

在系统视图下执行:

[SW] super password level 15 cipher 替换成你的Super密码 [SW] quit

这里要注意,level 15是我们要提权到的目标等级。如果你不指定 level,有些版本会使用默认等级(一般是 3),造成了你想提权到 15 结果只提到 3 的乌龙。所以我的建议是每次配置都显式带level参数,包括日常使用super 15命令时也一样。

配置完之后,用 SSH 登录设备,用这个账号验证提权过程:

<SW> super 15 Password: <SW>

输入正确的密码后,当前会话权限就提升到 15 级了。注意提示符可能没有立刻变化,你可以执行display current-configuration这类只有高权限才能完整显示的命令来确认确实提权成功。

在配置过程中还可以考虑给不同等级分别设置密码,比如level 3一个密码,level 15一个密码。但现实中我建议只针对最高等级配一个 Super 密码就够了,本身日常登录已经给了 3 级权限,再给 3 级设一个密码意义不大。

3.3 Super 的常见坑

第一个坑是华为的cipher密文不能直接复制到另一台设备上用。华为设备的 cipher 密文和设备的某种随机因子有关,你在测试环境生成的加密串粘到生产设备上,很可能出现“密码看起来配置了,但怎么输都不对”的情况。如果要做设备批量部署,每台设备的密码必须独立配置或者通过脚本在设备侧重新加密生成,不能搞一把通用密文到处贴。

第二个坑是“Super 密码”和“登录密码”不能设成一样。如果一样,那提权这层门禁就形同虚设。至少要让这两组密码满足不同的复杂度策略,并且定期更换。

第三个坑是忘记了 Super 密码怎么办。设备在线状态下没有找回密码的命令,只能通过 console 口登录设备,进入系统视图后重新执行super password level 15 cipher 新密码。如果 console 密码也忘了,那就只能走恢复流程了。所以,Console 密码的管理和 Super 密码的管理同样重要,别一台设备三把锁全丢了。

第四个坑是当前账号权限已经达到或超过目标等级。比如你直接用了 level 15 的账号登录,再执行super 15就没什么意义,甚至有些版本会直接提示没有更高的级别可以提升。这种时候不要纠结为什么提权没反应,先查账号本身是什么级别。

4. 用 ACL 把 SSH 访问限制在指定 IP

4.1 两种 ACL 限制思路与选型

SSH 服务配置好之后,第二步是限制访问源。限制 SSH 访问来源常用两种思路。

第一种是在 VTY 通道下配置 ACL。因为所有远程登录最终都会进入 VTY 会话,结合protocol inbound ssh,这条链路上做限制能同时管住 SSH 和其他登录协议,属于通用收口方案。第二种是通过 SSH 服务的全局 ACL 限制,华为设备上有ssh server acl命令,可以直接只允许 ACL 里定义的源 IP 发起 SSH 握手。两种方式选哪个?

我的建议是优先用 VTY 下的 ACL。原因有两个:一是兼容性最好,老版本新版本基本都认这个写法,而ssh server acl在某些型号的旧版本上不一定支持;二是 VTY 是管理入口的总闸,在这里控住源地址,那么以后如果这个设备开了别的远程登录方式,同样会被 ACL 管住。如果你之后在设备上接了堡垒机,要求只允许堡垒机 IP 访问,直接在 VTY 上配一条 ACL 就完事了。

匹配源 IP,用基本 ACL 就够了。华为的基本 ACL 编号范围是 2000~2999,只能匹配源地址;高级 ACL 编号 3000~3999,功能多但配置繁琐。限制 SSH 来源这种场景,源地址就是唯一条件,没必要上高级 ACL。

4.2 ACL 规则的编写与匹配逻辑

假设我们要放行两台运维终端 IP,可以这样配:

[SW] acl number 2000 [SW-acl-basic-2000] rule 5 permit source 192.168.10.10 0 [SW-acl-basic-2000] rule 10 permit source 192.168.10.11 0 [SW-acl-basic-2000] quit

这里特别关键的一个点,是source 192.168.10.10 0最后的0。在华为 ACL 里,这里的0是通配符,不是掩码。它表示精确匹配整个 IP,也就是只允许这一台主机。如果你写成了rule 5 permit source 192.168.10.0 0.0.0.255,那才是放行整个 192.168.10.0/24 网段。很多新手在这里把掩码和通配符搞混,写完规则之后发现网段不对,连接失败,还找不到原因。

华为基础 ACL 的匹配逻辑是:报文按 rule 编号从小到大逐条匹配,一旦命中,立刻执行该规则的动作并停止继续匹配。如果一个报文把 ACL 里所有规则都过了一遍后没有命中,就会被默认丢弃。所以这个场景下 ACL 天然就是白名单模型——ACL 里只有两条 permit,其他所有 IP 访问都会被系统默认拒绝。

还有一点要注意规则编号之间的间隔。华为默认的 rule 编号是5一个步长递增,这样设计是为了以后方便往中间插入新规则。如果你一开始用rule 5、rule 6,没有间隔,以后想插入一个新 IP 到这两条之间,就得先把现有规则删掉重来。我习惯每条规则间隔 5,比如5、10、15。

4.3 绑定 VTY 并做连通性验证

ACL 建好之后,绑定到 VTY 上:

[SW] user-interface vty 0 4 [SW-ui-vty0-4] acl 2000 inbound [SW-ui-vty0-4] quit

命令里的inbound方向很关键。对 VTY 来说,inbound是指从远端客户端发起的进入连接,“源 IP”就是客户端的 IP。如果你不写inbound而写成outbound,那就是对设备发出的响应流量做过滤,方向就反了,放行目标也不会是你想要的效果。

绑定完成之后,一定要做双向验证:

  • 在 192.168.10.10 这台机器上执行 SSH 登录,应该能正常访问。
  • 换一个不在 ACL 里的 IP(例如 192.168.10.200)执行 SSH 登录,连接要么被丢包,要么握手直接中断。

如果第二条命中的客户端反应是“Connection closed by remote host”或者直接超时,不必惊慌,这正是 ACL 在干活。如果放行范围内的 IP 也连不上,赶紧检查是不是 ACL 的规则顺序、通配符写错了,或者ssh server enable没生效。验证通过后,可以用display acl 2000查看规则命中次数,如果能看到匹配计数在增长,说明 ACL 确实在正常匹配。

这里额外提醒一句:如果你有多条 VTY 线路,切记不要一次性把 VTY 0 到 4 全部绑死,然后再登录测试。更稳妥的做法是先绑定部分 VTY,或者最好在 console 在线的情况下操作。因为一旦 ACL 规则配置有误,5 条 VTY 全被堵死,你连后悔重连的机会都没有。

5. 常见故障排查与自救清单

5.1 SSH 连不上时先从哪几个方向查

运维排障最忌乱找方向,先整理一个速查表:

现象可能原因处理思路
SSH 连接超时管理路由不通,SSH 服务未开启ping 管理地址,确认ssh server enable开启
连接被拒,提示端口不通VTY 未绑定 SSH 协议检查protocol inbound ssh
密码认证失败账号 service-type 未包含 ssh在 AAA 下补local-user xxx service-type ssh
连接后立刻断开ACL 默认丢弃检查 VTY 下 ACL 规则和本机源地址
RSA 指纹变化提示设备密钥被重新生成更新客户端 known_hosts 后重连
提示不支持密钥交换算法客户端和服务器算法协商失败按本文生成 RSA 2048,或调整客户端算法选项

排障时我习惯用“从内往外”的顺序:先确认 SSH 服务和端口真的在监听,可以用display tcp status查看 22 端口状态;再确认网络路径通不通;最后才怀疑账号密码和 ACL。如果一上来就改 ACL,很容易把原本没问题的链路改坏。

5.2 提权失败与账号认证类问题

Super 提权失败最常见的两种情况:一是super password level 15只配置了默认等级,而你在设备上执行super 15,目标等级和配置不匹配;二是密码本身输错了。排查时先display current-configuration | include super看现有配置,然后确认命令里的等级号。

账号认证类的坑也集中在这几个地方:service-type ssh漏配会导致账号能通过 Console 登录但 SSH 登录失败;密码策略导致账号被锁,华为设备多次认证失败后账号会被锁定,需要管理员在 console 下执行unlock-local-user或者等待超时;另外还要检查账号的权限级别是否被其它来源覆盖。最典型的案例是,网络上有人配了local-user admin privilege level 15,后来又用了别的命令调整权限,配置之间互相覆盖,结果怎么都提不了权。排查这类问题要多看display local-user的输出,别只盯着单个命令行。

5.3 ACL 误配导致失联的急救流程

这里必须强调:ACL 一旦配错,远程管理通道可能瞬间全断。最常见的是把 ACL 写成只放行某一个网段,但当前网管机的 IP 不在里面,或者 ACL 里规则顺序写错,最后一查发现连运维终端自己都被挡在外面。

急救流程按顺序来:

  1. 确认 console 是否在线。如果在,直接通过 console 进入设备。
  2. 在 VTY 视图下解除 ACL 绑定:
[SW] user-interface vty 0 4 [SW-ui-vty0-4] undo acl 2000 inbound [SW-ui-vty0-4] quit
  1. 如果设备已经因为某些安全策略把 console 也限制了,那就只能通过重启设备进入恢复流程,这种方式影响面大,一般只在最后使用。

所以在配置 ACL 时我养成了几个习惯:一是写 ACL 之前在本地记事本里先写好回滚命令;二是配置完 ACL 后立即从当前 IP 发起一次 SSH 测试,不等到全部配完再验证;三是绝不把 console 口的认证方式和远程通道混在一起配置,保证设备在任何情况下都保留一条能从现场进去的路。

6. 现场操作中的几个习惯(经验向)

设备配置这事,说到底是“熟练度 + 好习惯”。我见过的老工程师,配置华为交换机 SSH 加固时,基本都会有这几个动作。

第一个是准备一份“命令脚本注释”。即使你已经滚瓜烂熟,配置顺序也别乱:先生成密钥,再开服务,再建账号,再配 super,再配 ACL,最后绑 VTY。每一步配置完都执行一下对应的 display 命令确认。真在现场急起来,脑子是会空白的,照着脚本走能少犯错。

第二个是配置过程中密切关注当前会话。如果你正在通过 SSH 远程配置设备,每敲一条影响远程访问的命令前,都要问自己一句:敲完这条,我还能不能连回来?改动 ACL 或 VTY 之前,确保当前使用的管理 IP 在放行范围里,并且 console 线在手上。

第三个是收尾时的全面确认。最后最好执行一遍display current-configuration | include ssh、display ssh server status、display acl 2000和display current-configuration configuration user-interface,把 SSH 服务、账号权限、ACL 规则、VTY 绑定四块全部复核一遍。发现问题当场修,不要留到下次维护窗口。

第四个建议是配合日志审计。把设备的登录日志、操作日志发送到统一的日志服务器,命令包括配置信息中心、指定日志主机等。这样谁在什么时间从哪个 IP 登录、执行过什么操作,都有据可查。Super 提权行为也会有日志记录,虽然默认日志可能只记录部分操作,但配合堡垒机使用基本够用了。

我个人在实际使用中还有一个偏向:尽量把登录账号权限控制在比日常需要多一点点就好,不要给满。比如巡检脚本只需要 display 系列命令,就用低权限账号去跑,反而能避免很多误操作。至于 Super 密码,只配一个 15 级的就够了,所有提权行为都指向同一个密码,方便管理。设备多了之后,这套“账号 + Super 提权 + ACL 锁源”的组合,比单一高权限账号堆砌要稳得多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 8:34:45

Python股票量化分析实战:数据层与分析层分离的模块化搭建

简介&#xff1a;这是一套基于Qt框架的股票行情分析程序源码&#xff0c;面向希望学习Qt界面开发与股票数据可视化的开发者。项目完整实现了文章所展示的股票查询与图表交互效果&#xff0c;包含行情列表、分时走势、K线图、五日图及资金视图等功能模块。图表部分采用QChart绘制…

作者头像 李华
网站建设 2026/10/13 8:34:39

AI知识库落地实战:从文档切分到检索增强生成的做饭哲学

1. 为什么说AI加知识库这件事&#xff0c;跟做饭是一回事 我接触AI知识库这个方向差不多一年出头&#xff0c;中间踩过的坑、交过的学费&#xff0c;折算成时间成本大概够我学完一整套烹饪课程。最开始我以为这是个纯技术活——把文档丢进去、建个索引、接上模型&#xff0c;完…

作者头像 李华
网站建设 2026/10/13 8:34:38

代理型工具实战:从任务拆解到工具调用的核心机制与避坑指南

1. 从“帮我查一下”到“帮我搞定”&#xff1a;代理型工具到底在解决什么问题 大多数人第一次听到“代理型工具”这个词&#xff0c;脑子里浮现的可能是浏览器里那个设置网络代理的选项&#xff0c;或者是某个中间转发服务。但这两年行业里反复提到的“代理型工具”&#xff0…

作者头像 李华
网站建设 2026/10/13 8:34:26

CUDA Kernel Agent自动调优:闭环反馈与性能优化实践

1. 从"手写Kernel"到"Agent自动调优"&#xff1a;这个方向为什么突然火了如果你在GPU高性能计算这个圈子里待过几年&#xff0c;会发现一个很有意思的转折点。大概在2023年之前&#xff0c;聊到CUDA Kernel优化&#xff0c;大家默认的路径是&#xff1a;人…

作者头像 李华
网站建设 2026/10/13 8:34:21

Linux性能问题排查五层漏斗实战指南

1. 这不是教科书里的“性能优化”&#xff0c;而是我每天在终端里敲出来的排查流水线“排查Linux性能问题一般步骤”——这标题看着平平无奇&#xff0c;像极了运维手册里被翻烂的一页。但如果你真在凌晨三点盯着top输出发呆&#xff0c;CPU飙到98%却找不到元凶&#xff1b;或者…

作者头像 李华
网站建设 2026/10/13 8:32:56

高速光耦5962-9085401HXA特性与应用解析

1. 光耦合器基础与5962-9085401HXA特性解析在工业自动化和通信系统中&#xff0c;信号隔离是确保系统可靠性的关键技术。5962-9085401HXA作为一款9MHz带宽的光耦合器&#xff0c;其核心价值在于实现了高速数字信号的电气隔离传输。这类器件通常由发光二极管(LED)和光电探测器组…

作者头像 李华