阿里云漏洞库 (aliyun.com) 漏洞介绍
解决建议
1、排查应用是否引入了Apache log4j-core Jar包,若存在依赖引入,且在受影响版本范围内,则可能存在漏洞影响。同时为了避免在Apache Log4j 2.15.0版本中某些自定义配置而可能导致的JNDI注入或拒绝服务攻击,请尽快升级Apache Log4j2所有相关应用到 2.16.0 或者 2.12.2 及其以上版本,地址 https://logging.apache.org/log4j/2.x/download.html 。
2、对于 Java 8 及其以上用户,建议升级 Apache Log4j2 至 2.16.0 及以上版本。
3、对于 Java 7 用户,建议升级至 Apache Log4j 2.12.2 及以上版本,该版本为安全版本,用于解决兼容性问题。
4、对于其余暂时无法升级版本的用户,建议删除JndiLookup,可用以下命令 zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
5、升级已知受影响的应用及组件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink
6、其余临时缓解方案可参见 https://logging.apache.org/log4j/2.x/security.html 。目前已有安全版本,强烈建议不要采用临时缓解方案进行防御。
========================================================
由于服务器安装的ELK7.2版本,自带的log4 是2.11版本。
修复其实很简单,但是还是有需要注意的地方。
所有历史版本下载:Index of /dist/logging/log4j (apache.org)
选择2.18版本
apache-log4j-2.18.0-bin.ziphttps://archive.apache.org/dist/logging/log4j/2.18.0/apache-log4j-2.18.0-bin.zip电脑解压或者服务器下载解压皆可。
找到我们需要的三个jar包
log4j-1.2-api-2.18.0.jar
log4j-api-2.18.0.jar
log4j-core-2.18.0.jar
我们需要这三个
将旧版本 加_bak 后缀 备份,以免升级有问题,有回退余地。保持能备份旧不rm原则
注意:
并不是将jar包放到lib下 就完成升级了。如果这个时候你启动ES服务,肯定启动不起来的。
因为你还没有赋权。
还记得es不允许root运行么/
是的。将你当时创建的用户 给这几个文件赋权吧
chown -R es:es /usr/local/elasticsearch/lib/log4j-core-2.18.0.jar
chown -R es:es /usr/local/elasticsearch/lib/log4j-api-2.18.0.jar
chown -R es:es /usr/local/elasticsearch/lib/log4j-1.2-api-2.18.0.jar
完成赋权,启动es服务
systemctl restart elasticsearch.service
//可以追踪日志查看输出内容
tail -f /var/log/messages
elasticsearch: future versions of Elasticsearch will require Java 11; your Java version from [/opt/jdk1.8.0_221/jre] does not meet this requirement
#这个是提示jdk版本,我这里用的8 无视之。
tail -f /usr/local/elasticsearch/logs/elk.log
[2022-09-02T13:53:37,142][INFO ][o.e.h.AbstractHttpServerTransport] [elk-169] publish_address {172.16.128.169:9200}, bound_addresses {172.16.128.169:9200}
[2022-09-02T13:53:37,143][INFO ][o.e.n.Node ] [elk-169] started
启动成功,没有其他报错。
集群也恢复正常。
完成升级。
end