文章目录

  • Linux升级OpenSSL和OpenSSH
  • 一、软件版本
  • 二、升级OpenSSL和OpenSSH
  • 1.安装依赖包
  • 2.安装OpenSSL
  • 3.安装OpenSSH
  • 其它
  • 1.报错一
  • 2.报错二
  • 3.在线更新OpenSSL软件包


Linux升级OpenSSL和OpenSSH

  • 解决一些已知的 CVE 漏洞,比如:CVE-2011-1473、CVE-2015-8325、CVE-2016-10012、CVE-2018-15473 等

一、软件版本

  • OpenSSL版本:openssl-1.1.1c.tar.gz
  • OpenSSH版本:openssh-8.0p1.tar.gz

其它:
Linux发行版:CentOS-7-x86_64-DVD-1804.iso

rpm依赖包下载:https://pkgs.org/

OpenSSL下载:https://www.openssl.org/source/

OpenSSH下载:http://www.openssh.com/releasenotes.html

二、升级OpenSSL和OpenSSH

1.安装依赖包

  • 相关软件包

gcc、gcc-c++、glibc、make、autoconf、automake、zlib、zlib-devel、pcre-devel、pam-devel

openssl、openssl-devel、openssl-libs

  • 检查是否安装
# rpm -qa | grep gcc
  • [在线安装]软件包
# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel pam-devel
# yum install -y openssl openssl-devel openssl-libs
  • [离线安装]除了需要下载以上软件包外,还要下载与软件包关联的依赖包(安装软件包时,系统会提示需要先安装相关的依赖包)
  • 经过检查,只有 pcre-devel 和 openssl-devel 没有安装(具体看本地环境)
  • rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm (先下载软件包,在运行指令安装)
  • openssl-libs 可以下载与当前系统中 openssl 版本相同的软件包进行安装,或者同时下载 openssl、openssl-devel、openssl-libs 三个软件包进行更新安装

备用(强制批更新安装):rpm -Uvh *.rpm --nodeps --force

2.安装OpenSSL

  • 解压,并进入根目录
# tar -zxvf openssl-1.1.1c.tar.gz
# cd openssl-1.1.1c/
  • 开始安装
# ./config --prefix=/usr/local/openssl
# make && make install
#-- 输出 0 ,说明上面 make install 没有报错
# echo $?

# mv /usr/bin/openssl /usr/bin/openssl.bak
# ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
# echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
# ldconfig -v

#-- 查看版本
# openssl version

3.安装OpenSSH

  • 解压,并进入根目录
# tar -zxvf openssh-8.0p1.tar.gz
# cd openssh-8.0p1/
  • 开始安装
# rm -rf /etc/ssh/*
# ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl --with-zlib --with-md5-passwords --with-pam && make && make install
#-- 输出 0 ,说明上面 make install 没有报错
# echo $?
#-- 修改配置文件
# vim /etc/ssh/sshd_config

PermitRootLogin yes

UseDNS no

#-- 将原来的 sshd 文件删除或移动
# mkdir /root/upload/backup
# mv /usr/lib/systemd/system/sshd.service /root/upload/backup

# cp -a contrib/redhat/sshd.init /etc/init.d/sshd
# cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
# chmod +x /etc/init.d/sshd
# chkconfig --add sshd
# systemctl enable sshd
#-- 开机自启动
# chkconfig sshd on

#-- 查看版本
# ssh -V
  • 管理命令
# systemctl stop sshd
# systemctl start sshd
# systemctl restart sshd

# netstat -lntp

# /etc/init.d/sshd stop
# /etc/init.d/sshd start
# /etc/init.d/sshd restart

其它

1.报错一

configure: error: *** OpenSSL headers missing - please install first or check config.log ***

  • 解决:

yum install -y openssl-devel

2.报错二

configure: error: PAM headers not found

  • 解决:

yum install -y pam-devel

3.在线更新OpenSSL软件包

  • 为分析 openssl 的依赖关系提供参考
