SSL漏洞问题[解决]
前言
扫描网站发现有两个跟SSL相关的中级漏洞
TLS/SSL Sweet32 attack
TLS/SSL Wrak Cipher Suites
1、升级openssl版本
2.1 安装
wget -P /usr/local/src https://infra-res-1251220924.cos.ap-guangzhou.myqcloud.com/java/openssl-1.1.1i.tar.gz
cd /usr/local/src && tar xvf openssl-1.1.1i.tar.gz
cd openssl-1.1.1i
./config -fPIC --prefix=/usr/local/openssl/ enable-shared
make && make install
2.2 备份
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
2.3 创建软连接
ln -sf /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -sf /usr/local/openssl/include/openssl/ /usr/include/openssl
2.4 查看openssl版本
openssl version
2.5 重新扫描,发现漏洞任未解决
排查发现是因为nginx未去读取最新的1.1.1i版本的openssl
2、重新编译nginx
2.1 openssl前置
重新编译nginx前要修改两个动态链接库数据,确保编译正常通过
#备份
mv /usr/lib64/libssl.so /usr/lib64/libssl.so.bak
mv /usr/lib64/libcrypto.so /usr/lib64/libcrypto.so.bak
#创建软连接
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so
ln -s /usr/local/openssl/lib/libcrypto.so /usr/lib64/libcrypto.so
2.2 重新编译安装
#停止nginx
systemctl stop nginx
cd /data/software
wget http://nginx.org/download/nginx-1.20.1.tar.gz
#到ngxin编译目录下
cd /data/software/nginx-1.20.1
#--prefix指定nginx现安装地址
./configure --user=nginx --group=nginx --prefix=/data/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_v2_module
#(注意不要make install,不然会覆盖现有的nignx)
make
#备份
mv /data/nginx/sbin/nginx /data/nginx/sbin/nginx_bak
#将新编译的nginx放到sbin下
cp objs/nginx /data/nginx/sbin/
#启动成功,完成新模块加载
systemctl start nginx
2.3 验证
nginx -V
此处显示为1.1.1i,方为正常,再次扫描发现漏洞消失