文档目录

适用场景

  • 产品:ZCF
  • 组件:Cloud
  • 版本:4.8.x、4.6.x
  • 部署形态:双管理节点
  • 触发条件:需要完成安全漏扫整改,包括封禁高危端口与升级 OpenSSH。

问题现象

  • 需要封禁以下端口:
  • 5900
  • 5901
  • 5902
  • 3306
  • 7070
  • 9100
  • 9103
  • 9090
  • 6379
  • 同时需要升级 OpenSSH 组件。
  • 端口限制若操作失误,可能影响内部业务通信。

判断方法

  1. 变更前先确认客户业务侧外部不依赖上述端口。
  2. 封禁后检查 iptables -nvL -t mangle 与 ipset list。
  3. OpenSSH 升级后检查 rpm -qa | grep openssh。

原因说明

本次整改分为两个动作:一是利用安全加固脚本封禁指定高危端口,二是升级 OpenSSH RPM。由于端口封禁直接影响网络访问面,因此在执行脚本前必须明确放通 IP 范围,并保留 iptables/ipset 级别的精确回退方法。

解决方案

  1. 执行前准备
  • 风险等级:低
  • 先关闭全局高可用,或将高可用策略改为保守模式。
  • 先确认客户业务侧外部不使用待封禁端口。
  • 先备份当前 ipset 配置。
  1. 端口封禁
  2. 备份当前 ipset 配置:
   ipset save > /etc/sysconfig/ipset
  • 预期结果:已有规则可回溯。
  1. 上传并解压安全加固脚本:
   tar zxvf safe_script_v4.6.tar.gz
  • 预期结果:脚本目录准备完成。
  1. 进入目录并执行:
   cd safe_script/
   bash safe.sh
  • 输入平台 admin 密码。
  • 预期结果:进入脚本交互界面。
  1. 根据提示选择:
  • 3:限制物理机端口
  • 1:配置规则
  • 输入封禁端口:
     5900,5901,5902,3306,7070,9100,9103,9090,6379
  • 放行 IP 直接回车,表示集群内所有 IP 放通。
  • 预期结果:目标端口限制规则写入成功。
  1. 全部封禁成功后输入 q 退出脚本。
  • 预期结果:脚本执行完成。
  1. 检查封禁情况:
   iptables -nvL -t mangle
   ipset list <ZS-ALLOW-IP-*>
  • 预期结果:相关端口 DROP 规则和放通 IP 集合均存在。
  1. 升级 OpenSSH
  2. 上传以下 RPM 并校验 sha256:
  • openssh-8.2.Xp1-16.p08.ky10.aarch64.rpm
  • openssh-server-8.2.Xp1-16.p08.ky10.aarch64.rpm
  • openssh-clients-8.2.Xp1-16.p08.ky10.aarch64.rpm
  • 预期结果:安装包完整可信。
  1. 执行升级:
   yum localinstall -y openssh-8.2p1-16.p08.ky10.aarch64.rpm openssh-clients-8.2p1-16.p08.ky10.aarch64.rpm openssh-server-8.2p1-16.p08.ky10.aarch64.rpm
  • 预期结果:OpenSSH 组件升级完成。
  1. 检查版本:
   rpm -qa | grep openssh
  • 预期结果:新版本 RPM 已安装。
  1. 最后开启平台高可用。
  • 预期结果:变更流程收口完成。

验证方法

  • 检查 iptables -nvL -t mangle 中目标端口限制已生效。
  • 检查 ipset list 中放通规则集合存在。
  • 检查 rpm -qa | grep openssh 显示升级后的包。
  • 检查平台业务和集群内通信无异常。

风险与回滚

  • 风险:若端口选择错误或放行范围错误,可能影响内部业务访问。
  • 风险:OpenSSH RPM 不匹配可能导致升级失败。
  • 风险等级:低。

回退方法

  1. 删除规则集中的单个 IP:
   ipset del <rule_set> <ip>
  1. 查找某个端口的 DROP 规则:
   iptables-save | grep ZS-SAFE-CONFIGURATION | grep "dport 9090" | grep "DROP"
  1. 删除对应规则:
   iptables -t mangle -D INPUT ... --dport 9090 -j DROP
  1. 删除规则集:
   ipset destroy <rule_set>
  • 注意:必须先删除 iptables 规则,再执行 ipset destroy。
端口封禁与OpenSSH升级 | 技术方案 · KB | ZStack 资源中心