# yum install -y openssl
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 openssl.x86_64.1.1.0.2k-16.el7 将被 升级
---> 软件包 openssl.x86_64.1.1.0.2k-16.el7_6.1 将被 更新
--> 正在处理依赖关系 openssl-libs(x86-64) = 1:1.0.2k-16.el7_6.1,它被软件包 1:openssl-1.0.2k-16.el7_6.1.x86_64 需要
--> 正在检查事务
---> 软件包 openssl-libs.x86_64.1.1.0.2k-16.el7 将被 升级
--> 正在处理依赖关系 openssl-libs(x86-64) = 1:1.0.2k-16.el7,它被软件包 1:openssl-devel-1.0.2k-16.el7.x86_64 需要
---> 软件包 openssl-libs.x86_64.1.1.0.2k-16.el7_6.1 将被 更新
--> 正在检查事务
---> 软件包 openssl-devel.x86_64.1.1.0.2k-16.el7 将被 升级
---> 软件包 openssl-devel.x86_64.1.1.0.2k-16.el7_6.1 将被 更新
--> 正在处理依赖关系 krb5-devel(x86-64),它被软件包 1:openssl-devel-1.0.2k-16.el7_6.1.x86_64 需要
--> 正在检查事务
---> 软件包 krb5-devel.x86_64.0.1.15.1-37.el7_6 将被 安装
--> 正在处理依赖关系 libkadm5(x86-64) = 1.15.1-37.el7_6,它被软件包 krb5-devel-1.15.1-37.el7_6.x86_64 需要
--> 正在处理依赖关系 krb5-libs(x86-64) = 1.15.1-37.el7_6,它被软件包 krb5-devel-1.15.1-37.el7_6.x86_64 需要
--> 正在处理依赖关系 libverto-devel,它被软件包 krb5-devel-1.15.1-37.el7_6.x86_64 需要
--> 正在处理依赖关系 libselinux-devel,它被软件包 krb5-devel-1.15.1-37.el7_6.x86_64 需要
--> 正在处理依赖关系 libcom_err-devel,它被软件包 krb5-devel-1.15.1-37.el7_6.x86_64 需要
--> 正在处理依赖关系 keyutils-libs-devel,它被软件包 krb5-devel-1.15.1-37.el7_6.x86_64 需要
--> 正在检查事务
---> 软件包 keyutils-libs-devel.x86_64.0.1.5.8-3.el7 将被 安装
---> 软件包 krb5-libs.x86_64.0.1.15.1-19.el7 将被 升级
--> 正在处理依赖关系 krb5-libs(x86-64) = 1.15.1-19.el7,它被软件包 krb5-workstation-1.15.1-19.el7.x86_64 需要
---> 软件包 krb5-libs.x86_64.0.1.15.1-37.el7_6 将被 更新
---> 软件包 libcom_err-devel.x86_64.0.1.42.9-13.el7 将被 安装
--> 正在处理依赖关系 libcom_err(x86-64) = 1.42.9-13.el7,它被软件包 libcom_err-devel-1.42.9-13.el7.x86_64 需要
---> 软件包 libkadm5.x86_64.0.1.15.1-19.el7 将被 升级
---> 软件包 libkadm5.x86_64.0.1.15.1-37.el7_6 将被 更新
---> 软件包 libselinux-devel.x86_64.0.2.5-14.1.el7 将被 安装
--> 正在处理依赖关系 libselinux(x86-64) = 2.5-14.1.el7,它被软件包 libselinux-devel-2.5-14.1.el7.x86_64 需要
--> 正在处理依赖关系 libsepol-devel(x86-64) >= 2.5-10,它被软件包 libselinux-devel-2.5-14.1.el7.x86_64 需要
--> 正在处理依赖关系 pkgconfig(libsepol),它被软件包 libselinux-devel-2.5-14.1.el7.x86_64 需要
---> 软件包 libverto-devel.x86_64.0.0.2.5-4.el7 将被 安装
--> 正在检查事务
---> 软件包 krb5-workstation.x86_64.0.1.15.1-19.el7 将被 升级
---> 软件包 krb5-workstation.x86_64.0.1.15.1-37.el7_6 将被 更新
---> 软件包 libcom_err.x86_64.0.1.42.9-12.el7_5 将被 升级
--> 正在处理依赖关系 libcom_err(x86-64) = 1.42.9-12.el7_5,它被软件包 libss-1.42.9-12.el7_5.x86_64 需要
--> 正在处理依赖关系 libcom_err(x86-64) = 1.42.9-12.el7_5,它被软件包 e2fsprogs-libs-1.42.9-12.el7_5.x86_64 需要
--> 正在处理依赖关系 libcom_err(x86-64) = 1.42.9-12.el7_5,它被软件包 e2fsprogs-1.42.9-12.el7_5.x86_64 需要
---> 软件包 libcom_err.x86_64.0.1.42.9-13.el7 将被 更新
---> 软件包 libselinux.x86_64.0.2.5-12.el7 将被 升级
--> 正在处理依赖关系 libselinux(x86-64) = 2.5-12.el7,它被软件包 libselinux-python-2.5-12.el7.x86_64 需要
--> 正在处理依赖关系 libselinux(x86-64) = 2.5-12.el7,它被软件包 libselinux-utils-2.5-12.el7.x86_64 需要
---> 软件包 libselinux.x86_64.0.2.5-14.1.el7 将被 更新
--> 正在处理依赖关系 libsepol(x86-64) >= 2.5-10,它被软件包 libselinux-2.5-14.1.el7.x86_64 需要
---> 软件包 libsepol-devel.x86_64.0.2.5-10.el7 将被 安装
--> 正在检查事务
---> 软件包 e2fsprogs.x86_64.0.1.42.9-12.el7_5 将被 升级
---> 软件包 e2fsprogs.x86_64.0.1.42.9-13.el7 将被 更新
---> 软件包 e2fsprogs-libs.x86_64.0.1.42.9-12.el7_5 将被 升级
---> 软件包 e2fsprogs-libs.x86_64.0.1.42.9-13.el7 将被 更新
---> 软件包 libselinux-python.x86_64.0.2.5-12.el7 将被 升级
---> 软件包 libselinux-python.x86_64.0.2.5-14.1.el7 将被 更新
---> 软件包 libselinux-utils.x86_64.0.2.5-12.el7 将被 升级
---> 软件包 libselinux-utils.x86_64.0.2.5-14.1.el7 将被 更新
---> 软件包 libsepol.x86_64.0.2.5-8.1.el7 将被 升级
---> 软件包 libsepol.x86_64.0.2.5-10.el7 将被 更新
---> 软件包 libss.x86_64.0.1.42.9-12.el7_5 将被 升级
---> 软件包 libss.x86_64.0.1.42.9-13.el7 将被 更新
--> 解决依赖关系完成

依赖关系解决

=======================================================================================
 Package                   架构         版本                       源             大小
=======================================================================================
正在更新:
 openssl                   x86_64       1:1.0.2k-16.el7_6.1        updates       493 k
为依赖而安装:
 keyutils-libs-devel       x86_64       1.5.8-3.el7                base           37 k
 krb5-devel                x86_64       1.15.1-37.el7_6            updates       271 k
 libcom_err-devel          x86_64       1.42.9-13.el7              base           31 k
 libselinux-devel          x86_64       2.5-14.1.el7               base          187 k
 libsepol-devel            x86_64       2.5-10.el7                 base           77 k
 libverto-devel            x86_64       0.2.5-4.el7                base           12 k
为依赖而更新:
 e2fsprogs                 x86_64       1.42.9-13.el7              base          699 k
 e2fsprogs-libs            x86_64       1.42.9-13.el7              base          167 k
 krb5-libs                 x86_64       1.15.1-37.el7_6            updates       803 k
 krb5-workstation          x86_64       1.15.1-37.el7_6            updates       816 k
 libcom_err                x86_64       1.42.9-13.el7              base           41 k
 libkadm5                  x86_64       1.15.1-37.el7_6            updates       178 k
 libselinux                x86_64       2.5-14.1.el7               base          162 k
 libselinux-python         x86_64       2.5-14.1.el7               base          235 k
 libselinux-utils          x86_64       2.5-14.1.el7               base          151 k
 libsepol                  x86_64       2.5-10.el7                 base          297 k
 libss                     x86_64       1.42.9-13.el7              base           46 k
 openssl-devel             x86_64       1:1.0.2k-16.el7_6.1        updates       1.5 M
 openssl-libs              x86_64       1:1.0.2k-16.el7_6.1        updates       1.2 M

事务概要
=======================================================================================
安装           (  6 依赖软件包)
升级  1 软件包 (+13 依赖软件包)

