前言
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 平滑升级内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论