(最好还是采用https://blog.51cto.com/sf1314/2150313  )


由于升级OpenSSH涉及到安全性问题,为保险起见,在升级前最好安装telnet服务作为备用方案,然后在升级成功后再停止telnet即可。

一、OpenSSH升级相关源码包下载地址:https://share.weiyun.com/56T0i2v 
zlib  http://www.zlib.net/zlib-1.2.11.tar.gz
zlib其他版本下载地址 http://www.zlib.net/fossils/

openssl-fips https://www.openssl.org/source/old/fips/openssl-fips-2.0.12.tar.gz
OpenSSL https://www.openssl.org/source/openssl-1.0.2k.tar.gz
OpenSSH  http://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz



二、配置yum源

1.新建光盘挂载目录/yum
mkdir /yum

2.上传光盘到机器的某个目录,然后挂载到/yum目录下
mount -o loop rhel-server-6.5-x86_64-dvd.iso /yum

3.配置local.repo
cd /etc/yum.repo.d/          #为防止其他repo文件干扰,可将其他repo文件进行重命名或删除
vi local.repo
输入如下内容
[Redhat6.5]
name=rhel6.5
baseurl=file:///yum
enabled=1
gpgcheck=0

三、安装telnet服务

1. 使用yum安装telnet

yum -y install telnet-server*

 

2. 启动telnet服务

打开vi /etc/xinetd.d/telnet文件,将disable字段改为no


3.启动telnet服务

/etc/init.d/xinetd start

 

4.查看telnet服务是否启动

netstat -tnlp | grep :23

tcp       0      0 :::23       :::*        LISTEN      5013/xinetd

 

5.关闭防火墙后,telnet才可以使用

service iptables stop                #关闭防火墙

chkconfig iptables off               #设置防火墙开机不启动

chkconfig xinetd on                 #设置telnet服务开机启动

四、查看当前selinux的状态
getenforce                        #查看selinux状态
setenforce 0                      #设置selinux为关闭

为防止OpenSSH升级后通过远程终端无法连接机器,建议将其关闭,方法如下:

vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled



五、安装依赖包
yum -y install gcc pam-devel zlib-devel openssl-devel


六、安装zlib

1.解压

tar -xvf zlib-1.2.11.tar.gz                 

cd zlib-1.2.11

 

2.配置

./configure

 

3.编译安装   

make             
make install

 

4.查看

ll /usr/local/lib


七、安装openssl-fips-2.0.14

1.解压

tar -xf openssl-fips-2.0.14.tar.gz

cd openssl-fips-2.0.14

 

2.配置

./config

 

3.编译安装

make

make install 


八、安装openssl-1.0.2k

1.解压

tar -xf openssl-1.0.2k.tar.gz          

cd openssl-1.0.2k

 

2.配置

./config

 

3.编译安装

make

make install

 

4.设置软连接

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl           #设置软连接,如果提示已存在,则无需再设置


5.查看新安装的openssl版本

openssl version –a


在执行openssl version -a出现如下错误:

libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

这是由于openssl库的位置不正确造成的。

解决方法:
在root用户下执行:

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1

ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1



九、安装openssh-7.4p1

1.解压

tar -xf openssh-7.4p1.tar.gz

cd openssh-7.4p1

 

2.编译

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening

 

3.编译安装

make

make install

 

4.修改配置文件

(1)备份sshd文件,重命名为sshd_20180209_old

mv /etc/init.d/sshd /etc/init.d/sshd_20180209_old

(2)复制配置文件、赋权、添加到开机启动项

cd /root/openssh-7.4p1/contrib/redhat

cp sshd.init /etc/init.d/sshd

chmod u+x /etc/init.d/sshd

chkconfig --add sshd

chkconfig sshd on


#备份原文件

mv /etc/ssh/ssh_config /etc/ssh/ssh_config_20170209_old

mv /etc/ssh/sshd_config /etc/ssh/sshd_config_20170209_old

 

cd /root/openssh-7.4p1

cp ssh_config /etc/ssh/ssh_config          #根据提示,输入y进行覆盖(若对原文件重命名,则无需覆盖)

cp -p sshd_config /etc/ssh/sshd_config         #根据提示,输入y进行覆盖(若对原文件重命名,则无需覆盖

 

(3)查看安装后openssh版本

ssh -V


(4)设置允许root用户登录(openssh升级后,root默认被禁用)

打开vi /etc/ssh/sshd_config文件,将PermitRootLogin设置为yes


(5)重启SSH

service sshd restart

(6)重启机器

十、停止telnet服务

待确认新升级的OpenSSH版本可以正常使用时,然后停止telnet服务

1.修改配置文件

将vi /etc/xinetd.d/telnet文件中的disable         = no修改为disable         = yes

 

2.设置telnet开机不启动

chkconfig  xinetd off

 

3.关闭telnet服务

/etc/init.d/xinetd stop 

 

4.开启防火墙并设置开机自动启动

service iptables start

chkconfig iptables on