SSL/TLS协议信息泄露漏洞修复

概述:CVE-2016-2183 是一个涉及 SSL/TLS 协议信息泄露的漏洞,也被称为 "SWEET32" 攻击。该漏洞利用了某些对称加密算法(如 3DES)的弱点,攻击者可以通过捕获和分析大量的加密流量,可能会恢复明文数据。

目录

[1. 升级算法](#1. 升级算法)

[1.1 更新 OpenSSL 配置](#1.1 更新 OpenSSL 配置)

[1. 使用 yum 更新系统](#1. 使用 yum 更新系统)

[2. 检查 OpenSSL 版本](#2. 检查 OpenSSL 版本)

[3. 更新 OpenSSL](#3. 更新 OpenSSL)

[4. 从源代码编译 OpenSSL(可选)](#4. 从源代码编译 OpenSSL(可选))

[5. 验证安装](#5. 验证安装)

[2. 配置服务器](#2. 配置服务器)

[2.1配置 Web 服务器](#2.1配置 Web 服务器)

2.2重启服务

检查和更新系统

验证安装

[更新 Nginx 配置](#更新 Nginx 配置)

3.扫描验证


1. 升级算法

为了防止被 SWEET32 攻击利用,应该在服务器配置中禁用 3DES 加密算法。可以通过更新 OpenSSL 和相关服务的配置文件来实现。

1.1 更新 OpenSSL 配置

1. 使用 yum 更新系统

首先,尝试更新系统并升级所有现有软件包:

复制代码
sudo yum update

2. 检查 OpenSSL 版本

确认当前系统中的 OpenSSL 版本:

复制代码
openssl version

3. 更新 OpenSSL

如果 yum 仓库中有更新的 OpenSSL 版本,使用以下命令进行安装:

复制代码
sudo yum install openssl openssl-devel

如果没有可用的更新版本,并且需要更高版本的 OpenSSL,可以考虑从源代码编译安装最新的 OpenSSL 版本:

4. 从源代码编译 OpenSSL(可选)

注意: 从源代码编译安装软件包是有风险的,请确保备份重要数据。

复制代码
# 安装所需的编译工具和依赖项
sudo yum groupinstall 'Development Tools'
sudo yum install perl-core zlib-devel

# 下载并解压 OpenSSL 源代码
wget https://www.openssl.org/source/openssl-1.1.1v.tar.gz
tar -zxf openssl-1.1.1v.tar.gz
cd openssl-1.1.1v

# 配置并编译安装 OpenSSL
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make
sudo make install

# 备份原有的 OpenSSL 可执行文件,并更新为新的版本
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

# 更新库文件路径
sudo sh -c "echo '/usr/local/openssl/lib' > /etc/ld.so.conf.d/openssl.conf"
sudo ldconfig -v

如果下载不了:https://cloud.189.cn/t/YJre2aAzEvEr (访问码:8eik)

5. 验证安装

再次检查 OpenSSL 版本以确认升级成功:

复制代码
openssl version

2. 配置服务器

2.1配置 Web 服务器

Apache HTTPD : 如果你使用的是 Apache,可以通过修改 /etc/httpd/conf.d/ssl.conf 文件来禁用 3DES。

复制代码
sudo vi /etc/httpd/conf.d/ssl.conf

找到 SSLCipherSuite 这一行,并将其修改为:

复制代码
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

Nginx : 如果你使用的是 Nginx,可以通过修改 /etc/nginx/nginx.conf 文件来禁用 3DES。

复制代码
sudo vi /etc/nginx/nginx.conf

找到 ssl_ciphers 这一行,并将其修改为:

复制代码
# 优化后的加密套件配置
    ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305:!3DES:!aNULL:!MD5:!RC4';
# 使用更安全的 TLS 版本
    ssl_protocols TLSv1.2 TLSv1.3;

2.2重启服务

复制代码
sudo systemctl restart httpd  # Apache
sudo systemctl restart nginx  # Nginx
检查和更新系统

确保系统上的软件包都是最新的,包括 OpenSSL:

复制代码
sudo dnf update openssl
验证安装

再次检查 OpenSSL 版本以确认升级成功:

复制代码
openssl version
更新 Nginx 配置

一旦 OpenSSL 升级完成,按照之前的步骤更新 Nginx 配置以禁用不安全的协议和加密套件,然后重启 Nginx:

复制代码
sudo systemctl restart nginx

3.扫描验证

更新配置后,再次使用 nmap 进行扫描,确认 TLSv1.0 和 TLSv1.1 已禁用,且 3DES 加密算法不再被支持。

复制代码
nmap --script ssl-enum-ciphers -p 443 <your_server_ip>

正确的应该长这样:

如果是以下这种说明没有成功!!新的配置并没有生效,TLSv1.0 和 TLSv1.1 仍然被支持,并且 3DES 加密算法也依然存在

复制代码
结果:Host is up (0.024s latency).
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   SSLv3: No supported ciphers found
|   TLSv1.0:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong
|     compressors:
|       NULL
|   TLSv1.1:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong
|     compressors:
|       NULL
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong
|     compressors:
|       NULL
|_  least strength: strong

Nmap done: 1 IP address (1 host up) scanned in 1.47 seconds
相关推荐
开挖掘机上班2 小时前
linux自有服务
linux·运维·服务器
小黄人软件2 小时前
OpenSSL 与 C++ 搭建一个支持 TLS 1.3 的服务器
服务器·开发语言·c++
wanhengidc2 小时前
算力服务器和GPU服务器之间的联系
运维·服务器
安全系统学习3 小时前
网络安全之Web渗透加解密
网络·安全·web安全·网络安全·系统安全
枷锁—sha3 小时前
WireShark网络抓包—详细教程
网络·测试工具·web安全·网络安全·wireshark
Ankie Wan3 小时前
tshark的使用技巧(wireshark的命令行,类似tcpdump):转换格式,设置filter
网络·测试工具·wireshark·tcpdump·tshark
长流小哥4 小时前
STM32:Modbus通信协议核心解析:关键通信技术
服务器·网络·stm32·单片机·嵌入式硬件·信息与通信·modbus
kaikaile19954 小时前
基于MATLAB实现传统谱减法以及两种改进的谱减法(增益函数谱减法、多带谱减法)的语音增强
java·linux·服务器
Shaun_青璇5 小时前
物联网 温湿度上传onenet
网络·物联网
海尔辛6 小时前
知道Metasploit 吗?
网络·学习·测试工具·metasploit