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
相关推荐
xiaok6 分钟前
阿里云服务器上安装了nginx,它配置文件中的localhost是不是指的就是阿里云服务器的公网ip
服务器
2501_9277730734 分钟前
Linux系统操作编程——http
网络·网络协议·http
2401_8582861141 分钟前
OS26.【Linux】进程程序替换(下)
linux·运维·服务器·开发语言·算法·exec·进程
薛定谔的旺财1 小时前
深度学习分类网络初篇
网络·深度学习·分类
wanhengidc1 小时前
云手机挂机掉线是由哪些因素造成的?
运维·服务器·网络·安全·智能手机
xw51 小时前
免费的个人网站托管-Surge篇
服务器·前端
刃神太酷啦2 小时前
Linux 常用指令全解析:从基础操作到系统管理(1w字精简版)----《Hello Linux!》(2)
linux·运维·服务器·c语言·c++·算法·leetcode
钢铁男儿2 小时前
Python 网络编程进阶:使用 SocketServer 模块构建 TCP 服务器与客户端
网络·python·tcp/ip
什么半岛铁盒3 小时前
处理端口和 IP 地址
网络·单片机·tcp/ip
飞飞是甜咖啡3 小时前
Nature Physics综述:“多者异也”在真实世界多层网络中如何体现?
网络