总计:7.3 M
总下载量:2.1 M
Downloading packages:
Delta RPMs reduced 1.5 M of updates to 266 k (82% saved)
(1/7): keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm               |  37 kB  00:00:00     
(2/7): libcom_err-devel-1.42.9-13.el7.x86_64.rpm                |  31 kB  00:00:00     
(3/7): krb5-devel-1.15.1-37.el7_6.x86_64.rpm                    | 271 kB  00:00:00     
(4/7): libsepol-devel-2.5-10.el7.x86_64.rpm                     |  77 kB  00:00:00     
(5/7): libselinux-devel-2.5-14.1.el7.x86_64.rpm                 | 187 kB  00:00:00     
(6/7): openssl-devel-1.0.2k-16.el7_1.0.2k-16.el7_6.1.x86_64.drp | 266 kB  00:00:00     
(7/7): libverto-devel-0.2.5-4.el7.x86_64.rpm                    |  12 kB  00:00:00     
Finishing delta rebuilds of 1 package(s) (1.5 M)
---------------------------------------------------------------------------------------
总计                                                      366 kB/s | 881 kB  00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
** 发现 2 个已存在的 RPM 数据库问题, 'yum check' 输出如下:
icedtea-web-1.7.1-1.el7.x86_64 有缺少的需求 java-1.8.0-openjdk
jline-1.0-8.el7.noarch 有缺少的需求 java >= ('0', '1.5', None)
  正在更新    : libcom_err-1.42.9-13.el7.x86_64                                   1/34 
  正在更新    : libsepol-2.5-10.el7.x86_64                                        2/34 
  正在更新    : libselinux-2.5-14.1.el7.x86_64                                    3/34 
  正在更新    : 1:openssl-libs-1.0.2k-16.el7_6.1.x86_64                           4/34 
  正在更新    : krb5-libs-1.15.1-37.el7_6.x86_64                                  5/34 
  正在更新    : libkadm5-1.15.1-37.el7_6.x86_64                                   6/34 
  正在更新    : libss-1.42.9-13.el7.x86_64                                        7/34 
  正在安装    : libsepol-devel-2.5-10.el7.x86_64                                  8/34 
  正在安装    : libselinux-devel-2.5-14.1.el7.x86_64                              9/34 
  正在安装    : libcom_err-devel-1.42.9-13.el7.x86_64                            10/34 
  正在更新    : e2fsprogs-libs-1.42.9-13.el7.x86_64                              11/34 
  正在安装    : libverto-devel-0.2.5-4.el7.x86_64                                12/34 
  正在安装    : keyutils-libs-devel-1.5.8-3.el7.x86_64                           13/34 
  正在安装    : krb5-devel-1.15.1-37.el7_6.x86_64                                14/34 
  正在更新    : 1:openssl-devel-1.0.2k-16.el7_6.1.x86_64                         15/34 
  正在更新    : e2fsprogs-1.42.9-13.el7.x86_64                                   16/34 
  正在更新    : krb5-workstation-1.15.1-37.el7_6.x86_64                          17/34 
  正在更新    : 1:openssl-1.0.2k-16.el7_6.1.x86_64                               18/34 
  正在更新    : libselinux-python-2.5-14.1.el7.x86_64                            19/34 
  正在更新    : libselinux-utils-2.5-14.1.el7.x86_64                             20/34 
  清理        : krb5-workstation-1.15.1-19.el7.x86_64                            21/34 
  清理        : 1:openssl-1.0.2k-16.el7.x86_64                                   22/34 
  清理        : e2fsprogs-1.42.9-12.el7_5.x86_64                                 23/34 
  清理        : 1:openssl-devel-1.0.2k-16.el7.x86_64                             24/34 
  清理        : libkadm5-1.15.1-19.el7.x86_64                                    25/34 
  清理        : 1:openssl-libs-1.0.2k-16.el7.x86_64                              26/34 
  清理        : krb5-libs-1.15.1-19.el7.x86_64                                   27/34 
  清理        : libselinux-utils-2.5-12.el7.x86_64                               28/34 
  清理        : e2fsprogs-libs-1.42.9-12.el7_5.x86_64                            29/34 
  清理        : libss-1.42.9-12.el7_5.x86_64                                     30/34 
  清理        : libselinux-python-2.5-12.el7.x86_64                              31/34 
  清理        : libselinux-2.5-12.el7.x86_64                                     32/34 
  清理        : libsepol-2.5-8.1.el7.x86_64                                      33/34 
  清理        : libcom_err-1.42.9-12.el7_5.x86_64                                34/34 
  验证中      : keyutils-libs-devel-1.5.8-3.el7.x86_64                            1/34 
  验证中      : krb5-workstation-1.15.1-37.el7_6.x86_64                           2/34 
  验证中      : libcom_err-devel-1.42.9-13.el7.x86_64                             3/34 
  验证中      : krb5-devel-1.15.1-37.el7_6.x86_64                                 4/34 
  验证中      : e2fsprogs-1.42.9-13.el7.x86_64                                    5/34 
  验证中      : libverto-devel-0.2.5-4.el7.x86_64                                 6/34 
  验证中      : krb5-libs-1.15.1-37.el7_6.x86_64                                  7/34 
  验证中      : 1:openssl-1.0.2k-16.el7_6.1.x86_64                                8/34 
  验证中      : libss-1.42.9-13.el7.x86_64                                        9/34 
  验证中      : libsepol-2.5-10.el7.x86_64                                       10/34 
  验证中      : 1:openssl-libs-1.0.2k-16.el7_6.1.x86_64                          11/34 
  验证中      : libsepol-devel-2.5-10.el7.x86_64                                 12/34 
  验证中      : 1:openssl-devel-1.0.2k-16.el7_6.1.x86_64                         13/34 
  验证中      : libselinux-python-2.5-14.1.el7.x86_64                            14/34 
  验证中      : e2fsprogs-libs-1.42.9-13.el7.x86_64                              15/34 
  验证中      : libselinux-utils-2.5-14.1.el7.x86_64                             16/34 
  验证中      : libkadm5-1.15.1-37.el7_6.x86_64                                  17/34 
  验证中      : libselinux-devel-2.5-14.1.el7.x86_64                             18/34 
  验证中      : libcom_err-1.42.9-13.el7.x86_64                                  19/34 
  验证中      : libselinux-2.5-14.1.el7.x86_64                                   20/34 
  验证中      : libselinux-python-2.5-12.el7.x86_64                              21/34 
  验证中      : 1:openssl-libs-1.0.2k-16.el7.x86_64                              22/34 
  验证中      : 1:openssl-devel-1.0.2k-16.el7.x86_64                             23/34 
  验证中      : libss-1.42.9-12.el7_5.x86_64                                     24/34 
  验证中      : krb5-workstation-1.15.1-19.el7.x86_64                            25/34 
  验证中      : 1:openssl-1.0.2k-16.el7.x86_64                                   26/34 
  验证中      : e2fsprogs-1.42.9-12.el7_5.x86_64                                 27/34 
  验证中      : e2fsprogs-libs-1.42.9-12.el7_5.x86_64                            28/34 
  验证中      : krb5-libs-1.15.1-19.el7.x86_64                                   29/34 
  验证中      : libsepol-2.5-8.1.el7.x86_64                                      30/34 
  验证中      : libcom_err-1.42.9-12.el7_5.x86_64                                31/34 
  验证中      : libselinux-2.5-12.el7.x86_64                                     32/34 
  验证中      : libselinux-utils-2.5-12.el7.x86_64                               33/34 
  验证中      : libkadm5-1.15.1-19.el7.x86_64                                    34/34 

