title: 升级openssl及openssh至最新 #标题tags: openssl,openssh #标签
date: 2020-09-22
categories: linux大杂烩 # 分类

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

修复openssh漏洞,记录下openssl及openssh升级过程(操作系统为CentOS 7.5)。

升级注意事项

  • 注意openssl和openssh的版本必须兼容,否则可能会造成升级后无法ssh登录到主机。
  • 建议在生产上进行升级操作前,自己先在虚拟机做两遍,并且在升级后一定要重启一下主机,再测试是否可以ssh登录到主机,确保万无一失,尽量规避升级后不能ssh登录到生产主机上的问题。
  • 为了保险起见,如果生产上允许暂时开启telnet登录的话,建议在升级openssl/openssh前,先参考博文Centos 7.5开启telnet登录,开启telnet登录,以免ssh无法登录造成不必要的麻烦。

以上事项务必仔细阅读!!!

注:openssh-8.3p1和openssl-3.0.0-alpha3 不能协调工作,升级后,会造成ssh无法登录的问题(不要下载alpha版的任何软件)。

我同时升级为openssh-8.3p1、openssl-3.0.0-alpha3后,ssh登录访问返回如下信息:

升级openssl及openssh至最新 - 图1

官网有段信息如下(截图日期:2020-06-20):

升级openssl及openssh至最新 - 图2

查看当前版本

  1. $ ssh -V
  2. OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

安装依赖

  1. # 下载阿里云epel源
  2. $ wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  3. # 安装依赖
  4. $ yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel pam-devel openssl openssl-devel openssl-libs

升级openssl

  1. cd /usr/local/
  2. wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1g.tar.gz
  3. tar zxf OpenSSL_1_1_1g.tar.gz
  4. cd openssl-OpenSSL_1_1_1g/
  5. ./config --prefix=/usr/local/openssl_1_1_1g
  6. make && make install
  7. echo $? # 输出 0 ,说明 make install 没有报错
  8. 0
  9. # 备份并替换旧版本
  10. mv /usr/bin/openssl{,.bak$(date +%F)}
  11. ln -sf /usr/local/openssl_1_1_1g/bin/openssl /usr/bin/openssl
  12. echo "/usr/local/openssl_1_1_1g/lib" >> /etc/ld.so.conf
  13. ldconfig
  14. $ openssl version # 确认openssl已更新
  15. OpenSSL 1.1.1g 21 Apr 2020

升级openssh

  1. cd /usr/local/
  2. wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz
  3. tar zxf openssh-8.3p1.tar.gz
  4. mkdir /usr/local/backup
  5. mv /etc/ssh/* /usr/local/backup/
  6. cd openssh-8.3p1/
  7. ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/openssl_1_1_1g/include --with-ssl-dir=/usr/local/openssl_1_1_1g --with-zlib --with-md5-passwords --with-pam
  8. make && make install
  9. echo $? # 输出为0则表示make install正常
  10. 0
  11. $ vim /etc/ssh/sshd_config # 修改配置文件如下两处
  12. PermitRootLogin yes
  13. UseDNS no
  14. # 调整sshd服务启停
  15. mv /usr/lib/systemd/system/sshd.service /usr/local/backup/
  16. cp -a contrib/redhat/sshd.init /etc/init.d/sshd
  17. cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
  18. chmod +x /etc/init.d/sshd
  19. chkconfig --add sshd
  20. systemctl daemon-reload
  21. systemctl enable sshd
  22. systemctl restart sshd

确定版本均已升级

  1. $ ssh -V
  2. OpenSSH_8.3p1, OpenSSL 1.1.1g 21 Apr 2020

注:自行重启主机,再测试ssh是否可以正常登录。