修复ES版本为 5.0.0-5.6.10或者 6.0.0-6.3.2的log4j2漏洞:
log4j受影响的版本:Log4j 2.x - 2.14.1
参考文档:https://discuss.elastic.co/t/elasticsearch-5-0-0-5-6-10-and-6-0-0-6-3-2-log4j-cve-2021-44228-cve-2021-45046-remediation/292054
一、安装需要的工具
需要使用zip和jar命令。zip命令需要安装zip,jar命令需要安装jdk。如果两个命令都有,则可忽略以下安装步骤。
1.安装zip
在线安装:yum install zip
离线安装:
a.下载zip安装包
下载地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=&submit=Search+...&system=&arch=
我这里的操作系统是centos,所以输入zip和centos搜索,选择el7下载
b.将zip安装包拖到opt目录(或者其他任意目录),执行以下命令安装zip
rpm -ivh /opt/zip-3.0-11.el7.x86_64.rpm
2.安装jdk
a.下载jdk安装包地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
b.将jdk安装包拖到opt目录(或者其他任意目录),执行以下命令安装jdk
rpm -ivh /opt/jdk-8u321-linux-x64.rpm
二、删除 log4j JAR 文件易受攻击的类(JndiLookup)
备注:以下修复建议只适用于ES版本为 5.0.0-5.6.10或者 6.0.0-6.3.2
1.进入es的安装目录
cd /usr/share/elasticsearch
2.确认log4j 文件是否存在以及log4j的版本是否存在漏洞
ls -l lib/log4j-core-*.jar
3.备份易受攻击的 log4j JAR 文件
zip ./backup-log4j.zip lib/log4j-core-2.9.0.jar
4.从 log4j JAR 文件中删除易受攻击的类
zip -d lib/log4j-core-2.9.0.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
5.确认是否删除易受攻击的类:
jar tvf lib/log4j-core-2.9.0.jar | grep -i JndiLookup
- 如果删除成功,则不会有任何输出。
- 如果输出包括 JAR 文件中条目的列表,则删除不成功。请查看之前的步骤以了解任何错误消息。
- 任何其他错误都表明存在问题,您应该检查您的步骤。
注意:如果运行上述命令会产生一系列如下所示的行:
zip warning: Local Version Needed To Extract does not match CD:。。。。。
这对移除易受攻击的类没有影响,可以放心地忽略。
6.重启 Elasticsearch 节点
systemctl restart elasticsearch
7.对集群中的每个 Elasticsearch 节点重复以上步骤