这是"H3C交换机中小企业运维实战"专栏的第 13 篇。前面的配置已经让交换机可以通过 SSH 管理,这一步继续收紧管理入口:关闭 Telnet、HTTP 和 HTTPS,只保留受控的 SSH 与 Console。
本文以 H3C S5570S 和 Comware V7 为例。示例地址、账号和端口都要换成现场实际值。
一、为什么要先确认回退入口
Telnet 和 HTTP 使用明文传输,不适合继续作为日常管理入口。HTTPS 虽然经过加密,但 Web 管理仍是额外的入口,需要单独维护证书、账号和访问来源。
关闭这些服务前,我会先确认两件事:
- Console 可以正常登录;
- 从允许访问的运维电脑新建 IPv4、IPv6 SSH 会话,均能正常登录。
如果当前就是通过 Telnet 或网页登录,不能直接关闭服务,否则可能立即失去管理入口。
本次示例环境如下:
| 项目 | 示例值 |
|---|---|
| 交换机 | HQ-Access-01 |
| 设备系列 | H3C S5570S |
| 软件版本 | Comware V7 |
| 管理 IPv4 | 192.168.100.2 |
| 管理 IPv6 | 2001:db8:100::2 |
| SSH 端口 | 22222 |
| 保留的远程管理方式 | SSH |
| 本地回退方式 | Console |
二、关闭前先检查
先在交换机上查看当前服务和 VTY 配置:
text
# 查看设备型号和 Comware 版本。
<HQ-Access-01> display version
# 确认 SSH 已开启,并记录实际监听端口。
<HQ-Access-01> display ssh server status
# 查看 Telnet 服务器相关配置。
# 出现 telnet server enable 表示服务已开启;
# 非默认端口会显示 telnet server port 或 telnet server ipv6 port。
<HQ-Access-01> display current-configuration | include telnet server
# 查看 HTTP、HTTPS 状态、端口和关联 ACL。
<HQ-Access-01> display ip http
<HQ-Access-01> display ip https
# 查看 VTY 当前允许的登录协议和认证方式。
<HQ-Access-01> display line vty 0
# 确认是否还有其他管理员在线。
<HQ-Access-01> display users
<HQ-Access-01> display web users
不能只看设备状态,还要从运维电脑重新测试 SSH:
bash
# 使用公司规划的非默认端口测试 IPv4 SSH。
ssh -p 22222 netops_hq01@192.168.100.2
# 使用同一端口测试 IPv6 SSH。
ssh -p 22222 netops_hq01@2001:db8:100::2
两个新会话都能登录并执行查看命令后,再开始关闭其他入口。
三、关闭 Telnet
进入系统视图后关闭 Telnet 服务器,同时限制 VTY 只接受 SSH:
text
<HQ-Access-01> system-view
# 关闭 Telnet 服务器,阻止新的 Telnet 连接。
[HQ-Access-01] undo telnet server enable
# VTY 只允许 SSH,避免以后误开 Telnet 后又能直接登录。
[HQ-Access-01] line vty 0 63
[HQ-Access-01-line-vty0-63] protocol inbound ssh
[HQ-Access-01-line-vty0-63] quit
这两项配置作用不同:
undo telnet server enable负责关闭 Telnet 服务器;protocol inbound ssh负责限制 VTY 接受的协议。
两项同时保留,防护更完整。
四、关闭 HTTP 和 HTTPS
S5570S 开启 HTTP 时会自动开启 HTTPS,而且 HTTP 开启期间不能关闭 HTTPS,所以关闭顺序要先 HTTP、后 HTTPS:
text
# 先关闭 HTTP。
[HQ-Access-01] undo ip http enable
# 再关闭 HTTPS,彻底关闭交换机的 Web 管理入口。
[HQ-Access-01] undo ip https enable
[HQ-Access-01] return
这里关闭的是交换机自身的 Web 管理,不会阻止员工电脑访问互联网中的 HTTP、HTTPS 网站,也不会关闭 SSH、SNMP、NTP 或 Syslog。
五、从设备端复查
text
# 不应出现 telnet server enable。
<HQ-Access-01> display current-configuration | include telnet server
# HTTP 和 HTTPS 的 Operation status 都应为 Disabled。
<HQ-Access-01> display ip http
<HQ-Access-01> display ip https
# VTY 应只允许 SSH。
<HQ-Access-01> display line vty 0
# SSH 服务和现有 SSH 会话应保持正常。
<HQ-Access-01> display ssh server status
<HQ-Access-01> display ssh server session
如果第一条没有匹配内容,表示设备没有显式开启 Telnet。最后仍要通过实际端口测试确认。
六、从运维电脑做双栈端口测试
Windows PowerShell 不需要安装 Telnet 客户端,直接使用 Test-NetConnection:
powershell
# 按关闭前记录的实际端口测试。
# Telnet、HTTP 和 HTTPS 都应连接失败。
Test-NetConnection 192.168.100.2 -Port 23
Test-NetConnection 192.168.100.2 -Port 18080
Test-NetConnection 192.168.100.2 -Port 18443
# IPv6 管理地址也要测试。
Test-NetConnection 2001:db8:100::2 -Port 23
Test-NetConnection 2001:db8:100::2 -Port 18080
Test-NetConnection 2001:db8:100::2 -Port 18443
# SSH 非默认端口应连接成功。
Test-NetConnection 192.168.100.2 -Port 22222
Test-NetConnection 2001:db8:100::2 -Port 22222
测试时要使用关闭前记录的真实端口。文章中的 18080、18443 只是示例,不能只测默认的 80 和 443。
再分别新建 IPv4、IPv6 SSH 会话,确认远程管理正常。业务、网管和日志也没有异常后再保存:
text
# 所有验证通过后保存配置。
<HQ-Access-01> save force
七、现场容易忽略的问题
1. 当前使用 Telnet,能不能直接关闭
不能先关再试。应先接好 Console,或者新建一个经过 ACL 允许的 SSH 会话,确认能正常管理后再关闭 Telnet。
2. HTTP 已关闭,为什么 HTTPS 还在监听
HTTP 和 HTTPS 是两个服务。关闭 HTTP 后还要执行 undo ip https enable,并用 display ip https 和端口测试复查。
3. 为什么关闭 Telnet 后还要限制 VTY
关闭 Telnet 服务器是第一层,VTY 只接受 SSH 是第二层。以后即使有人误开 Telnet,VTY 仍不会接受 Telnet 登录。
4. 公司确实需要网页管理怎么办
不要恢复明文 HTTP。应单独规划 HTTPS、非默认端口、可信证书、IPv4/IPv6 来源 ACL 和专用账号,并完成允许与拒绝测试。
八、小结
关闭 Telnet 和 Web 管理的重点不是多执行几条命令,而是先确认 Console 与新的 SSH 会话都可用。实际操作顺序是:
- 记录当前服务、端口和在线用户;
- 测试 IPv4、IPv6 SSH;
- 关闭 Telnet,并让 VTY 只接受 SSH;
- 先关闭 HTTP,再关闭 HTTPS;
- 从设备端和运维电脑两边验证;
- 确认 SSH、网管、日志和业务正常后再保存。
网站完整版还包括 Comware V5 配置差异、回退方法、完整配置汇总和官方参考资料: