OpenSSL 拒绝服务漏洞修复教程

2020年12月08日,OpenSSL官方发布安全公告,披露CVE-2020-1971 OpenSSL GENERAL_NAME_cmp 拒绝服务漏洞。不久收到了腾讯云官方推送的关于“OpenSSL 拒绝服务漏洞”的消息,这里不得不说腾讯主机安全(云镜)支持检测还是很给力不光可以检测还可以第一时间通知到你。


漏洞描述:

2020年12月08日,OpenSSL官方发布安全公告,披露CVE-2020-1971 OpenSSL GENERAL_NAME_cmp 拒绝服务漏洞。当两个GENERAL_NAME都包含同一个EDIPARTYNAME时,由于GENERAL_NAME_cmp函数未能正确处理,从而导致空指针引用,并可能导致拒绝服务。

CVE-2020-1971: OpenSSL 拒绝服务漏洞是一个高危漏洞,对于服务器应用安全会收到验证的威胁。受影响的版本:OpenSSL 1.1.1 ~ 1.1.1h和OpenSSL 1.0.2 ~ 1.0.2w。安全版本是OpenSSL 1.1.1i和OpenSSL 1.0.2x。


漏洞修复


第一步:查看版本

openssl版本查看

确定自己服务器的OpenSSL的版本使用openssl version命令进行查询如上图所示,看到本机的版本是“OpenSSL 1.0.2k-fips  26 Jan 2017”;然后核对一下是不是受影响的版本,不过既然做这件事就做彻底,不管是不是有影响版本,我们都对openssl服务进行一个升级。


第二步:下载最新版本


openssl最新版本

当前最新版本是openssl-1.1.1i.tar.gz (2020-Dec-08 14:39:04 ),下载方式有官网下载地址: https://www.openssl.org/source/  或者Github地址:

https://github.com/openssl/openssl/releases。推荐大家去官网进行下载,然后直接上传服务器,速度会比较快。我们把下载的安装包“openssl-1.1.1i.tar.gz”上传到服务器“/usr/local/src”目录。

第三步:编译安装

plaintext
1
2
3
4
5
6
7
8
                    [www.seeodd.cn@loacalhost root]$ cd /usr/local/src                        //切换到安装包上传位置
[www.seeodd.cn@loacalhost root]$ tar xzvf ./openssl-1.1.1i.tar.gz         //解压安装包,注意命令中的安装包的名称和安装包的名称需要一致
[www.seeodd.cn@loacalhost root]$ cd /usr/local/src/openssl-1.1.1i/        //切换到安装包解压目录
[www.seeodd.cn@loacalhost root]$ ./config                                 //执行编译
[www.seeodd.cn@loacalhost root]$ make
[www.seeodd.cn@loacalhost rootc]$ sudo make install
[www.seeodd.cn@loacalhost root]$ sudo mv /usr/bin/openssl /usr/bin/oldopenssl            //对旧版本openssl进行替换
[www.seeodd.cn@loacalhost root]$ sudo ln -s /usr/local/bin/openssl /usr/bin/openssl

linux安装程序的时候需要编译,需要多等待一会。执行到这一步基本上已经完成了,我们重复第一步操作查看openssl版本,查看是否成功升级了openssl版本。对于部分的机器会出现报错,提示信息“openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory”;遇到这种情况不要慌我们继续执行一下命令。

plaintext
1
2
                    [www.seeodd.cn@loacalhost root]$ sudo ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/
[www.seeodd.cn@loacalhost root]$ sudo ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/

然后继续在重复第一步查询一下openssl的版本,就可以知道是否成功升级了openssl。在升级的时候大家记得对服务器进行一个备份,对于意外情况下可以快速的进行一个恢复,这一点个人感觉腾讯云服务使用起来非常的棒,对于实例机器不仅提供漏洞警告的推送,同时提供50GB的免费快照空间,对于任何的大动作之前建立一份快照,就可以在意外情况中快速的回滚到备份点。

申明:本站内容仅代表个人观点,仅供学习参考;未经授权任何个人或组织单位不得复制、转载、摘编以及其它形式的应用!

本站文章可能使用到互联网上的资料,若对您造成困扰,请联系 kk19@foxmail.com除理

本文地址:https://www.chateach.com/it/huanjing/619

