ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

华为S5720交换机SSH与SFTP安全远程管理配置实战

华为S5720交换机SSH与SFTP安全远程管理配置实战

1. 项目缘起:为什么要在S5720上折腾远程管理?

干网络运维的兄弟都知道,每天在机房和设备间里穿梭,对着那一排排闪烁的交换机指示灯敲命令,时间长了谁都受不了。尤其是当设备分布在不同的楼层甚至不同的园区时,为了改个VLAN或者看个日志就得跑断腿,效率低不说,还容易出错。我手头就有一批华为S5720系列交换机,作为经典的盒式接入交换机,它们稳定可靠,但出厂默认只开了Console口和Telnet。Telnet这玩意儿,数据明文传输,在现在的网络环境里就跟“裸奔”差不多,稍微有点安全意识都不敢用。

所以,给这些S5720配置上SSH(这里特指Stelnet,即Secure Telnet)和SFTP(Secure File Transfer Protocol),就成了一个必须完成的“基础设施升级”。这不仅仅是换个登录方式那么简单,它意味着:

  • 安全性飞跃:所有管理流量(命令、配置、文件)全程加密,防止中间人窃听或篡改。
  • 运维效率提升:在任何能连通网络的地方,都能安全地登录设备进行配置和排错。
  • 自动化基础:像Ansible这类自动化工具,绝大多数模块都依赖SSH协议与网络设备通信。没有SSH,自动化运维就无从谈起。
  • 合规性要求:越来越多的等保测评和行业规范,明确要求禁止使用Telnet等非加密管理协议。

网上关于华为交换机配置的文章很多,但要么过于零散,只讲命令不讲逻辑;要么版本老旧,和新版VRP系统对不上。这次,我就结合最近在S5720-56C-HI交换机(VRP版本V200R019C10SPC500)上的实战,把从零开始配置Stelnet和SFTP的完整过程、背后的原理、以及我踩过的那些坑,一次性给你讲透。无论你是刚接触华为设备的新手,还是想梳理一遍流程的老手,这篇都能让你直接“抄作业”。

2. 前期准备与核心概念扫盲

在动手敲命令之前,我们得先把“地基”打好,理解几个关键概念,并准备好必要的环境。这能让你在后续配置时,不仅知道怎么做,更明白为什么这么做。

2.1 Stelnet vs. SFTP:它们到底是什么关系?

很多人容易把这两个搞混,其实它们是一套“组合拳”,底层都基于SSH协议。

  • Stelnet (SSH): 你可以把它理解为“安全的命令通道”。它的核心功能是为你提供一个加密的CLI(命令行界面)登录会话。你通过Putty、MobaXterm、或者系统自带的ssh命令连接后,输入的命令和设备的返回结果,都是在加密隧道里传输的。它替代了Telnet。
  • SFTP: 你可以把它理解为“安全的文件通道”。它是SSH协议的一个子系统(Subsystem),专门用于在客户端和服务器(在这里就是交换机)之间安全地传输文件。你可以上传新的系统软件、下载日志文件、备份配置文件,全程加密。它替代了不安全的FTP。

关键点: 在华为交换机上,SFTP服务是依赖于SSH服务(Stelnet)的。也就是说,你必须先成功配置并启动了SSH服务器功能,才能进一步开启和使用SFTP。它们共用同一套用户认证和密钥体系。

2.2 必不可少的“入场券”:本地用户与用户权限

这是整个配置中最容易出错的一环。华为设备管理用户的权限体系比较细致,搞不清楚就会导致“登录成功,但啥也干不了”的尴尬局面。

  • 用户级别 (User Level): 华为VRP系统有0-15共16个级别,数字越大,权限越高。

    • 0级(参观级): 只能执行ping,tracert等网络诊断命令。
    • 1级(监控级): 能执行display等查看命令,但不能修改配置。
    • 3级(管理级)我们远程管理最常用的级别,可以执行系统运行、维护等命令,包括大部分配置命令,但涉及系统核心、高危操作(如格式化存储)仍需更高权限。
    • 15级(管理级): 最高权限,相当于超级管理员(superuser)。
  • 服务类型 (Service Type): 即用户通过什么方式登录。对于我们的远程管理,必须包括sshsftp。如果你只配置了telnet,那用户就无法通过SSH登录。

  • 实操心得: 很多教程只让配置ssh服务类型,结果用户发现能用SSH登录,却无法使用SFTP传输文件,就是因为漏了sftp一个用于远程管理的用户,其服务类型至少应包含sshsftp

