当前位置: 代码网 > 服务器>服务器>Linux > Nginx 平滑升级的实现(拒绝服务漏洞)

Nginx 平滑升级的实现(拒绝服务漏洞)

2025年02月21日 Linux 我要评论
前言nginx 拒绝服务漏洞(cve-2019-9513、cve-2019-9511)将 nginx 升级到 1.16.1、1.17.3 及以上版本,下载地址:https://nginx.org/en

前言

nginx 拒绝服务漏洞(cve-2019-9513、cve-2019-9511)

  • 将 nginx 升级到 1.16.1、1.17.3 及以上版本,下载地址:https://nginx.org/en/download.html
  • 若漏洞的检测结果中存在漏洞修复版本,则将漏洞检测结果中的软件包升级到对应漏洞修复版本及以上。
    参照安全补丁功能中该漏洞的修复命令进行升级,或者参照以下修复命令进行升级:
    centos/rhel/oracle linux : sudo yum update -y 需要升级的软件包名(参考检测结果)
    suse : sudo zypper update -y 需要升级的软件包名(参考检测结果)
    ubuntu/debian : sudo apt-get update && sudo apt-get install --only-upgrade -y 需要升级的软件包名(参考检测结果)
    例:若漏洞的检测结果中主机系统为 ubuntu 16.04,软件包名称为 nginx,当前安装版本为 1.10.3-0ubuntu0.16.04.4,对应漏洞修复版本为1.10.3-0ubuntu0.16.04.5,则漏洞修复命令为 sudo apt-get update && sudo apt-get install --only-upgrade -y nginx-core nginx

一、centos 7 nginx1.12.2平滑升级到新版本nginx-1.21.5

nginx下载:http://nginx.org/download/

二、操作步骤

1.查看当前nginx版本信息

[root@web ~]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (red hat 4.8.5-44) (gcc)
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-pcre --with-openssl=/tmp/openssl-1.1.0e --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_image_filter_module --with-mail --with-threads --with-mail_ssl_module --with-stream_ssl_module

2.下载nginx-1.21.5版本到/usr/local/下,解压并进入解压后的目录

[root@nginx ~]# cd /usr/local/
[root@nginx ~]# wget http://nginx.org/download/nginx-1.21.5.tar.gz
[root@nginx ~]# tar xf nginx-1.21.5.tar.gz
[root@nginx ~]# cd nginx-1.21.5

3.配置nginx

查看nginx版本的时候,configure arguments后面有一大串模块,这也是你第一次安装nginx时所指定的模块,升级的时候也要同时指定,也可以添加其他模块

[root@nginx nginx-1.21.5]# ./configure \
  --prefix=/usr/local/nginx \
  --user=nginx \
  --group=nginx \
  --with-pcre \
  --with-openssl=/tmp/openssl-1.1.0e \
  --with-http_ssl_module \
  --with-http_v2_module \
  --with-http_realip_module \
  --with-http_addition_module \
  --with-http_sub_module \
  --with-http_dav_module \
  --with-http_flv_module \
  --with-http_mp4_module \
  --with-http_gunzip_module \
  --with-http_gzip_static_module \
  --with-http_random_index_module \
  --with-http_secure_link_module \
  --with-http_stub_status_module \
  --with-http_auth_request_module \
  --with-http_image_filter_module \
  --with-mail \
  --with-threads \
  --with-mail_ssl_module \
  --with-stream_ssl_module \
 && make

make完以后,不需要执行make install,否则会覆盖安装,nginx服务会出现各种问题

不中断nginx web服务器的正常运行称之为平滑升级,先重命名之前的nginx二进制文件

[root@nginx nginx-1.21.5]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

拷贝刚编译新生产的nginx二进制文件到/usr/local/nginx/sbin/目录

[root@nginx nginx-1.21.5]# cp /usr/local/nginx-1.21.5/objs/nginx /usr/local/nginx/sbin/

4.开始执行升级

[root@web nginx-1.21.5]# make upgrade
/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
kill -usr2 `cat /usr/local/nginx/logs/nginx.pid`
sleep 1
test -f /usr/local/nginx/logs/nginx.pid.oldbin
kill -quit `cat /usr/local/nginx/logs/nginx.pid.oldbin`

5.查看nginx版本信息

[root@web nginx-1.13.3]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.21.5
built by gcc 4.8.5 20150623 (red hat 4.8.5-28) (gcc)
built with openssl 1.1.0e  16 feb 2017
tls sni support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-pcre --with-openssl=/tmp/openssl-1.1.0e --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_image_filter_module --with-mail --with-threads --with-mail_ssl_module --with-stream_ssl_module

总结

报错0

nginx unknown directive “stream”

nginx默认安装的时候没有加载stream模块

需要重新对源文件进行编译、安装,通过添加–with-stream参数指定安装stream模块

./configure --with-stream

make & make install

再次检查nginx.conf配置文件,确认配置无语法错误后,再次尝试启动服务。

nginx -t 检查配置文件是否正确

nginx -c 指定启动的配置文件

报错1

./configure: error: the http xslt module requires the libxml2/libxslt
libraries. you can either do not enable the module or install the libraries.
原因:缺少依赖
解决:
[root@vm-3 nginx-1.21.5]# yum -y install libxml2 libxslt-devel

再次配置

报错2

./configure: error: the http image filter module requires the gd library.
you can either do not enable the module or install the libraries.
解决:安装依赖
yum -y install gd-devel

再次配置

报错3

./configure: error: perl module extutils::embed is required
解决:
yum -y install perl-devel perl-extutils-embed
再次配置

报错4

./configure: error: the geoip module requires the geoip library. you can either do not enable the module or install the library.
解决:
yum -y install geoip geoip-devel geoip-data
再次配置

报错5

./configure: error: the google perftools module requires the google perftools
library. you can either do not enable the module or install the library.

到此这篇关于nginx 平滑升级的实现(拒绝服务漏洞)的文章就介绍到这了,更多相关nginx 平滑升级内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com