RadHat6.5离线升级openssh至7.6P1

适用RadHat 6.5 在离线环境下升级Openssh至7.6P1,升级过程中不影响其他业务正常使用。

1、准备

下载安装包并上传到用户目录。
具体涉及到的包有:
openssh-7.6p1.tar.gz
openssl-1.0.2r.tar.gz
(OpenSSL 的官方网站:http://www.openssl.org)
openssl-fips-2.0.16.tar.gz
(OpenSSL 的官方网站:http://www.openssl.org)
pam-devel-1.1.1-24.el6.x86_64.rpm
(pam-devel官方下载网站: https://pkgs.org/download/pam-devel)
zlib-1.2.11.tar.gz
(Zlib 官方网站:http://www.zlib.net/)将下载好的安装包上传至用户目录

a) 查看openssh现在版本信息

#ssh –V
查看openssh当前使用版本

b) 查看主机是够有gcc、make:

[root@demo ~]# rpm -qa |grep gcc
libgcc-4.4.7-4.el6.i686
gcc-4.4.7-4.el6.x86_64
gcc-objc-4.4.7-4.el6.x86_64
gcc-objc+±4.4.7-4.el6.x86_64
compat-gcc-34-c+±3.4.6-19.el6.x86_64
compat-gcc-34-3.4.6-19.el6.x86_64
gcc-java-4.4.7-4.el6.x86_64
compat-gcc-34-g77-3.4.6-19.el6.x86_64
libgcc-4.4.7-4.el6.x86_64
gcc-c+±4.4.7-4.el6.x86_64
gcc-gfortran-4.4.7-4.el6.x86_64
gcc-gnat-4.4.7-4.el6.x86_64

[root@demo ~]# rpm -qa |grep make
automake-1.11.1-4.el6.noarch
make-3.81-20.el6.x86_64

c) 关闭SELinux

临时关闭(不用重启机器):
[root@demo ~]#setenforce 0 ##设置SELinux 成为permissive模式
[root@demo ~]#setenforce 1 设置SELinux 成为enforcing模式
永久关闭(修改配置文件需要重启机器):
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled

2、编译安装 Zlib

[root@demo ~]# tar xf zlib-1.2.11.tar.gz
进入解压后的目录
[root@demo ~]#cd zlib-1.2.11

a) 构建静态库

[root@demo zlib-1.2.11]#./configure
[root@demo zlib-1.2.11]#make test
[root@demo zlib-1.2.11]#make install

b) 构建共享库

[root@demo zlib-1.2.11]#make clean
[root@demo zlib-1.2.11]#./configure --shared
[root@demo zlib-1.2.11]#make test
[root@demo zlib-1.2.11]#make install
[root@demo zlib-1.2.11]#cp zutil.h /usr/local/include
[root@demo zlib-1.2.11]#cp zutil.c /usr/local/include

至此,Zlib编译安装完成。

3、安装pam-devel

a)查看老版本信息

[root@demo zlib-1.2.11]# rpm -qa |grep pam-devel
pam-devel-1.1.1-17.el6.x86_64

b)卸载老版本

[root@demo zlib-1.2.11]# rpm -e --nodeps pam-devel-1.1.1-17.el6.x86_64

c)rpm安装pam-devel

从当前目录切换到存放pam-devel最新版本的目录下,执行命令:
[root@demo ~]# rpm -ivh pam-devel-1.1.1-24.el6.x86_64.rpm --force --nodeps
这样就安装好最新版本了。

4、编译安装openssl-fips

[root@demo ~]# tar xf openssl-fips-2.0.16.tar.gz
[root@demo ~]# cd openssl-fips-2.0.16
[root@demo openssl-fips-2.0.16]# ./config
[root@demo openssl-fips-2.0.16]# make
[root@demo openssl-fips-2.0.16]# make install
默认安装到/usr/local/ssl/fips-2.0
安装成功:
编译安装openssl-fips

5、编译安装openssl

切换至存放 openssl-1.0.2r.tar.gz文件的目录下,执行命令:
[root@demo ~]#tar xf openssl-1.0.2r.tar.gz
[root@demo ~]#cd openssl-1.0.2r
[root@demo openssl-1.0.2r]#./config --shared zlib #一定要加上shared 参数,要不在安装openssh的时候就无法找到
[root@demo openssl-1.0.2r]#make
[root@demo openssl-1.0.2r]#make install