2.3 客户端工具选择

你不需要特别的软件,但一个好用的工具能事半功倍。

  • SSH/Stelnet客户端: Windows下推荐MobaXterm(功能强大,集成SFTP图形化界面)或PuTTY(轻量经典)。macOS/Linux直接用终端ssh命令即可。
  • SFTP客户端: 如果不用MobaXterm这种集成的,可以用WinSCP(Windows)或sftp命令(命令行)。

3. 实战配置:一步步构建安全的远程管理

假设我们交换机的管理IP是192.168.1.1,我们要创建一个用户名为admin的远程管理账户。以下所有命令均在系统视图<HUAWEI>下执行。

3.1 第一步:基础网络与设备信息配置

远程管理的前提是网络可达。我们首先确保交换机有一个可路由的管理IP,并设置主机名以便识别。

sysname S5720-Core-Switch // 给交换机起个名字 interface Vlanif 1 // 通常用VLANIF 1作为管理接口 ip address 192.168.1.1 24 // 配置管理IP和掩码

3.2 第二步:生成本地密钥对——安全连接的基石

SSH之所以安全,核心在于非对称加密密钥对。设备端需要生成一对密钥(公钥和私钥),客户端通过公钥来验证服务器身份并协商加密会话。

rsa local-key-pair create // 生成RSA密钥对

系统会提示你输入密钥模数长度,默认是2048位,直接回车即可。生成过程可能需要几十秒,请耐心等待。

为什么是RSA?这是目前最广泛兼容的算法。虽然从安全演进角度看,ECC(椭圆曲线)算法更优,但考虑到客户端工具(如一些老版本Putty)的兼容性,RSA仍是稳妥的选择。华为新版本也支持dsaecc,但若无特殊需求,rsa足矣。

3.3 第三步:创建SSH用户并绑定服务类型

现在我们来创建那个关键的远程管理用户。

aaa // 进入AAA认证视图 local-user admin password cipher Huawei@123 // 创建用户admin,密码加密存储为Huawei@123 local-user admin privilege level 3 // 设置用户权限级别为3(管理级) local-user admin service-type ssh sftp // !!!核心:指定该用户可用于ssh和sftp服务 local-user admin state active // 激活用户

避坑指南

  1. 密码复杂度: 生产环境务必使用高强度密码,包含大小写字母、数字和特殊字符。示例密码Huawei@123仅为演示。
  2. 服务类型遗漏: 再次强调,service-type ssh sftp必须同时指定,缺一不可。
  3. 权限级别: 对于日常运维,level 3足够。如果后续需要升级系统软件(涉及存储操作),可能需要临时提升至level 15,或使用super密码切换。

3.4 第四步:启用SSH服务器功能并配置参数

生成密钥和创建用户后,就可以启动SSH服务了。

stelnet server enable // 全局开启Stelnet服务器功能 sftp server enable // 全局开启SFTP服务器功能 ssh user admin authentication-type password // 设置用户admin的认证方式为密码认证 ssh user admin service-type sftp // 将用户admin绑定到SFTP服务 user-interface vty 0 4 // 进入VTY(虚拟终端)接口,这是远程登录的入口 authentication-mode aaa // 认证模式设置为AAA,即使用我们刚才创建的本地用户 protocol inbound ssh // !!!关键:规定VTY接口只允许SSH协议接入,彻底禁用Telnet

配置解析

  • ssh user ... service-type sftp: 这条命令显式地将用户admin授权给SFTP服务使用。即使你在local-user里配了sftp,这里也最好加上,确保授权明确。
  • protocol inbound ssh: 这是将Telnet踢出局的决定性命令。配置后,尝试Telnet连接将被拒绝。如果你想保留Telnet(不推荐),可以配置为protocol inbound all

