一、背景
- 未经身份验证的攻击者可以在服务器上注入和执行可能影响机密性,完整性和可用性的代码。Sonatype已经意识到僵尸网络利用了之前宣布的安全漏洞,并建议立即升级受影响的NXRM 3.x实例。(NXRM 2.x实例不受影响)。
二、方案概述
受影响的版本:Nexus Repository Manager 3.x OSS / Pro版本,包括3.14.0
已修复版本:Nexus Repository Manager OSS / Pro 3.15.0版
未经身份验证的用户可以以可以在主机系统上执行任意代码和程序的方式来创建请求。截至2019年6月12日,Sonatype已经意识到这个漏洞的漏洞已被添加到僵尸网络的库中。Sonatype通过添加必要的访问控制以及禁用通过此路径执行任意Java代码的能力来缓解此问题。 由于已识别的漏洞允许未经身份验证的攻击者在主机系统上运行任意代码或程序,因此 Sonatype强烈建议将所有NXRM实例升级到 3.15 或更高版本
三、详细设计
3.1 安装高版本nexus
3.1.1 下载
官网地址:http://uee.me/aRBrc
https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.17.0-01-unix.tar.gz (注意:经测试浏览器不能下载,需要用迅雷下载)
3.1.2 解压
复制安装包到/opt,进入目录解压 tar -zxvf nexus-3.17.0-01-unix.tar.gz
nexus-3.17.0-01(Nexus运行所需要的文件,如运行脚本,依赖jar包等)
sonatype-work(该目录包含Nexus生成的配置文件、日志文件、仓库文件等)
3.2 升级
3.2.1 升级之前
在从3.0.2升级到3.1.x之前,需要熟悉3.1.x的新磁盘布局。它由一个sonatype-work包含嵌套nexus3目录的文件夹组成, 其中包含您的所有内容和配置。不要修改您的nexus-defaults.properties文件。而是在修改3.1.0版本后文件sonatype-work创建nexus.properties。
3.2.2 升级步骤
-
下载并解压缩适用于您的操作系统的3.1.0 的分发存档。
-
停止运行存储库管理器的3.0.2版。
-
手动将备份内容备份$3.0.2-02/data到另一个位置。
-
复制或移动内容,$3.0.2-02/data使其覆盖/sonatype-work/nexus3/3.1.0中的内容。
-
在3.1.0中创建一个nexus.properties文件 /sonatype-work/nexus3/etc。
-
复制的内容$3.0.2-02/etc/org.sonatype.nexus.cfg来$3.1.0-04/../sonatype-work/nexus3/etc/nexus.properties。
-
删除任何提及nexus-edition或nexus-features在3.1.0数据目录中,即 $3.1.0-04/../sonatype-work/nexus3/etc/nexus.properties。
-
在$3.1.0-04/../sonatype-work/nexus3/etc/nexus.properties替换每个${karaf.etc}与${jetty.etc}在nexus-args财产。E. g。nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml。
-
如果已进行自定义$3.0.2-02/etc/,则需要手动将这些更改重新应用到3.1.0-04。 使用脚本nexus-3.1.0-04/bin/或您的服务启动Nexus 。
3.2.3 修改端口
更改/sonatype-work/nexus3/etc/nexus.properties里边的application-port=8081。
3.2.4 设置开机自启
ln -s ln -s /opt/nexus-3.17.0-01/bin/nexus /etc/init.d/nexus3.17 /etc/init.d/nexus3.17
chkconfig --add nexus3.17
chkconfig nexus3.17 on
3.2.6 nexus 切换用户
su nexus
3.2.6 nexus启动停止命令
打开目录:/opt/nexus-3.17.0-01/bin 进入bin目录下
./nexus start # 启动
./nexus stop # 停止
./nexus status # 查看状态
默认监听端口为8081,默认管理员用户为您提供完全控制权并使用用户名 admin ,初始密码可以在启动后admin.password在sonatype-work/nexus3/admin.password目录中的文件中
参考:How to Upgrade Nexus Repository Manager 3.0.2 to 3.1.0 or Later