Linux Redhat 服务器 OpenSSH 漏洞修复 or 升级 OpenSSH 8.8_cve-2016-20012-程序员宅基地

技术标签: 运维  linux  服务器  ssh  

##@TOC

1. 情况说明:

近期甲方系统漏洞扫描,发现服务器存在一些漏洞如下:OpenSSH安全漏洞(CVE-2021-41617),OpenSSH命令注入漏洞(CVE-2020-15778),OpenSSH安全漏洞(CVE-2017-15906),OpenSSH安全漏洞(CVE-2019-6111),OpenSSH欺骗安全漏洞(CVE-2019-6110),OpenSSH欺骗安全漏洞(CVE-2019-6109),OpenSSH访问限制绕过漏洞(CVE-2018-20685),OpenSSH用户枚举漏洞(CVE-2018-15919),OpenSSH信息泄露漏洞(CVE-2020-14145),OpenSSH安全漏洞(CVE-2016-20012)。

相关漏洞还提供了参考解决方案:

漏洞 参考措施
OpenSSH安全漏洞(CVE-2021-41617) 厂商补丁:建议使用此软件的用户随时关注厂商主页或参考网址以获取解决办法; http://www.openssh.com/security.html
OpenSSH命令注入漏洞(CVE-2020-15778) 厂商补丁:目前暂未发布修复措施解决此安全问题,建议使用此软件的用户随时关注厂商主页或参考网址以获取解决办法;http://www.openssh.com/ 临时缓解措施:可以禁用scp,改用rsync等缓解风险(可能会导致小文件机器内拷贝变慢)
OpenSSH安全漏洞(CVE-2017-15906) 厂商补丁:目前厂商已发布升级补丁以修复漏洞,补丁获取链接:https://www.openssh.com/txt/release-7.6
OpenSSH安全漏洞(CVE-2019-6111) 厂商补丁:目前厂商已发布升级补丁以修复漏洞,详情请关注厂商主页:https://www.openssh.com/
OpenSSH欺骗安全漏洞(CVE-2019-6110) 厂商补丁:OpenSSH 目前厂商已发布了升级补丁以修复这个安全问题,请到厂商的主页下载:https://www.openssh.com/ 参考:https://vigilance.fr/vulnerability/OpenSSH-scp-PuTTY-PSCP-spoofing-via-Scp-Client-ANSI-Codes-stderr-File-Hidding-28262
OpenSSH欺骗安全漏洞(CVE-2019-6109) 厂商补丁:OpenSSH 目前厂商已发布了升级补丁以修复这个安全问题,请到厂商的主页下载:https://www.openssh.com/ 参考:https://vigilance.fr/vulnerability/OpenSSH-scp-PuTTY-PSCP-spoofing-via-Scp-Client-ANSI-Codes-stderr-File-Hidding-28261
OpenSSH访问限制绕过漏洞(CVE-2018-20685) 厂商补丁:OpenSSH 目前厂商已发布了升级补丁以修复这个安全问题,请到厂商的主页下载: https://www.openssh.com/ https://github.com/openssh/openssh-portable/commit/6010c0303a422a9c5fa8860c061bf7105eb7f8b2 https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/scp.c.diff?r1=1.197&r2=1.198&f=h
OpenSSH用户枚举漏洞(CVE-2018-15919) 修复版本:openssh > 7.8版本 厂商升级:OpenSSH 请用户关注OpenBSD官方发布的补丁修复漏洞: https://www.openssh.com/ https://www.openssh.com/portable.html
OpenSSH信息泄露漏洞(CVE-2020-14145) 厂商补丁:OpenBSD 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本。 http://www.openbsd.org/security.html
OpenSSH安全漏洞(CVE-2016-20012) 厂商补丁:目前厂商暂未发布修复补丁,请及时关注厂商最新公告。

2. 查看相关软件版本、漏洞说明

查看服务器系统版本。

$ cat /proc/version
>> Linux version 4.4.0-19041-Microsoft ([email protected]) (gcc version 5.4.0 (GCC) ) #488-Microsoft Mon Sep 01 13:43:00 PST 2020

备注:本机测试采用的是Win10商店的Ubuntu。甲方服务器系统版本是 Linux 3.10.0 RedHat 4.8.5 。亲测,两种系统均可以按照如下流程,成功升级OpenSSH_8.8p1

查看OpenSSH版本。

