Geoserver - 用 2.15.0 替换 log4j 1.2.17?

Geoserver - Replacing log4j 1.2.17 with 2.15.0?

我的网络服务器上有一个使用 log4j v 1.2.17 (log4j-1.2.17.jar) 的地理服务器。

我已经从 the log4j download site 下载了最新的(安全?)版本 (2.15.0) 并对下载进行了校验。

我现在很困惑 .jar 我应该尝试使用哪个?

我网站上的版本称为 log4j-1.2.17.jar,但下载中的 .jar 都称为例如log4j-web-2.15.0.jar

geoserver 的网络服务器是 jetty 如果这有什么不同的话。

怎么办?

出于同样的原因,我自己也一直在研究这个问题,根据以下阅读,我可以收集到您需要使用 log4j-1.2-api-2.15.0.jar:

Perhaps the simplest way to convert to using Log4j 2 is to replace the log4j 1.x jar file with Log4j 2's log4j-1.2-api.jar.

source

我想指出,这不应该是公认的答案,但我想为那些试图掌握情况的人提供一个答案。

[编辑]

看来log4j-1.2-api-2.15.0.jar还不够。它有助于将 Geoserver 迁移到较新的 log4j 版本,同时仍然使用以前的主包,但它无法引用较新的版本。因此,我还添加了 log4j-api-2.15.0.jar 以完成路径。

这之后好像又能用了,版本也更新了。 我可以通过使用 Geoserver (/geoserver/rest/about/manifest.xml) 的 api 来验证这一点。如果您在升级前搜索 log4j,您将看到 1.2.17 和之后的 2.15。

有一种方法可以停用 log4j 日志记录:

https://docs.geoserver.org/stable/en/user/configuration/logging.html

[更新] https://osgeo-org.atlassian.net/browse/GEOS-10333

从 log4j v1(GeoServer 使用的)和 log4j v2(具有最新 CVE 的那个)的切换中,日志记录的方式发生了重大变化。虽然 GeoServer 不受问题中提到的 RCE 漏洞的影响,但使用我们确实使用的旧(和 EOL)版本仍然存在一些小风险。

因此,作为临时缓解措施,Andrea Aime 对当前的 log4j v1 主干进行了分叉,删除了可能被有权访问您的 GeoServer 计算机的攻击者滥用的网络元素。参见 https://github.com/aaime/log4j for the tree you will need to clone and build. This will generate a new jar called log4j-1.2.17-norce.jar which you should replace log4j-1.2.17.jar with. You can now download that jar prebuilt from https://repo.osgeo.org/repository/geotools-releases/log4j/log4j/1.2.17/log4j-1.2.17-norce.jar

如果您使用 GeoServer,那么您可能希望为开发人员做出贡献(或通过 OSGEO foundation)以帮助支持减少项目技术债务所涉及的工作,例如更新日志库。