修复Nginx安全漏洞(CVE-2019-9516)

修复Nginx安全漏洞(CVE-2019-9516)

近日客户在进行安全扫描时检测出Nginx有安全漏洞,简单记录下这次安全漏洞的升级过程。

客户给文档如图:
在这里插入图片描述

先按照修补建议去获取补丁

在这里插入图片描述

查看官方建议,需要将nginx进行升级到1.17.3,下载地址:http://nginx.org/download/

在这里插入图片描述

将下载好的nginx上传到服务器上,解压

tar -zxvf nginx-1.17.3.tar.gz

因为项目正在运行,因此这次升级需要在不影响业务系统情况下进行平滑升级

因为前期部署Nginx是直接从另一台服务期上拷贝过去的,因此需要先安装nginx所需的依赖,之后才能进行nginx新版本的编译。这时遇到了一个问题,服务器不能连外网,因此需要手动下载依赖包进行安装,或者新建一个本地的YUM源,详细步骤可参考:在Linux系统中配置本地YUM仓库

准备工作完成之后开始进行升级

1.安装依赖

 yum install gcc

 yum install pcre-devel

 yum install zlib-devel

 yum install openssl

 yum install openssl-devel

2.进入新版本Nginx,进行编译后替换旧版本

// 进入新版本目录
cd nginx-1.17.3

// 执行配置
./configure

// 执行编译(只编译不安装)
make

// 备份旧版本文件
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

// 复制新版本文件
cp nginx-1.17.3/objs/nginx /usr/local/nginx/sbin/

3.关闭并重启 nginx

// 查看nginx的pid
ps -ef|grep nginx

可以看到nginx的pid为3578和3580
在这里插入图片描述
根据上面查询的pid对nginx进行重启

//使nginx的旧版本停止接收请求,用新版本接替,且老进程处理完所有请求,关闭所有连接后,停止 
kill -usr2 3578 
kill -usr2 3580

//关闭旧版本进程 
kill -quit 3578 
kill -quit 3580

// 验证nginx是否升级成功,显示最新编译的版本信息即更新成功
nginx  -V  

升级过程中遇到了一个问题nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:156

经排查之后发现,nginx启动了https服务,在上述第二步配置的时候需要添加一些配置,然后按照上述部署进行升级即可

 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值