centos6.5 ssh 从5.3版本升级到7.7版本

前言:近期因centos 6.x 默认openssh扫描存在大量漏洞,基于安全考虑,需要将openssh_5.3p1升级为最新版,网上查了很多教程,发现openssh存在大量依赖,不解决依赖问题很难保证其他服务。而openssl又被大量程序依赖。实在是头疼。最后发现一个不破坏各种依赖又可以完美升级的方案。
以下操作系统是centos6.5
一 安装telnet服务并启用
    因升级OpenSSH过程中需要卸载现有OpenSSH, 因此为了保持服务器的远程连接可用,需要启用telnet服务作为替代,如升级出现问题,也可通过telnet登录服务器进行回退。
    A、安装telnet服务
    # yum -y install telnet-server*
    B、启用telnet
  先关闭防火墙,否则telnet可能无法连接
  # service iptables stop
  # chkconfig iptables off
# vi /etc/xinetd.d/telnet
将其中disable字段的yes改为no以启用telnet服务
# mv /etc/securetty /etc/securetty.old    #允许root用户通过telnet登录
# service xinetd start                    #启动telnet服务
# chkconfig xinetd on                     #使telnet服务开机启动,避免升级过程中服务器意外重启后无法远程登录系统
# telnet [ip]                             #新开启一个远程终端以telnet登录验证是否成功启用
二 检查环境
 
官方给出的文档中提到的先决条件openssh安装依赖zlib1.1.4并且openssl>=1.0.1版本就可以了。那么直接看当前系统的openssl版本是多少
[root@zabbix-serv ~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
[root@zabbix-serv ~]# rpm -q zlib
zlib-1.2.3-29.el6.x86_64
[root@zabbix-serv ~]# rpm -q zlib-devel
zlib-devel-1.2.3-29.el6.x86_64
发现自带的openssl版本符合openssh7.7p的安装条件,自带的zlib也符合OpenSSH7.7P的依赖。那么就直接安装吧。
三  升级安装
yum -y install rpm-build
yum -y install gcc pam-devel zlib-devel
mkdir -p /root/rpmbuild/SOURCES/
mkdir -p /usr/src/redhat/{SOURCES,SPECS}
cd /usr/src/redhat/SOURCES/
wget http://ftp.riken.jp/Linux/momonga/6/Everything/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz
tar xf openssh-7.7p1.tar.gz
cp openssh-7.7p1/contrib/redhat/openssh.spec /usr/src/redhat/SPECS/
chown sshd:sshd /usr/src/redhat/SPECS/ -R
sed -i 's@%define no_gnome_askpass 0@%define no_gnome_askpass 1@g' /usr/src/redhat/SPECS/openssh.spec
sed -i 's@%define no_x11_askpass 0@%define no_x11_askpass 1@g' /usr/src/redhat/SPECS/openssh.spec
cp /usr/src/redhat/SOURCES/openssh-7.7p1.tar.gz ~/rpmbuild/SOURCES/
cp /usr/src/redhat/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz ~/rpmbuild/SOURCES/
cd /usr/src/redhat/SPECS/
rpmbuild -ba openssh.spec
编译过程出现如下的提示:
.................
Wrote: /root/rpmbuild/SRPMS/openssh-7.7p1-1.el6.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-7.7p1-1.el6.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-clients-7.7p1-1.el6.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-server-7.7p1-1.el6.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-debuginfo-7.7p1-1.el6.x86_64.rpm
.....................
进行安装
cd /root/rpmbuild/RPMS/x86_64/
rpm -Uvh *
注意:安装成功后,要覆盖原来的ssh配置文件,需要根据原来的配置进行修改,然后重启sshd服务。
四 进行检查和禁止telnet服务
sshd -V
重新ssh登陆进行验证,ssh登陆没有问题后禁止telnet服务
service xinetd stop
chkconfig xinetd off
mv /etc/securetty.old /etc/securetty

五 其他机器ssh升级
如果上面升级顺利,环境相同的话,可以不用安装telnet,直接把rpm安装包,拷贝到本机,安装升级ssh即可。
scp  /root/rpmbuild/RPMS/x86_64/*.rpm  IP:
rpm -Uvh *
修改ssh配置文件,重启ssh服务
service sshd restart
另外经过测试:如果是centos版本不同,即便都是6.x,都有可能出现安装升级不能成功的现象。笔者曾出现把centos6.5生成的安装包拷贝到centos6.9,有些机器能成功,有些机器不能成功,大多数机器不能成功。跟机器的本身环境有关。

猜你喜欢

转载自blog.csdn.net/wzlsunice88/article/details/81018086