$ ssh -V
>> OpenSSH_7.4p1, OpenSSL 1.0.2k-fips   21 Jun 2017

查看漏洞详情

在这个链接结尾加上漏洞编号,可以查看官方漏洞说明和解决方案。https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE--*
查了不少链接和博客,发现好多漏洞只影响低版本的OpenSSH,在高版本的OpenSSH上已经修复了,所以后续内容暂且关注如何离线升级 OpenSSH 至 OpenSSH 8.8p1

---- CVE-2021-41617
安全版本:OpenSSH >= 8.8
修复建议:升级到OpenSSH最新安全版本
---- CVE-2020-15778
影响:无 - 不再被视为漏洞。 解决方法:目前没有。
禁用scp,使用 rsync 缓解风险
或者 升级到OpenSSH 8.3p1之后的版本
---- CVE-2019-6111
对于稳定发行版(stretch),这些问题已在版本 1: 7.4p1-10+deb9u5 中修复。
我们建议您升级您的 openssh 软件包。
---- CVE-2019-6110
---- CVE-2019-6109
对于稳定发行版(stretch),这些问题已在版本 1: 7.4p1-10+deb9u5 中修复。
我们建议您升级您的 openssh 软件包。
…………

3. 下载相关软件包

升级OpenSSH的过程需要依赖ZLIBPerlOpenSSL,升级OpenSSL可能会报错,可能还需要依赖PAM。所以先要离线下载这些依赖对应的包:zlib-1.2.12.tar.gzperl-5.16.1.tar.gzLinux-PAM-1.3.1.tar.xzopenssl-1.1.1p.tar.gzopenssh-8.8p1.tar.gz。(安装顺序)
源码包下载地址:

zlib-1.2.12.tar.gz:

zlib:http://www.zlib.net/
zlib下载地址

perl-5.16.1.tar.gz:

perl: http://www.cpan.org/src/5.0/
在这里插入图片描述

Linux-PAM-1.3.1.tar.xz:

PAM: https://www.linuxfromscratch.org/blfs/view/9.0/postlfs/linux-pam.html
在这里插入图片描述

openssl-1.1.1p.tar.gz:

OpenSSL: https://www.openssl.org/source/
在这里插入图片描述

openssh-8.8p1.tar.gz:

OpenSSH: http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
在这里插入图片描述

**注意:**

建议按照如下顺序安装,否则 可能因缺少依赖报错
建议将上述安装包放到 /home/apps 路径下,并且以 root 用户进行升级操作。

4. 安装/升级 zlib

$ tar -xzvf zlib-1.2.12.tar.gz
$ cd zlib-1.2.12
$ ./configure --prefix=/usr/local/zlib
$ make && make install

5. 安装/升级 Perl

$ tar -xzf perl-5.16.1.tar.gz
$ cd perl-5.16.1
$ ./Configure -de
$ make && make install
# 如下命令查看是否安装成功,查看perl版本
$ perl -v

6. 安装pam-devel

$ sudo tar -xf Linux-PAM-1.3.1.tar.xz
$ cd Linux-PAM-1.3.1
$ ./configure 
$ make && make install

7. 安装/升级 openssl

$ openssl version -a
$ tar -zxvf openssl-1.1.1p.tar.gz
$ cd openssl-1.1.1p
$ ./config --prefix=/usr/local/ssl -d shared
## make
## make test
## make install
$ make && make install
$ echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
$ ldconfig -v

8. 安装/升级 openssh

$ tar -zxvf openssh-8.8p1.tar.gz
$ cd openssh-8.8p1
$ sudo ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
## ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd
$ sudo make clean && sudo make && sudo make install

# sshd_config 文件 修改
$ echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
$ echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
$ echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config

# 备份原有文件,并将新的配置复制到指定目录
$ mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
$ cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
$ mv /usr/sbin/sshd /usr/sbin/sshd.bak
$ cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
$ mv /usr/bin/ssh /usr/bin/ssh.bak
$ cp /usr/local/openssh/bin/ssh /usr/bin/ssh
$ mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
$ cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
$ mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
$ cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

# 【这几句我在自己测试的时候并不需要执行】
# OpenSSH安装后环境配置:在openssh编译目录, 执行如下命令: 
# install -v -m755 contrib/ssh-copy-id /usr/bin
# install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
# install -v -m755 -d /usr/share/doc/openssh-****
# install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-****