3.5 第五步:验证配置与首次连接

配置完成后,不要急着关掉Console口,先做验证。

display ssh server status // 查看SSH服务器状态,确认服务已开启 display ssh user-information // 查看SSH用户信息,确认admin用户已绑定 display local-user // 查看本地用户,确认admin用户状态为active且服务类型正确

现在,从你的办公电脑打开MobaXterm或PuTTY。

  • 主机名/IP192.168.1.1
  • 协议SSH
  • 端口22(默认)
  • 点击连接,首次连接时会弹出服务器的RSA密钥指纹确认窗口(这就是之前生成密钥对的作用),点击“接受”或“是”。
  • 输入用户名admin和密码Huawei@123

如果成功登录到<S5720-Core-Switch>命令行,那么恭喜你,Stelnet配置成功!

4. SFTP功能测试与高级应用

SSH通了,SFTP自然水到渠成,但我们需要测试一下文件传输是否真的可用。

4.1 使用MobaXterm进行SFTP传输测试

MobaXterm的优势在于,SSH登录成功后,左侧会自动开启一个SFTP文件浏览窗口。

  1. 用SSH登录交换机后,左侧边栏会显示交换机的文件系统目录,通常是flash:/
  2. 尝试从本地电脑拖拽一个小的文本文件(如test.txt)到flash:/目录下。
  3. 在交换机的CLI里,执行dir flash:/,看看文件是否已存在。
  4. 尝试从flash:/目录下载vrpcfg.zip(配置文件备份)到本地。

如果以上步骤都成功,说明SFTP功能完全正常。

4.2 使用命令行进行SFTP测试

对于习惯命令行的用户,或者需要在脚本中集成时,命令行SFTP非常有用。

在你的电脑(客户端)上打开命令行(Linux/macOS的终端,或Windows的PowerShell/安装了OpenSSH的CMD):

sftp admin@192.168.1.1

输入密码后,会进入sftp>提示符。

sftp> ls // 列出交换机上的文件 sftp> put /local/path/to/file.txt // 上传本地文件到交换机当前目录 sftp> get vrpcfg.zip // 从交换机下载文件到本地当前目录 sftp> bye // 退出

4.3 常见SFTP故障排查

即使SSH能登录,SFTP也可能出问题。以下是几个排查思路:

  1. 连接被拒绝或超时

    • 检查交换机上sftp server enable是否已配置。
    • 检查防火墙(包括交换机本身的ACL、以及网络路径上的防火墙)是否放行了TCP 22端口。
  2. 认证失败

    • 在交换机上执行display ssh user-information,确认对应用户的Service-type包含SFTP
    • 执行display local-user,确认该用户的Service-type包含sftp,并且状态是Active
  3. 权限不足,无法上传/删除文件

    • 这是最隐蔽的坑。SFTP用户的文件操作权限,受其用户级别文件系统权限共同影响。一个level 3的用户,可能无法覆盖系统关键文件。
    • 解决方案:尝试在交换机CLI(通过SSH登录后)先进入你想要操作的目录,比如cd flash:/,然后再进行SFTP操作。有时这能解决路径权限问题。对于重要文件操作,考虑使用scp命令(如果设备支持),或者临时将用户级别提升至15级。
  4. SFTP传输速度慢

    • 这不是配置问题,而是SSH协议加密解密的开销和TCP窗口大小的影响。对于大文件,可以在客户端工具里启用压缩(如sftp -C),或者考虑在内网使用更快的加密算法(在SSH客户端配置中调整)。

5. 安全加固与生产环境建议

基础功能跑通只是第一步,要让这套机制真正用于生产,还需要加固。

5.1 修改默认SSH端口

将SSH服务端口从默认的22改为一个非知名端口,能减少大量自动化扫描和攻击。

ssh server port 1022 // 将SSH服务器端口改为1022

注意: 修改后,客户端连接时必须显式指定端口,如ssh admin@192.168.1.1 -p 1022