相关文章

  • 解决Incorrect result size: expected 1, actual 0异常

    Spring,queryForObject报错

    在Spring中使用queryForObject做数据库查询时出现如下异常Incorrect result size: expected 1, actual 0异常,是什么原因造成,如何解决呢?

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1785
    • Spring
    • queryForObject报错
  • springboot网站搭建部署详细流程

    springboot

    linux环境如何搭建java框架springboot,为大家演示一种快速简单的搭建springboot的方法。由于springboot是java的众多框架之一,因此需要部署好java的运行环境,即服务器安装好jdk18以及tomcat3,注意版本的兼容性。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1622
    • springboot
  • php如何检测mysql数据库连接正确

    mysql链接检测

    php下如何测试MYSQL数据库是否连接正常。分享一个快速检测数据库连接正确的方法,选择一张有数据的表,打印其中的一个参数。能够正常的输入数据库数据那么链接觉得没有问题。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1530
    • mysql链接检测
  • laravel如何封装函数全局调用

    laravel函数封装

    laravel如何封装函数,实现全局调用。我们就拿PHPAnalysis分词程序作为例子来演示下。PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1967
    • laravel函数封装
  • Java如何生成随机字符串

    Java字符串

    Java如何生成随机字符串,先定义一个基础字符串(即生成的每一个随机字符串里的每一个字符都要包含在这个基础字符串里面),包含字符"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1503
    • Java字符串
  • .gitignore不生效问题解决方法

    gitignore不生效

    git push的时候 .gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,或者用git status查看状态,想要忽略的文件还是显示被追踪状态。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1475
    • gitignore不生效
  • php如何匹配特定的汉字字母英文preg_match_all方法实现

    preg_match_all,php匹配字符串

    php如何从字符串匹配特点的内容,preg_match_all如何匹配字符串内容,数字、字符、字母,正则匹配,php正则表达式中preg_match_all函数的详解。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1316
    • preg_match_all
    • php匹配字符串
  • 原生AJAX请求实例教程

    AJAX

    如何使用原生javascript进行ajax数据请求呢?可以不重新加载整个网页通过刷新网页部分内容达到数据的更新展示。可以有效的降低对带宽的需求,提高网页的性能;Ajax有同步和异步两种实现方式。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1406
    • AJAX
  • 通过 Composer 安装laravel

    Composer ,laravel

    laravel的安装方式有很多种,推荐大家通过Composer安装laravel,下面是在linux系统中使用Composer安装laravel框架的方法。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1268
    • Composer
    • laravel
  • springBoot之Thymeleaf常见语法

    springBoot,Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1537
    • springBoot
    • Thymeleaf
  • 什么是html

    什么是html

    html,全称Hypertext Markup Language,也就是“超文本链接标示语言”。HTML文本是由 HTML命令组成的描述性文本,HTML 命令可以说明文字、 图形、动画、声音、表格、链

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1535
    • 什么是html
  • php获取当前时间操作

    php获取时间

    在PHP语言中我们如何获取当前时间呢?只要通过date()和time()函数组合使用实现。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1609
    • php获取时间
  • Springboot如何生成cookie,获取cookie信息

    Springboot,cookie

    Springboot如何生成cookie,获取cookie信息,cookie就是一个小体积的键值对,格式:key=value;客户端和服务器端,通常使用http协议来进行数据传输,而http协议是无状态的。也就是客户端向同一个服务器端发送的第一次Request和第二次Request,是没有关联的。需要cookie来保存一些用户信息,每次向相同的域名(domian)和路径(path)发送Request时都会携带cookie。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1471
    • Springboot
    • cookie
  • SpringBoot--Thymeleaf日期格式处理

    Thymeleaf,日期格式

    Thymeleaf作为众多模板引擎中的一种,我最初也是对它充满了陌生,在SpringBoot如何处理时间格式,SpringBoot--Thymeleaf日期格式处理。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1357
    • Thymeleaf
    • 日期格式
  • 什么是css语言

    什么是css

    CSS全称为Cascading Style Sheets(层叠样式表),中文翻译为“层叠样式表”,简称CSS样式表。它是一种用来表现HTML或 XML 等文件式样的计算机语言。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1396
    • 什么是css
  • vue 如何监听滚动至底部

    vue触底监听

    vue如何实现触底判断,实现无限加载等功能。当我们需要实现无限加载的时候,即实现瀑布流的功能的时候,核心就是监听页面的滚动事件,当滚动触底的时候去请求加载数据,既可以实现无限加载下拉。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1692
    • vue触底监听
  • php简介

    什么是php

    PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1620
    • 什么是php
  • php将多维数组根据某个键倒序/升序

    多维数组排序

    php将多维数组根据某个键倒序/升序,一维数组可以用一个简单的krsort() 函数进行升序排列,或者使用 arsort() 函数进行降序排列 。但是如何是多维数组那么情况就会复杂很多,没有可以直接实现多维数组按照某个键值进行排序的函数。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 2485
    • 多维数组排序