# 验证是否升级成功
$ ssh -V  
>> OpenSSH_8.8p1, OpenSSL 1.1.1p  21 Jun 2022

# 重启sshd服务  
$ systemctl restart sshd.service
# 或者
$ systemctl restart sshd

验证是否升级成功
在这里插入图片描述
注意重启sshd服务的命令运行之后,需要重新远程连接服务器。

9. 可能的报错 及 解决办法

1. configure: error: *** zlib.h missing - please install first or check config.log ***

原因是缺少 zlib ,或者 zlib安装未成功
解决方案: 重新按照 步骤 4. 安装/升级 zlib

$ tar zxf zlib***.tar.gz
$ cd zlib-***/
$ ./configure
$ make test
$ make install
$ make clean
$ ./configure --shared
$ make test
$ make install
$ cp zutil.h /usr/local/include/
$ cp zutil.c /usr/local/include/

2. 若报错bin/openssl: relocation error: bin/openssl: symbol EVP_mdc2 version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference

解决方案:

  1. 在/etc/ld.so.conf.d/libc.conf 文件中添加一行 /usr/lib
  2. 运行 ldconfig 命令
$ echo '/usr/lib ' >> /etc/ld.so.conf.d/libc.conf
$ ldconfig

3. 若报错 configure: error: PAM headers not found

原因是缺少PAM,或者 pam安装失败
解决方案:

  1. 联网安装 yum -y install pam-devel
  2. 离线安装 pam-devel , 参考 步骤6. 安装pam-devel
$ echo '/usr/lib ' >> /etc/ld.so.conf.d/libc.conf
$ ldconfig

4. make && make install出现recipe for target ‘install-binPROGRAMS’ failed

原因:权限不足
解决方法:

  1. cd … 到上层目录,或更上层,例如/usr/目录
  2. 给存放代码/包的目录加权限,以/usr/apps/目录为例:
$ cd /usr/
$ sudo chmod -R 777 /usr/apps/

5. 运行make命令的时候报错:Makefile:638: recipe for target ‘xxxxxxx’ failed make: *** [xxxxxx] Error 1

原因:./configure之后,由于运行make时候的权限或者其他原因,导致了make或make install 失败,需要重新操作。
解决方案:

  1. 执行 make clean 清除上一次生成的可执行文件,再次执行 make 等命令,大概率可以解决
$ make clean
$ sudo make && sudo make install 

参考链接



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/s619782146/article/details/125533781

智能推荐

图形学基础|景深效果(Depth of Field/DOF)_dof 景深-程序员宅基地

文章浏览阅读9.2k次,点赞19次,收藏51次。图形学基础|景深效果(Depth of Field/DOF)文章目录图形学基础|景深效果(Depth of Field/DOF)一、前言二、景深效果2.1 物理原理2.2 弥散圆量化三、景深实现3.1 非物理的简单实现3.2 基于物理的景深效果参考博文一、前言**景深(DOF)**是模拟摄像机镜头对焦特性的一种常见的后处理效果。在现实生活中,相机只能对特定距离内的物体进行锐利的聚焦,离相机较近或较远的物体会有些失焦。模糊不仅提供了一个关于物体距离的视觉提示,还引入了焦外成像(Bokeh,散景)。_dof 景深

linux内核编译无线网卡,mini 6410编译无线网卡(RT2571芯片)驱动到内核-程序员宅基地

文章浏览阅读235次。桌面系统:Ubuntu 10.10内核版本:Linux 2.6.28.6交叉工具链:arm-linux-gcc4.4.1gcc版本: 4.4.51.解压内核tar xzvf linux2.6.28.6.tar.gz2.进入内核cd linux2.6.28.63.选择编译内核的配置文件cp config_mini6410_n43 .configmake menuconfig选择 Networking..._linux rt2571

Unity Shader总结(十六)——PBS(环境光照、实时光源、反射探针 )_unity shader 光照探针采样-程序员宅基地

文章浏览阅读935次。文章目录金属工作流高光反射工作流光照面板反射探针探针类型互相反射要先在Edit–Project Settings–Player–Other Settings–Color Space中选择Linear,因为基于物理的渲染需要使用线性空间;金属高光反射强,非金属漫反射强金属工作流Albedo对应物体的整体颜色高光反射工作流Albedo定义了表面的漫反射强度;光照面板mode中实时光照比较耗费性能,改为baked会将光照效果烘焙到光照纹理(lightmap)中,但动态的物体的阴影无法改变,最_unity shader 光照探针采样

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.dakun.ji-程序员宅基地

