最近客户给了一个漏洞扫描报告,需要我这协助做一下ssh的漏洞修复,因为是通过堡垒机远程进行的连接,所以,网上说的一些需要卸载ssh,再重新编译的方法不适合我此时的环境,因此,采用重新build rpm包,来进行update ,这里记录一下。
操作系统:centos6.7 目标ssh版本:7.6
可以先使用ssh -V (或者rpm -qa |grep openssh)查看升级前的ssh版本号,这里因为是我已经做过升级后才进行的记录,就不在截图说明 之前的版本号了,大概好像是5.1。
升级第一步:
下载ssh的源码包:wget http://mirrors.evowise.com/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz
cd /home/assoft/
wget http://mirrors.evowise.com/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz
tar -xvzf openssh-7.6p1.tar.gz
升级第二步:
安装rpmbuild相关依赖包
yum install rpm-build gcc make wget openssl-devel krb5-devel pam-devel libX11-devel xmkmf libXt-devel
升级第三步:
创建对应的build目录
mkdir -p /root/rpmbuild/{SOURCES,SPECS}
cp ./openssh-7.6p1/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
cp openssh-7.6p1.tar.gz /root/rpmbuild/SOURCES/
cd /root/rpmbuild/SPECS/
升级第四步:
替换内容
sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" openssh.spec
sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" openssh.spec
sed -i -e "s/BuildPreReq/BuildRequires/g" openssh.spec
升级第五步:
rpmbuild -bb openssh.spec
升级第六步:
经过rpmbuild 以后会在rpmbuild目录下生成一些目录,这时候进入RPMS目录中
[root@localhost rpmbuild]# cd RPMS/x86_64/
[root@localhost x86_64]# ls
openssh-7.6p1-1.x86_64.rpm openssh-debuginfo-7.6p1-1.x86_64.rpm
openssh-clients-7.6p1-1.x86_64.rpm openssh-server-7.6p1-1.x86_64.rpm
升级第七步:
rpm -Uvh *.rpm
此时等待升级完成,通过ssh -V查看版本。