修復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 節點重復以上步驟