H3C交换机关闭Telnet和HTTP服务实例
以 H3C S5570S 和 Comware V7 为例,在确认 Console 和 SSH 回退入口可用后,按安全基线关闭 Telnet、HTTP 和 HTTPS 管理服务。
本文以 H3C S5570S 系列和 Comware V7 为主要示例,只适用于本人拥有或已经明确授权管理的交换机。示例地址和 SSH 端口必须换成现场实际值。
一、现场场景
前面的配置已经让 HQ-Access-01 可以通过 SSH 管理,但检查旧配置时,我发现 Telnet 和 Web 管理服务仍然开着。Telnet 和 HTTP 使用明文传输,账号和操作内容容易被截获;HTTPS 虽然经过加密,但 Web 管理仍是一个额外的管理入口,需要同时管好证书、来源限制和账号权限。按照公司的安全基线,这些服务都要关闭,只保留受控的 SSH 和 Console。
这次处理的关键不是多执行几条关闭命令,而是先确认 SSH 和 Console 确实可用。如果当前就是通过 Telnet 或网页登录,直接关闭服务会立刻失去这个管理入口。
本次使用下面的示例:
| 项目 | 示例值 |
|---|---|
| 交换机 | HQ-Access-01 |
| 设备系列 | H3C S5570S |
| 软件版本 | Comware V7 |
| 管理 IPv4 | 192.168.100.2 |
| 管理 IPv6 | 2001:db8:100::2 |
| SSH 端口 | 22222 |
| 关闭前的 Telnet 端口 | 23 |
| 关闭前的 HTTP 端口 | 18080 |
| 关闭前的 HTTPS 端口 | 18443 |
| 保留的远程管理方式 | SSH |
| 本地回退方式 | Console |
二、配置目标
- 确认 Console 可以作为本地回退入口;
- 确认 SSH 的 IPv4 和 IPv6 登录都正常;
- 关闭 Telnet 服务,并让 VTY 只接受 SSH;
- 按安全基线关闭 HTTP 和 HTTPS 管理服务;
- 从运维电脑验证相关端口已经无法连接;
- 确认 SSH 和其他业务没有受到影响后保存配置。
三、配置前检查
1. 查看服务状态
先在设备上查看 SSH、Telnet 和 Web 管理服务:
# 查看型号和 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
# 查看当前在线用户,确认是否有人正在使用 Telnet 或 Web 管理。
<HQ-Access-01> display users
<HQ-Access-01> display web users
2. 新建一个 SSH 会话
不要只看 display ssh server status 就认为 SSH 一定可用。应从允许访问的运维电脑新建会话,分别测试 IPv4 和 IPv6:
# 使用公司规划的非默认端口测试 IPv4 SSH。
ssh -p 22222 netops_hq01@192.168.100.2
# 使用同一端口测试 IPv6 SSH。
ssh -p 22222 netops_hq01@2001:db8:100::2
新会话能正常登录并执行查看命令后,再开始关闭其他入口。现场还要接好 Console,不能把当前 SSH 窗口当成唯一的回退方式。
四、Comware V7 配置实例
代码块中以 # 开头的是文章注释,不需要输入交换机。
1. 关闭 Telnet
<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 接受的登录协议,两项作用不同,建议同时保留。
2. 关闭 HTTP 和 HTTPS
按照公司的安全基线,交换机不保留 Web 管理入口,因此 HTTP 和 HTTPS 一起关闭:
# 先关闭 HTTP。S5570S 开启 HTTP 时会同时开启 HTTPS,顺序不能反过来。
[HQ-Access-01] undo ip http enable
# 再关闭 HTTPS,避免设备仍然保留网页管理入口。
[HQ-Access-01] undo ip https enable
[HQ-Access-01] return
这里关闭的是交换机自身的 Web 管理,不会阻止普通电脑访问互联网中的 HTTP、HTTPS 网站,也不会关闭 SSH、SNMP、NTP 或 Syslog。
五、Comware V5 配置差异
本文参考的 H3C S5500 Comware V5 Release 2208 也支持关闭 Telnet、HTTP 和 HTTPS。该版本的 VTY 范围是 0 15,配置如下:
<HQ-Access-01> system-view
# 关闭 Telnet 服务,并让 VTY 只接受 SSH。
[HQ-Access-01] undo telnet server enable
[HQ-Access-01] user-interface vty 0 15
[HQ-Access-01-ui-vty0-15] protocol inbound ssh
[HQ-Access-01-ui-vty0-15] quit
# 按安全基线同时关闭 HTTP 和 HTTPS。
[HQ-Access-01] undo ip http enable
[HQ-Access-01] undo ip https enable
[HQ-Access-01] return
V5 Release 2208 可以使用 display ip http 和 display ip https 查看 Web 服务状态。Telnet 则结合当前配置和运维电脑的端口测试确认是否已经关闭。
六、验证方法
1. 在交换机上复查
# 不应出现 telnet server enable;如果没有匹配内容,表示未显式开启 Telnet。
<HQ-Access-01> display current-configuration | include telnet server
# HTTP 和 HTTPS 都应显示为 Disabled。
<HQ-Access-01> display ip http
<HQ-Access-01> display ip https
# VTY 应只允许 SSH。
<HQ-Access-01> display line vty 0
# SSH 服务、非默认端口和现有会话应保持正常。
<HQ-Access-01> display ssh server status
<HQ-Access-01> display ssh server session
2. 从运维电脑测试端口
Windows PowerShell 可以直接测试端口,不需要另外安装 Telnet 客户端:
# 按关闭前记录的实际端口测试,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 管理地址也要测试,不能只确认 IPv4。
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
再分别新建 IPv4 和 IPv6 SSH 会话,确认远程管理没有被误关。验证完成后保存配置:
# 确认关闭结果和 SSH 登录都正常后再保存。
<HQ-Access-01> save force
七、常见问题与处理
1. 当前通过 Telnet 登录,能不能直接关闭
不建议。先通过 Console 或新建的 SSH 会话登录,再关闭 Telnet。否则当前会话一旦断开,可能无法继续管理设备。
2. HTTP 已关闭,为什么 HTTPS 端口还开着
HTTP 和 HTTPS 是两个服务。关闭 HTTP 后还要执行 undo ip https enable,再用 display ip https 和关闭前记录的实际端口复查。
3. 关闭 HTTP 会不会影响员工上网
不会。undo ip http enable 关闭的是交换机自己的网页管理服务,不是封锁经过交换机转发的网页流量。
4. 已经关闭 Telnet,为什么还要限制 VTY
关闭服务器是第一层,VTY 只允许 SSH 是第二层。以后即使有人误开 Telnet 服务,VTY 仍不会接受 Telnet 登录。
5. 公司确实需要网页管理怎么办
不要保留明文 HTTP。应单独规划 HTTPS、非默认端口、可信证书、IPv4/IPv6 来源 ACL 和专用账号,并完成允许与拒绝测试。这属于另一套配置,不能为了方便直接恢复默认 Web 入口。
八、回退方法
如果关闭后发现仍有经过批准的旧系统依赖这些服务,应先通过 Console 或 SSH 登录,再根据变更前记录恢复原状态。
<HQ-Access-01> system-view
# 只有经过批准且确实需要时,才临时恢复 Telnet。
[HQ-Access-01] telnet server enable
[HQ-Access-01] line vty 0 63
[HQ-Access-01-line-vty0-63] protocol inbound all
[HQ-Access-01-line-vty0-63] quit
# 原来使用 HTTP 时执行这一条;S5570S 会同时开启 HTTPS。
[HQ-Access-01] ip http enable
# 原来只使用 HTTPS 时执行这一条,不要先开启 HTTP。
[HQ-Access-01] ip https enable
[HQ-Access-01] return
protocol inbound all 会重新允许 Telnet 和 SSH,只能用于恢复原配置的场景。回退后还要恢复原来的端口、ACL、证书和账号限制,不能让临时入口长期开放。
九、小结
Telnet 和 HTTP 使用明文传输,Web 管理也会增加额外的管理入口,因此要按安全基线关闭。操作前先确认 Console 与新的 SSH 会话都能使用,然后关闭 Telnet,让 VTY 只接受 SSH,再依次关闭 HTTP 和 HTTPS,最后从设备端和运维电脑两边验证。
关闭服务不是看配置命令有没有执行成功,而是要确认这些管理端口已经无法连接,同时 SSH、网管、日志和实际业务仍然正常。
十、完整配置汇总
下面汇总 Comware V7 的关闭配置。执行前要确认相关系统已经改用批准的管理方式,并且 SSH 与 Console 都可用。
<HQ-Access-01> system-view
# 关闭 Telnet,并让全部 VTY 只接受 SSH。
[HQ-Access-01] undo telnet server enable
[HQ-Access-01] line vty 0 63
[HQ-Access-01-line-vty0-63] protocol inbound ssh
[HQ-Access-01-line-vty0-63] quit
# 先关闭 HTTP,再关闭 HTTPS。
[HQ-Access-01] undo ip http enable
[HQ-Access-01] undo ip https enable
[HQ-Access-01] return
# 复查服务状态和 SSH 状态。
<HQ-Access-01> display current-configuration | include telnet server
<HQ-Access-01> display ip http
<HQ-Access-01> display ip https
<HQ-Access-01> display line vty 0
<HQ-Access-01> display ssh server status
# 确认远程管理和业务正常后保存配置。
<HQ-Access-01> save force