作为依赖被安装:
  keyutils-libs-devel.x86_64 0:1.5.8-3.el7    krb5-devel.x86_64 0:1.15.1-37.el7_6      
  libcom_err-devel.x86_64 0:1.42.9-13.el7     libselinux-devel.x86_64 0:2.5-14.1.el7   
  libsepol-devel.x86_64 0:2.5-10.el7          libverto-devel.x86_64 0:0.2.5-4.el7      

更新完毕:
  openssl.x86_64 1:1.0.2k-16.el7_6.1                                                   

作为依赖被升级:
  e2fsprogs.x86_64 0:1.42.9-13.el7          e2fsprogs-libs.x86_64 0:1.42.9-13.el7      
  krb5-libs.x86_64 0:1.15.1-37.el7_6        krb5-workstation.x86_64 0:1.15.1-37.el7_6  
  libcom_err.x86_64 0:1.42.9-13.el7         libkadm5.x86_64 0:1.15.1-37.el7_6          
  libselinux.x86_64 0:2.5-14.1.el7          libselinux-python.x86_64 0:2.5-14.1.el7    
  libselinux-utils.x86_64 0:2.5-14.1.el7    libsepol.x86_64 0:2.5-10.el7               
  libss.x86_64 0:1.42.9-13.el7              openssl-devel.x86_64 1:1.0.2k-16.el7_6.1   
  openssl-libs.x86_64 1:1.0.2k-16.el7_6.1  

完毕!