centos7环境下OpenSSL拒绝服务漏洞(CVE-2022-0778)
漏洞影响范围:
https://www.openssl.org/source/
查看系统版本、内核及openssl版本如下
[root@sdd ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
You have new mail in /var/spool/mail/root
[root@sdd ~]# uname -a
Linux sdd 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@sdd ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
[root@sdd ~]#
按照官网提示我们的openssl版本为OpenSSL 1.0.2k-fips,需要下载升级到最新的3.0.8版本;
下载最新版本3.0.8
[root@idss ~]# tar zvxf openssl-3.0.8.tar.gz
[root@idss ~]# cd openssl-3.0.5
1.先建配置文件夹
[root@idss openssl-3.0.8]# mkdir -p /usr/local/openssl
2.配置安装
./config --prefix=/usr/local/openssl
提示如下
[root@idss openssl-3.0.8]# ./config --prefix=/usr/local/openssl
/usr/bin/env: perl: No such file or directory
安装perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker,先下载需要安装的依赖包,然后使用rpm强制完成perl的安装,此方式可以离线拷贝文件到内网机器,进行perl安装
[root@idss ~]# mkdir -p myperl
[root@idss ~]# yum install --downloadonly --downloaddir=/root/myperl perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
[root@idss ~]# cd myperl
[root@idss myperl]# rpm -ivh *.rpm --force --nodeps
检查perl安装成功如下
[root@idss myperl]# perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
(with 44 registered patches, see perl -V for more detail)
Copyright 1987-2012, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
[root@idss ~]# mkdir -p mygcc
[root@sdd ~]# yum install --downloadonly --downloaddir=/root/mygcc gcc
[root@sdd ~]# cd /root/mygcc
[root@sdd mygcc]# rpm -ivh *.rpm --force --nodeps
检查gcc安装成功如下
[root@idss mygcc]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
[root@idss ~]# cd openssl-3.0.8
[root@idss openssl-3.0.8]# ./config --prefix=/usr/local/openssl/
显示如下,提示successfully就预编译成功了
[root@idss openssl-3.0.8]# ./config --prefix=/usr/local/openssl/
Configuring OpenSSL version 3.0.8 for target linux-x86_64
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
Created include/openssl/configuration.h
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL.md file first) ***
*** ***
**********************************************************************
接下来进行make编译和安装,时间会长一些
make && make install
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib/libssl.so.3
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib/libcrypto.so.3
ldconfig
执行过程如下
[root@idss openssl-3.0.8]# mv /usr/bin/openssl /usr/bin/openssl.old
[root@idss openssl-3.0.8]# mv /usr/include/openssl /usr/include/openssl.old
mv: cannot stat ‘/usr/include/openssl’: No such file or directory
[root@idss openssl-3.0.8]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
[root@idss openssl-3.0.8]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
[root@idss openssl-3.0.8]# ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib/libssl.so.3
[root@idss openssl-3.0.8]# ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib/libcrypto.so.3
[root@idss openssl-3.0.8]# ldconfig
[root@idss openssl-3.0.8]#
[root@idss openssl-3.0.8]# openssl version
OpenSSL 3.0.8 7 Feb 2023 (Library: OpenSSL 3.0.8 7 Feb 2023)
附件
perl安装包(我的主页下载,审核中,后续附上安装包连接)
gcc安装包(我的主页下载,审核中,后续附上安装包连接)