a)备份原来的openssl

[root@demo openssl-1.0.2r]#mv /usr/bin/openssl /usr/bin/openssl.bak
[root@demo openssl-1.0.2r]#mv /usr/include/openssl /usr/include/openssl.bak
注意,因为源码安装默认安装的位置是 /usr/local/ssl 需要将创建软链接到系统位置
[root@demo openssl-1.0.2r]#ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
[root@demo openssl-1.0.2r]#ln -s /usr/local/ssl/include/openssl /usr/include/openssl

b)将openssl 的lib 库添加到系统

[root@demo openssl-1.0.2r]#echo “/usr/local/ssl/lib” > /etc/ld.so.conf.d/openssl.conf

c)使新添加的lib 被系统找到

[root@demo openssl-1.0.2r]#ldconfig

d)查看openssl版本

openssl version –a
查看openssk版本

e)查看是否升级成功

[root@demo openssl-1.0.2r]# openssl version
升级成功
至此,openssl升级成功。

6、编译安装 OpenSSH

a)备份当前openssh

[root@demo openssl-1.0.2r]# mv /etc/ssh /etc/ssh.old

b)卸载当前openssh

[root@demo openssl-1.0.2r]#rpm –qa |grep openssh
查看当前安装的openssh包
[root@demo openssl-1.0.2r]# rpm -e --nodeps openssh-5.3p1-94.el6.x86_64
[root@demo openssl-1.0.2r]#rpm -e --nodeps openssh-askpass-5.3p1-94.el6.x86_64
[root@demo openssl-1.0.2r]#rpm -e --nodeps openssh-server-5.3p1-94.el6.x86_64
[root@demo openssl-1.0.2r]#rpm -e --nodeps openssh-clients-5.3p1-94.el6.x86_64
[root@demo openssl-1.0.2r]# rpm -qa | grep openssh
卸载旧的openssh相关包

c)编译安装Openssh7.6 P1

[root@demo ~]# tar xf openssh-7.6p1.tar.gz
[root@demo ~]# cd openssh-7.6p1
编译(同时兼容ssh1协议)
[root@demo openssh-7.6p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl/lib --with-md5-passwords --with-pam --with-zlib --with-ssh1
[root@demo openssh-7.6p1]#make
[root@demo openssh-7.6p1]#make install
安装完成

d)安装后环境配置

[root@demo redhat]# cp contrib/redhat/sshd.init /etc/init.d/sshd
[root@demo redhat]# chmod +x /etc/init.d/sshd
[root@demo redhat]# chkconfig --add sshd
添加系统服务sshd
为了避免新版本root用户登录不了,需要进入/etc/ssh目录修改sshd_config文件,添加PermitRootLogin yes到文件末尾
[root@demo ~]#cd /etc/ssh
修改文件
[root@demo ~]#vi sshd_config
添加PermitRootLogin yes到文件末尾
添加允许root登录信息
保存,退出。

e)启动ssh服务

[root@demo ~]#service sshd start
注意:尽量不要使用service sshd restart,避免sshd服务异常,导致连接断开。

g)验证升级是否完成

[root@demo ~]# ssh –V
验证升级结果
(建议升级成功后重启测试是否能正常使用ssh连接)

7、结束

使用上述步骤,即可将radhat6.5的openssh 5.3 P1 离线升级至openssh 7.6P1。
该升级方法同样适用于centos升级。
升级openssh服务可有效解决openssh老版本目前存在的下列高危漏洞(亲测有效):
OpenSSH MaxAuthTries限制绕过漏洞(CVE-2015-5600)
OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)
OpenSSH 'schnorr.c’远程内存破坏漏洞(CVE-2014-1692)
OpenSSH 安全漏洞(CVE-2016-1908)
OpenSSH 远程代码执行漏洞(CVE-2016-10009)
OpenSSH 安全限制绕过漏洞(CVE-2016-10012)
OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325)
OpenSSH auth_password函数拒绝服务漏洞(CVE-2016-6515)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值