解决 vCenter Server 和 vCenter Cloud Gateway 中的 CVE-2021-44228 的变通办法说明 (87081

 目的
CVE-2021-44228已被确定通过其附带的Apache Log4j开源组件影响vCenter Server 7.0.x,vCenter 6.7.x和vCenter 6.5.x。以下 VMware 安全通报 (VMSA) 中记录了此漏洞及其对 VMware 产品的影响,请先查看本文档,然后再继续操作:
 影响/风险
  • 在执行本知识库文章中的步骤之前,需要删除 VCHA。
  • 具有外部 PSC 的环境需要在 vCenter 和 PSC 设备上执行步骤。
 分辨率
本文档中描述的解决方法仅是临时解决方案。
应应用上述通报中记录的升级来修正 CVE-2021-44228(如果可用)。
 解决方法
要将 CVE-2021-44228 的变通办法应用于 vCenter Server 7.x、vCenter 6.7.x 和 vCenter 6.5.x,可在 vCenter 设备上更新变通办法部分。
注: 对于 vCenter 云网关 ,只需要执行 vMon 服务和分析服务的步骤。

 


单击此处查看 vCenter Server Appliance 7.0.x 变通办法

单击此处查看 vCenter Server Appliance 6.7.x 变通办法

警告:已确认 vCenter Server 6.7.x 的变通办法仅部分解决 CVE-2021-44228。请订阅此知识库,以便在有完整的解决方法可用时收到警报。


单击此处获取 vCenter Server Appliance 6.5.x 解决方法

警告:已确认 vCenter Server 6.5 的变通办法仅部分解决 CVE-2021-44228。请订阅此知识库,以便在有完整的解决方法可用时收到警报。


vCenter Server Appliance 7.0.x 变通办法
vMON Service

  1. 备份现有的 java-wrapper-vmon 文件
cp -rfp /usr/lib/vmware-vmon/java-wrapper-vmon /usr/lib/vmware-vmon/java-wrapper-vmon.bak
  1. 使用文本编辑器(如vi)更新 java-wrapper-vmon 文件
vi /usr/lib/vmware-vmon/java-wrapper-vmon
  1. 在文件的最底部,将最后一行替换为 2 个新行
根据环境中运行的 vCenter 版本执行此步骤编号"3"。
注意 :- 以下更新(在步骤 3 中提到)仅适用于下面列出的 vCenter 版本:-
  • vCenter 7.0 更新 3、3a
  • vCenter 7.0 Update 2, 2a, 2b, 2c, 2d
Original
exec $java_start_bin $jvm_dynargs $security_dynargs $original_args
 
更新
log4j_arg="-Dlog4j2.formatMsgNoLookups=true"
exec $java_start_bin $jvm_dynargs $log 4j_arg $security_dynargs $original_args

注意 :- 以下更新(在步骤 3 中提到)仅适用于下面列出的 vCenter 版本:-
  • vCenter 7.0 GA, 7.0.0a, 7.0.0b, 7.0.0c, 7.0.0d
  • vCenter 7.0 Update 1, U1a, U1c, U1d
Original
exec $java_start_bin $jvm_dynargs "$@"

Update
log4j_arg="-Dlog4j2.formatMsgNoLookups=true"
exec $java_start_bin $jvm_dynargs $log 4j_arg "$@"
  1. 重新启动 vCenter 服务
服务控制 --停止 --
所有服务-控制 --启动 --所有
 

注意:如果服务未启动,请确保使用以下命令正确设置文件权限:

  • chown root:cis /usr/lib/vmware-vmon/java-wrapper-vmon
  • chmod 754 /usr/lib/vmware-vmon/java-wrapper-vmon

更新管理器服务

  1. 备份现有的启动.ini文件
cp -rfp /usr/lib/vmware-updatemgr/bin/jetty/start.ini /usr/lib/vmware-updatemgr/bin/jetty/start.ini.bak
  1. 更新开始.ini文件
vi /usr/lib/vmware-updatemgr/bin/jetty/start.ini
  1. 将以下行添加到文件末尾
-Dlog4j2.formatMsgNoLookups=true
  1. 重新启动更新管理器服务

service-control --restart vmware-updatemgr

分析服务

  1. 备份 log4j-core-2.8.2.jar 文件
cp -rfp /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar.bak
  1. 运行 zip 命令以禁用类
zip -q -d /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
  1. 重新启动分析服务
service-control --restart vmware-analytics
 

DBCC 实用程序

  1. 备份 log4j-core-2.8.2.jar 文件
cp /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar.bak
  1. 运行 zip 命令以禁用类
zip -q -d /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
 
注意:此命令可能会失败,并显示"zip 错误:无事可做!"。如果是这样,请转到验证部分,以确保不需要该步骤。对于 DBCC,无需重新启动任何服务。
 

验证更改

完成所有部分后,请使用以下步骤确认它们是否已成功实现。
  1. 验证 vMon 服务是否使用新的-Dlog4j2.formatMsgNoLookups=true参数启动:
ps auxww | grep formatMsgNoLookups

检查进程是否包含-Dlog4j2.formatMsgNoLookups=true
  1. 验证更新管理器更改是否显示在以下两个命令输出的"系统属性"下:

cd
/usr/lib/vmware-updatemgr/bin/jetty/ java -jar start.jar --list-config



System Properties:


------------------ log4j2.formatMsgNoLookups = true (/usr/lib/vmware-updatemgr/bin/jetty/start.ini

  1. 验证分析服务更改:
grep -i jndilookup /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar |厕所 -l
 

这应该返回 0 行

  1. 验证 DBCC 实用程序更改:
grep -i jndilookup /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar | wc -l

这应该返回 0 行
 

vCenter Server Appliance 6.7.x 变通办法

警告:已确认 vCenter Server 6.7.x 的变通办法仅部分解决 CVE-2021-44228。请订阅此知识库,以便在有完整的解决方法可用时收到警报。

需要同时应用于 vMON 服务和分析服务。

 

vMON 服务

  1. 备份现有的 java-wrapper-vmon 文件
cp -rfp /usr/lib/vmware-vmon/java-wrapper-vmon /usr/lib/vmware-vmon/java-wrapper-vmon.bak
  1. 使用文本编辑器(如vi)更新 java-wrapper-vmon 文件
vi /usr/lib/vmware-vmon/java-wrapper-vmon
  1. 在文件的最底部,将最后一行替换为 2 个新行
    • 源语言
      exec $java_start_bin $jvm_dynargs "$@"

      Update

      log4j_arg="-Dlog4j2.formatMsgNoLookups=true"

      exec $java_start_bin $jvm_dynargs $log 4j_arg "$@"

  2. 重新启动 vCenter 服务
服务控制 --停止 --所有
服务-控制 --启动 --所有
 

注意:如果服务未启动,请确保使用以下命令正确设置文件权限:

  • chown root:cis /usr/lib/vmware-vmon/java-wrapper-vmon
  • chmod 754 /usr/lib/vmware-vmon/java-wrapper-vmon

 

分析服务

注意:- 以下解决方法(分析服务)仅适用于 vCenter Server Appliance 6.7 Update 3o 及更早版本。JAR 在更高版本中已更新到 2.11。
  1. 备份 log4j-core-2.8.2.jar 文件
cp -rfp /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar.bak
  1. 运行 zip 命令以禁用类
zip -q -d /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
  1. 重新启动分析服务
service-control --restart vmware-analytics
 

CM 服务

  1. 备份 log4j-core.jar 文件
cp -rfp /usr/lib/vmware-cm/lib/log4j-core.jar /usr/lib/vmware-cm/lib/log4j-core.jar.bak
  1. 运行 zip 命令以禁用类
zip -q -d /usr/lib/vmware-cm/lib/log4j-core.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
  1. 重新启动 CM 服务
service-control --restart vmware-cm
 

验证更改

完成所有部分后,请使用以下步骤确认它们是否已成功实现。
  1. 验证 vMON 服务是否使用新的-Dlog4j2.formatMsgNoLookups=true参数启动:
ps auxww | grep formatMsgNoLookups

检查进程是否包含-Dlog4j2.formatMsgNoLookups=true
  1. 验证分析服务更改:
grep -i jndilookup /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar |厕所 -l
 
这应该返回 0 行
  1. 验证 CM 服务更改:
grep -i jndilookup /usr/lib/vmware-cm/lib/log4j-core.jar | wc -l

这应该返回 0 行

vCenter Server Appliance 6.5.x 变通办法

警告:已确认 vCenter Server 6.5 的变通办法仅部分解决 CVE-2021-44228。请订阅此知识库,以便在有完整的解决方法可用时收到警报。 解决方法需要应用于 vMON 服务和 CM 服务
 

vMON 服务

  1. 备份现有的 java-wrapper-vmon 文件
cp -rfp /usr/lib/vmware-vmon/java-wrapper-vmon /usr/lib/vmware-vmon/java-wrapper-vmon.bak
  1. 使用文本编辑器(如vi)更新 java-wrapper-vmon 文件
vi /usr/lib/vmware-vmon/java-wrapper-vmon
  1. 在文件的最底部,将最后一行替换为 2 个新行
    • 源语言
      exec $java_start_bin $jvm_dynargs "$@"

      Update

      log4j_arg="-Dlog4j2.formatMsgNoLookups=true"

      exec $java_start_bin $jvm_dynargs $log 4j_arg "$@"

  2. 重新启动 vCenter 服务
服务控制 --停止 --所有
服务-控制 --启动 --所有
 

注意:如果服务未启动,请确保使用以下命令正确设置文件权限:

  • chown root:cis /usr/lib/vmware-vmon/java-wrapper-vmon
  • chmod 754 /usr/lib/vmware-vmon/java-wrapper-vmon

CM 服务

  1. 备份 log4j-core.jar 文件
cp -rfp /usr/lib/vmware-cm/lib/log4j-core.jar /usr/lib/vmware-cm/lib/log4j-core.jar.bak
  1. 运行 zip 命令以禁用类
zip -q -d /usr/lib/vmware-cm/lib/log4j-core.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
  1. 重新启动 CM 服务
service-control --restart vmware-cm
 

验证更改

完成所有部分后,请使用以下步骤确认它们是否已成功实现。
  1. 验证 vMON 服务是否使用新的-Dlog4j2.formatMsgNoLookups=true参数启动:
ps auxww | grep formatMsgNoLookups

检查进程是否包含-Dlog4j2.formatMsgNoLookups=true
  1. 验证 CM 服务更改:
grep -i jndilookup /usr/lib/vmware-cm/lib/log4j-core.jar | wc -l

这应该返回 0 行
 


 

 相关信息
要还原变通办法,请将修改后的文件替换为在每个步骤中创建的备份。
在执行此知识库中的步骤之前,需要禁用 VCHA。


 
  • 2021 年 12 月 12 日 - 太平洋标准时间 11:20:更新了知识库文章,其中提供了有关 6.5/6.7 部分解决漏洞的变通办法的建议

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值