系统环境:CentOS 7.2
漏洞影响:网上利用该漏洞的方式遍布,影响较大,可以获取服务器管理权限
https://nosec.org/home/detail/1497.html
漏洞原理:https://paper.seebug.org/295/
修复漏洞:升级Jenkins版本
Jenkins中文文档:https://jenkins.io/zh/
版本升级:
需要登录Jenkins后台,到系统管理,管理Jenkins中获取当前系统Jenkins版本。
首先需要确定现在的安装的版本是Jenkins weekly version(每周更新) 还是Jenkins LTS(每12周更新)。
Jenkins国内镜像源(清华大学):https://mirrors.tuna.tsinghua.edu.cn/jenkins/
自2017年4月更新后的版本需要jdk1.8的环境,所以需要确定服务器jdk版本。
java --version #查看java版本 或者查看系统环境变量 cat /etc/profile #确定jdk的版本
安装新的jdk版本:
官网下载最新jdk版本,文件服务器已提供下载好: \\hz-fs.dtdream.com\公共\开发工具\jdk jdk-8u211-linux-x64.tar.gz
# tar -zxvf jdk-8u211-linux-x64.tar.gz # mv jdk-8u211-linux-x64.tar.gz jdk1.8 # mv jdk1.8 /usr/local 配置环境变量 # vim /etc/profile编辑文件,添加: export JAVA_HOME=/usr/local/jdk1.8 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH} 或者直接执行下面命令添加: cat >> /etc/profile << "EOF" export JAVA_HOME=/usr/local/jdk1.8 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH} EOF 环境变量立即生效: source /etc/profile java --version #查看java版本
Jenkins安装:选择长期支持版本 LTS安装,最新版本为:
Jenkins 2.164.2
两种通用方法:
1、yum安装Jenkins LTS版本
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key sudo yum -y install jenkins 如果安装Jenkins weekly version 版本,执行下面命令 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key sudo yum -y install jenkins 由于jdk是使用tar.gz包解压安装,需要把java环境变量加入到jenkins启动脚本中: vim /etc/init.d/jenkins +67 加入: /usr/local/jdk1.8/bin/java
官方文档:https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions
注意:如果是使用yum install java 安装的jdk就不需要配置java环境变量到jenkins启动脚本,已经包含。
2、下载war包安装运行 Jenkins LTS版本
ps -aux | grep jenkins #定位jenkins包的路径 或者 到后台查看已安装的jenkins的路径,-->系统管理,管理Jenkins中获取当前系统Jenkins的路径 tomcat方式安装: 下载Jenkins LTS war包放到tomcat下启动就好 wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.17/bin/apache-tomcat-9.0.17.tar.gz #下载tomcat 9版本 需要Java 1.8支持 tar –zxvf apache-tomcat-9.0.17.tar.gz cd apache-tomact-9.0.17/webapps/ 下面下载jenkins的war包并启动tomcat wget http://mirror.xmission.com/jenkins/war-stable/2.164.2/jenkins.war 或者wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable-rc/2.164.2/jenkins.war 最后运行tomcat脚本:../bin/catalina.sh start 如果不使用tomcat运行。也可以直接运行war包。 wget http://mirror.xmission.com/jenkins/war-stable/2.164.2/jenkins.war java -jar jenkins.war #执行运行启动Jenkins
注意:
升级之前最好先备份原来的数据:假设部署在 /usr/lib/jenkins/ 目录下
查看war包所在的目录:find / -name jenkins.war
停止jenkins服务:systemctl stop jenkins 或者 service jenkins stop
备份war包:
cd /usr/lib/jenkins/
mv /usr/lib/jenkins/jenkins.war /root