5.2 配置ACL限制管理源IP

只允许运维堡垒机或特定管理网段的IP地址访问交换机的SSH服务。

acl 2000 // 创建一个基本ACL rule 5 permit source 10.10.10.0 0.0.0.255 // 允许运维网段10.10.10.0/24 rule 10 deny source any // 拒绝其他所有 user-interface vty 0 4 acl 2000 inbound // 在VTY接口上应用ACL

这样,即使攻击者拿到了密码,如果他的IP不在白名单内,也无法建立连接。

5.3 启用SSH协议算法强制定制

禁用不安全的旧协议版本和弱加密算法。

ssh server compatible-ssh1x disable // 禁用老旧的SSH1.x协议 ssh server key-exchange dh_group14_sha1 // 指定密钥交换算法 ssh server cipher aes128_ctr aes256_ctr // 指定加密算法 ssh server hmac sha2_256 sha2_512 // 指定完整性校验算法

这些算法名称可能因VRP版本略有差异,请使用ssh server ?查看当前版本支持的算法列表,并选择强度高的。

5.4 配置会话超时与日志记录

user-interface vty 0 4 idle-timeout 15 0 // 设置空闲超时时间为15分钟,0秒,超时自动断开 shell // 确保用户登录后进入命令行界面 info-center enable // 开启信息中心(日志) info-center loghost source Vlanif1 // 指定发送日志的源接口 info-center loghost 10.10.10.100 // 将日志发送到日志服务器(10.10.10.100)

将重要的认证、授权日志(如用户登录成功/失败)发送到中央日志服务器(如Syslog服务器),便于审计和溯源。

6. 配置备份与自动化管理雏形

当SSH和SFTP就绪后,你可以轻松实现配置的自动备份。

6.1 手工命令备份

通过SFTP,你可以用一条命令将配置备份到远程服务器。假设你有一台Linux备份服务器(IP: 10.10.10.100),上面开启了SSH服务。 在交换机上,你可以这样操作(需要交换机支持scp命令,或使用sftp交互模式): 更通用的方法是,在备份服务器上写一个脚本,通过sshpass(非交互式密码)或密钥认证,主动从交换机拉取配置。

# 在备份服务器上的脚本示例 (使用ssh密钥认证更安全) #!/bin/bash SWITCH_IP="192.168.1.1" BACKUP_USER="admin" BACKUP_DIR="/backup/switches/" CONFIG_FILE="vrpcfg-$(date +%Y%m%d).zip" # 使用SCP命令下载配置 scp -P 1022 $BACKUP_USER@$SWITCH_IP:flash:/vrpcfg.zip $BACKUP_DIR/$CONFIG_FILE

6.2 迈向自动化:Ansible基础

有了SSH,你就可以使用Ansible来批量管理华为交换机了。虽然Ansible原生对华为设备的支持模块(如ios_command对应思科)不如网络巨头那么丰富,但我们可以使用ansible.netcommon集合中的cli_command模块,这是一个通用的通过CLI管理网络设备的模块。

一个简单的Ansible Playbook示例 (backup_switches.yml):

--- - name: Backup Huawei S5720 Switches Configuration hosts: switches gather_facts: no collections: - ansible.netcommon tasks: - name: Execute display current-configuration command ansible.netcommon.cli_command: command: display current-configuration register: config_output - name: Save configuration to local file copy: content: "{{ config_output.stdout[0] }}" dest: "./backups/{{ inventory_hostname }}-{{ ansible_date_time.date }}.cfg"

你需要一个hosts清单文件定义你的交换机,并配置正确的SSH连接参数(用户名、密码、端口等)。这为成百上千台交换机的统一配置、备份、检查打开了大门。

走到这一步,你的华为S5720交换机已经拥有了一套坚固、安全且具备扩展性的远程管理能力。从最初的明文Telnet到现在的加密SSH/SFTP,不仅是技术的升级,更是运维理念的进化。记住,安全配置不是一劳永逸的,定期审查用户、更新密钥、关注日志,才能让这套系统在长期运行中持续可靠。

返回列表