当前位置: 首页>后端>正文

大数据组件Log4j2漏洞升级

目前我们的大数据基础平台类似于CDH,集成了各个开源软件,Log4j2漏洞出现的时候,我们采用了两个方案,一个是开启防火墙,二是对应每个大数据组件进行更新。

一、防火墙

方案思路是,在初始化主机的时候加上防火墙策略,集群间开启白名单,对外开放我们需要用到的端口,firewall可能要用到的语句如下:

//开放端口
firewall-cmd --zone=public --add-port=5601/tcp --permanent
//批量开放端口
firewall-cmd --zone=public --add-port=9200-9202/tcp --permanent
//开放ip
firewall-cmd --zone=trusted --add-source=对应IP/32 --permanent
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="对应IP/32" accept" --permanent
//开放端口给特定ip
 firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="对应IP/16" port protocol="tcp" port="9200" accept" --permanent
//以上命令增加使用命令刷新才生效
firewall-cmd --reload
//查看default zone规则
firewall-cmd --list-all
//查看指定zone规则
firewall-cmd --zone=trusted --list-all

二、大数据组件

其实一些像Zookeeper和Kafka这些用的Log4j是没有啥影响的,但是合作商需要你升级,因为一个漏洞就要把对应组件版本升级不太实际,组件的版本升级我们还需要做版本调研和适配,所以采用的方案是更换jar包重新打包,目前基于Java的组件如下:ZookeeperKafkaFlinkElastiserchNeo4j还有自身的基于SpringBoot基础平台服务。

1、SpringBoot(V2.1.3)

SpringBoot升级对应log4j2版本即可。

<properties>
    <log4j2.version>2.17.0</log4j2.version>
</properties>  

2、Zookeeper(V3.4.14)

2.1 更换jar包

删除jar包

log4j-1.2.17.jar
slf4j-api-1.7.25.jar
slf4j-log4j12-1.7.25.jar

添加jar包

log4j-1.2-api-2.17.0.jar
log4j-api-2.17.0.jar
log4j-core-2.17.0.jar
log4j-slf4j-impl-2.17.0.jar
slf4j-api-1.7.30.jar
2.2 替换log4j.properties文件

log4j.properties文件

property.filename = /var/log/zookeeper/zookeeper.log

filter.threshold.type = ThresholdFilter
filter.threshold.level = info

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %m%n
appender.console.filter.threshold.type = ThresholdFilter
appender.console.filter.threshold.level = error

appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = /var/log/zookeeper/zookeeper.log.%d{yyyy-MM-dd}
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d %p %C{1.} [%t] %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 30
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=10MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 30

rootLogger.level = info
rootLogger.appenderRef.rolling.ref=RollingFile
2.3 修改java.env

添加JVM配置,其中log4j.configurationFile用于指定log4j2的日志配置文件,zookeeper.jmx.log4j.disable用于关闭jmx。

-Dlog4j.configurationFile=/usr/local/zookeeper-3.4.14/conf/log4j.properties -Dzookeeper.jmx.log4j.disable=true

3、Kafka(V2.11_2.1.1)

删除jar包

log4j-1.2.17.jar
slf4j-api-1.7.25.jar
slf4j-log4j12-1.7.25.jar

添加jar包

log4j-1.2-api-2.17.0.jar
log4j-api-2.17.0.jar
log4j-core-2.17.0.jar
log4j-slf4j-impl-2.17.0.jar
slf4j-api-1.7.30.jar

4、Flink(V1.9.0)

删除jar包

log4j-1.2.17.jar
slf4j-log4j12-1.7.15.jar

添加jar包

log4j-1.2-api-2.17.0.jar
log4j-api-2.17.0.jar
log4j-core-2.17.0.jar
log4j-slf4j-impl-2.17.0.jar
slf4j-api-1.7.30.jar

5、Elastiserch(V7.2.0)

删除jar包

log4j-1.2-api-2.11.1.jar
log4j-api-2.11.1.jar
log4j-core-2.11.1.jar

添加jar包

log4j-1.2-api-2.17.0.jar
log4j-api-2.17.0.jar
log4j-core-2.17.0.jar

6、Neo4j(V3.5.26)

Neo4j我们的版本没有影响,可以参考官方《Apache Log4j Security Vulnerability》

大数据组件Log4j2漏洞升级,第1张

HadoopHbaseHiveSpark这些组件我们目前不做调整,有做过适配的欢迎推荐参考资料,因为不排除后期也要做升级处理。


https://www.xamrdz.com/backend/3f61993875.html

相关文章: