由于升级OpenSSH涉及到安全性问题,为保险起见,在升级前最好安装telnet服务作为备用方案,然后在升级成功后再停止telnet即可。
一、OpenSSH升级相关源码包下载地址
<code>zlib http://www.zlib.net/zlib-1.2.11.tar.gz</code>
<code>zlib其他版本下载地址 http://www.zlib.net/fossils/</code>
<code>openssl-fips http://www.openssl.org/source/openssl-fips-2.0.16.tar.gz</code>
<code>OpenSSL http://www.openssl.org/source/openssl-1.0.2m.tar.gz</code>
<code>OpenSSH https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz</code>
安装依赖包
yum -y install gcc pam-devel zlib-devel openssl-devel telnet*
注:官网说明openssh7.6p1依赖的openssl的版本为>1.0.1e 并且 < 1.1.0
二、编译相关源码包
yum install -y zlib(若系统已安装可不用执行此步骤),这里我是采用的编译安装zlib
1、安装zlib
解压
<code>tar</code><code>-xvf zlib-1.2.11.</code><code>tar</code><code>.gz </code>
<code>cdzlib-1.2.11</code>
<code>.</code><code>/configure</code>
<code>make</code>
<code>makeinstall</code>
查看
ll/usr/local/lib
2、安装openssl-fips
此为FIPS140-2 support module for openssl, 具体说明参见http://www.openssl.org/docs/fips
<code>[root@baby openssl-fips-2.0.16]</code><code># tar zxpf openssl-fips-2.0.16.tar.gz</code>
<code># cd openssl-fips-2.0.16</code>
<code># ./config</code>
<code># make && make install</code>
生成路径在:
/usr/local/ssl/fips-2.0/
3、安装openssl
这里安装openssl需要注意编译安装的方法,是否结合fips模块,有如下两种方法:
3.1、升级openssl为1.0.2m,未结合fips模块编译
<code># tar -xf openssl-1.0.2m.tar.gz</code>
<code># cd openssl-1.0.2m</code>
<code>[root@localhost openssl-1.0.2m]</code><code># ./config --prefix=/usr --openssldir=/usr/ shared zlib</code>
<code>需带上–shared参数 否则会出现头文件和库文件不匹配</code>
<code>#make</code>
由于我使安装在原路径下,所以我将旧的配置文件挪了一下位置
<code>mv</code> <code>/usr/bin/openssl</code> <code>/usr/bin/openssl</code><code>.oldbak</code>
<code>mv</code> <code>/usr/include/openssl</code> <code>/usr/include/openssl</code><code>.oldbak</code>
<code> </code><code>[root@baby openssl-1.0.2m]</code><code>#make install</code>
查看是否升级成功
<code># openssl version -a | openssl version</code>
<a href="https://s3.51cto.com/oss/201711/16/1ce2fc73dbfe3ed1517621649dc45248.jpg-wh_500x0-wm_3-wmp_4-s_1545717580.jpg" target="_blank"></a>
<a href="https://s1.51cto.com/oss/201711/16/3a47f0d43125614ee82e040f24ecf831.jpg-wh_500x0-wm_3-wmp_4-s_3096174624.jpg" target="_blank"></a>
3.2、升级openssl为1.0.2m-fips,结合fips进行编译,编译参数如下:
<code>[root@localhost openssl-1.0.2m]# ./config fips --prefix=/usr --openssldir=/usr/ shared zlib</code>
<code>将旧的配置文件挪了一下位置:</code>
<code>mv /usr/bin/openssl /usr/bin/openssl.oldbak</code>
<code>mv /usr/include/openssl /usr/include/openssl.oldbak</code>
<code>[root@baby openssl-1.0.2m]#make install</code>
<a href="https://s5.51cto.com/oss/201711/16/09e79180cc5a06028967954ae4916320.jpg-wh_500x0-wm_3-wmp_4-s_1459861968.jpg" target="_blank"></a>
<a href="https://s5.51cto.com/oss/201711/16/0e7d2cdc71609bc0741c69e01b2146df.jpg-wh_500x0-wm_3-wmp_4-s_720663596.jpg" target="_blank"></a>
至此已全部完成OpenSSL的升级工作
4、安装openssh
<code>wget https:</code><code>//fastly</code><code>.cdn.openbsd.org</code><code>/pub/OpenBSD/OpenSSH/portable/openssh-7</code><code>.6p1.</code><code>tar</code><code>.gz</code>
<code>[root@localhost~]</code><code># cd openssh-7.6p1</code>
<code>[[email protected]]</code><code># ./configure --prefix=/usr --sysconfdir=/etc/ssh</code>
<code>完成后执行</code><code>make</code><code>:</code>
<code>[root@bogon openssh-7.6p1]</code><code># make</code>
make完成后先不要make install,备份旧的ssh并易名
<code>[[email protected]]</code><code># mv /etc/ssh/ /etc/sshbak</code>
或用下面,推荐用上面备份
make完成后先不要make install,先卸载旧版的openssh
<code>[root@bogon openssh-7.6p1]</code><code># rpm -e --nodeps `rpm -qa | grep openssh`</code>
完成后执行make install:
<code>[root@bogon openssh-7.6p1]</code><code># make install</code>
查看下安装结果:
[root@bogon openssh-7.6p1]# ssh -V
至此编译全部安装完成
三、ssh相关配置
1、配置sshd服务:
复制启动文件到/etc/init.d/下并命名为sshd(原先存在旧启动脚本备份易名):
<code>[root@bogon openssh-7.6p1]</code><code># cp contrib/redhat/sshd.init /etc/init.d/sshd</code>
加入开机启动:
<code>[root@bogon openssh-7.6p1]</code><code># chkconfig --add sshd</code>
2、配置允许root使用ssh:
openssh7.6后默认root用户是不能用ssh远程登录的(但普通用户是可以ssh远程登录的),需要修改配置文件:
<code>[root@bogon openssh-7.6p1]# vim /etc/ssh/sshd_config</code>
<code>找到#PermitRootLoginprohibit-password项,去掉注释并把prohibit-password改为yes</code>
<code>PermitRootLogin yes</code>
<code>配置允许root用户远程登录</code>
这一操作很重要!很重要!很重要!重要的事情说三遍,因为openssh安装好默认是不执行sshd_config文件的,所以即使在sshd_config中配置允许root用户远程登录,但是不加上这句命令,还是不会生效!
<code>vim </code><code>/etc/init</code><code>.d</code><code>/sshd</code>
<code>在 ‘$SSHD $OPTIONS &&success || failure’这一行上面加上一行如下:</code>
<code>{OPTIONS=</code><code>"-f /etc/ssh/sshd_config"</code><code>}</code>
<a href="https://s2.51cto.com/oss/201711/10/948b46bd648390bb8945bd1127079cf4.jpg-wh_500x0-wm_3-wmp_4-s_2213813838.jpg" target="_blank"></a>
保存退出
重启ssh服务:
<code>[root@bogon openssh-7.6p1]</code><code># service sshd restart</code>
至此升级/安装完成。
AllowUsers tom
本文转自ling118 51CTO博客,原文链接:http://blog.51cto.com/meiling/1980733,如需转载请自行联系原作者