文章浏览阅读2.3w次。Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.dakun.jianzhong.client.AppPictureService]: Constructor threw exception; nested exception is java.lang.NullPo..._caused by: org.springframework.beans.beaninstantiationexception: failed to i

windows10安装caffe-cpu并配置python接口_caffe_cpu-程序员宅基地

文章浏览阅读1k次。windows10环境下安装caffe-cpu安装前提cmake编译器(下载最新版,因为安装caffe有版本限制,所以这里直接下载最新版就行了),可以在官网下载:链接: cmake.python3.5或python2.7,因为caffe现在只支持这两个版本,网上有很多使用python3.7的,但是试了很久没成功。python的安装建议使用anaconda,但是现在anaconda默认安装最..._caffe_cpu

【mac----pycharm使用】之golang插件安装_pycharm go插件-程序员宅基地

文章浏览阅读4.7k次。【写在前面的话】:鉴于最近公司算法推荐相关的项目都是go语言写的,所以需要在mac本的pycharm上安装golang插件,方便查看、开发、测试代码。但是可惜的是:IDEA发布了GoLand这个新的IDE for GoLang,所以原来可以用的Go插件在现在的PyCharm 2018.2上都不能用了。详细可以参考这篇文章废话不多说:下面是参考上面文章自己的安装过程。1、下载一个Go..._pycharm go插件

随便推点

MFC_把opencv的namewindow嵌入MFC的PictureControl控件_mfc启动opencv namewindow-程序员宅基地

文章浏览阅读754次。刚才遇到了一个问题,选择文件播放的时候,namewindow的大小和picture控件大小不一样的问题,原来的代码如下://CWnd *pWnd1 = GetDlgItem(IDC_STATIC_PIC);//CWnd是MFC窗口类的基类,提供了微软基础类库中所有窗口类的基本功能。//pWnd1->GetClientRect(&rect1);//GetClientRect为获得..._mfc启动opencv namewindow

GG and MM HDU - 3595_a - gg and mm-程序员宅基地

文章浏览阅读145次。题解:Every_SG2,Every-SG 定义: 1,Every-SG 游戏规定,对于还没有结束的单一游戏,游戏者必须对该游 戏进行一步决策,也就是每轮操作要对所有单一游戏进行操作。 2,Every-SG 游戏的其他规则与普通SG游戏相同。 定理: 对于Every-SG 游戏先手必胜当且..._a - gg and mm

解决vue中的报错:Error in mounted hook: “TypeError: handler.call is not a function“_vue.esm.js?65d7:5105 [vue warn]: error in mounted -程序员宅基地

文章浏览阅读3.1w次,点赞7次,收藏6次。Error in mounted hook: “TypeError: handler.call is not a function”在进入vue组件页面时,后台显示错误Error in mounted hook: “TypeError: handler.call is not a function”具体如下图所示:报错原因:生命周期钩子函数mounted: {}是否有声明了未定义方法或是只声名了钩子函数。解决方案:1.将mounted: {} 删除掉2. 将mounted: {} 改_vue.esm.js?65d7:5105 [vue warn]: error in mounted hook: "typeerror: this.get

ClickHouse 系列教程五:多种连接方法_clickhouse连接-程序员宅基地

文章浏览阅读3.6w次。文章目录clickhouse-clientHTTP 接口JDBCPython接口clickhouse-client你可以通过clickhouse-client命令行进行连接,使用方法如下:clickhouse-client --multiline --passwordHTTP 接口你可以通过HTTP直接连上ClickHouse:root@ubuntu:~# curl 'http:/..._clickhouse连接

Luci中cbi控件类型总结-程序员宅基地

文章浏览阅读391次。转自:http://blog.chinaunix.net/uid-28413840-id-4654479.名称描述继承自模板NamedSectionA fixed configuration section defined by its nameNamedSection = class(AbstractSection)cbi/nsection..._cbi控件

java面试题超详细讲解《多线程篇》二_多线程题讲解-程序员宅基地

文章浏览阅读80次。单例模式双重校验锁实现对象单例(线程安全)public class Singleton { private volatile static Singleton uniqueInstance; private Singleton() { } public static Singleton getUniqueInstance() { //先判断对象是否已经实例过,没有实例化过才进入加锁代码 if (uniqueInstance == ..._多线程题讲解

推荐文章

热门文章

相关标签