关于centos7和centos6中平滑升级nginx到新版本v1.12.1修复CVE-2017-7529漏洞的解决方案

漏洞描述

2017年7月11日,Nginx官方发布最新的安全公告,在Nginx范围过滤器中发现了一个安全问题(CVE-2017-7529),通过精心构造的恶意请求可能会导致整数溢出并且不正确处理范围,从而导致敏感信息泄漏。

当使用Nginx标准模块时,如果文件头从缓存返回响应,允许攻击者获取缓存文件头。在某些配置中,缓存文件头可能包含后端服务器IP地址或其他敏感信息。

此外,如果使用第三方模块有潜在的可能导致拒绝服务。

影响版本

Nginx 0.5.6-1.13.2

漏洞等级

中危

受影响网站:

安全指数分析中国互联网共有713651个网站受到影响。

修复建议

1、升级Nginx到最新无漏洞版本,当前1.13.3,1.12.1版本中已修复了这个问题。
2、临时方案:配置 max_ranges 1;
3、使用百度云加速WAF防火墙进行防御。
4、添加网站至安全指数,及时了解网站组件突发/0day漏洞。

1.添加nginx官方yum源

# vim /etc/yum.repos.d/nginx.repo

centos7:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=
enabled=

centos6:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=
enabled=

看到有最新的1.12.1版本在yum列表中了

# yum list |grep nginx
nginx.x86_64 :1.10.-.el7 @epel
nginx-all-modules.noarch :1.10.-.el7 @epel
nginx-filesystem.noarch :1.10.-.el7 @epel
nginx-mod-http-geoip.x86_64 :1.10.-.el7 @epel
nginx-mod-http-image-filter.x86_64 :1.10.-.el7 @epel
nginx-mod-http-perl.x86_64 :1.10.-.el7 @epel
nginx-mod-http-xslt-filter.x86_64 :1.10.-.el7 @epel
nginx-mod-mail.x86_64 :1.10.-.el7 @epel
nginx-mod-stream.x86_64 :1.10.-.el7 @epel
collectd-nginx.x86_64 5.7.-.el7 epel
munin-nginx.noarch 2.0.-.el7 epel
nextcloud-nginx.noarch 10.0.-.el7 epel
nginx.x86_64 :1.12.-.el7.ngx nginx
nginx-debug.x86_64 :1.8.-.el7.ngx nginx
nginx-debuginfo.x86_64 :1.12.-.el7.ngx nginx
nginx-module-geoip.x86_64 :1.12.-.el7.ngx nginx
nginx-module-geoip-debuginfo.x86_64 :1.12.-.el7.ngx nginx
nginx-module-image-filter.x86_64 :1.12.-.el7.ngx nginx
nginx-module-image-filter-debuginfo.x86_64
:1.12.-.el7.ngx nginx
nginx-module-njs.x86_64 :1.12.1.0.1.10-.el7.ngx nginx
nginx-module-njs-debuginfo.x86_64 :1.12.1.0.1.10-.el7.ngx nginx
nginx-module-perl.x86_64 :1.12.-.el7.ngx nginx
nginx-module-perl-debuginfo.x86_64 :1.12.-.el7.ngx nginx
nginx-module-xslt.x86_64 :1.12.-.el7.ngx nginx
nginx-module-xslt-debuginfo.x86_64 :1.12.-.el7.ngx nginx
nginx-nr-agent.noarch 2.0.-.el7.ngx nginx
owncloud-nginx.noarch 9.1.-.el7 epel
pcp-pmda-nginx.x86_64 3.11.-.el7 base
python2-certbot-nginx.noarch 0.14.-.el7 epel

2.平滑升级nginx

# yum update nginx -y

可以看到已经成功升级到v1.12.1了

# nginx -v
nginx version: nginx/1.12.

升级以后发现nginx语法检测无法通过

# nginx -t
nginx: [emerg] module "/usr/lib64/nginx/modules/ngx_http_perl_module.so" version instead of in /usr/share/nginx/modules/mod-http-image-filter.conf:
nginx: configuration file /etc/nginx/nginx.conf test failed

解决办法:
vim /etc/nginx/nginx.conf
将这行注释掉

#include /usr/share/nginx/modules/*.conf;

分析:是因为modules指向了新的路径/usr/lib64/nginx/modules

[root@test11_ckmusic_test nginx]# ll
total
drwxr-xr-x root root Jul : conf.d
drwxr-xr-x root root Oct default.d
-rw-r--r-- root root Jul : fastcgi_params
-rw-r--r-- root root Jul : koi-utf
-rw-r--r-- root root Jul : koi-win
-rw-r--r-- root root Jul : mime.types
lrwxrwxrwx root root Jul : modules -> ../../usr/lib64/nginx/modules
-rw-r--r-- root root Jul : nginx.conf
-rw-r--r-- root root Jun : nginx.conf.bak
-rw-r--r-- root root Jul : nginx.conf.rpmnew
-rw-r--r-- root root Jul : scgi_params
-rw-r--r-- root root Jul : uwsgi_params
-rw-r--r-- root root Jul : win-utf

3.平滑重启

# systemctl reload nginx

关于centos7和centos6中平滑升级nginx到新版本v1.12.1修复nginx最新漏洞CVE-2017-7529的解决方案的更多相关文章

  1. 原创|1分钟搞定 Nginx 版本的平滑升级与回滚

    Nginx无论是对于运维.开发.还是测试来说,都是日常工作需要掌握的一个知识点,之前也写过不少关于Nginx相关的文章: Nginx服务介绍与安装 Nginx服务配置文件介绍 Nginx配置虚拟主机 ...

  2. CentOS6.x服务器OpenSSH平滑升级到7.3p版本——拒绝服务器漏洞攻击

    对于新安装的Linux服务器,默认OpenSSH及OpenSSL都不是最新的,需要进行升级以拒绝服务器漏洞攻击.本次介绍的是升级生产环境下CentOS6.x系列服务器平滑升级OpenSSL及OpenS ...

  3. Nginx服务器的平滑启动、平缓停止、平滑升级

    注:Nginx服务在运行时,会保持一个主进程(master process)和一个或多个工作进程(worker process). 每一个进程都会有一个PID进程号,可以通过向主进程的PID进程号发送 ...

  4. nginx信号及平滑升级

    1.nginx信号 nginx进程处理命令: kill -signals PID PID即nginx进程ID signals的参数解释如下所示: TERM,INT快速关闭进程 QUIT优雅的关闭,如果 ...

  5. Linux centos7 nginx 平滑升级

    2021-08-19为了方便读者的阅读,该文通篇使用绝对路径,各位朋友们在实际上操作中可以根据实际情况编写路径(#^.^#)1. 当前环境 # system cat /etc/redhat-relea ...

  6. nginx启动、重启、重新加载配置文件和平滑升级

    Nginx有一个主进程和几个工作进程,主进程的主要作用就是读取.评估配置文件和管理工作进程,工作进程对请求做实际处理.工作进程的数量是在配置文件中配置的,一般设置为cpu的核心数*线程数. nginx ...

  7. 让你的网站免费支持 HTTPS 及 Nginx 平滑升级

    为什么要使用 HTTPS ? 首先来说一下 HTTP 与 HTTPS 协议的区别吧,他们的根本区别就是 HTTPS 在 HTTP 协议的基础上加入了 SSL 层,在传输层对网络连接进行加密.简单点说在 ...

  8. 源码安装nginx以及平滑升级

                                                           源码安装nginx以及平滑升级                               ...

  9. Nginx的平滑重启和平滑升级

    一,Nginx的平滑重启如果改变了Nginx的配置文件(nginx.conf),想重启Nginx,可以发送系统信号给Nginx主进程的方式来进行.在重启之前,要确认Nginx配置文件的语法是正确的. ...

随机推荐

  1. bzoj千题计划315:bzoj3172: [Tjoi2013]单词(AC自动机)

    https://www.lydsy.com/JudgeOnline/problem.php?id=3172 构建AC自动机 在fail树上,点i的子树大小 表示trie树上根节点到i构成的单词 是 多 ...

  2. HDU 1575(裸矩阵快速幂)

    emmmmm..就是矩阵快速幂,直接附代码: #include <cstdio> using namespace std; ; ; struct Matrix { int m[maxn][ ...

  3. Golang入门教程(六)关键字和数据类型

    在 Go 编程语言中,数据类型用于声明函数和变量. 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存. 一.25个关键字 二.18 ...

  4. vue中nextTick

    vue中nextTick可以拿到更新后的DOM元素 如果在mounted下不能准确拿到DOM元素,可以使用nextTick 在Vue生命周期的created()钩子函数进行的DOM操作一定要放在Vue ...

  5. git 提交解决冲突(转载)

    转载 git 提交解决冲突 http://www.cnblogs.com/qinbb/p/5972308.html   一:git命令在提交代码前,没有pull拉最新的代码,因此再次提交出现了冲突. ...

  6. 大规模数据导入和导出(mysql)

    测试数据2.5G,共有数据9427567条.用的mysql的large服务器的配置.load 一次需要大概10分钟左右.建的表用的是MYISAM,调整了几个session的参数值 SET SESSIO ...

  7. memset赋值

    比较神奇的事情 可能和二进制有关系吧 #include<bits/stdc++.h> using namespace std; ]; int main(){ memset(f,,sizeo ...

  8. 2017CCPC秦皇岛 G题Numbers&&ZOJ3987【大数】

    题意: 给出一个数n,现在要将它分为m个数,这m个数相加起来必须等于n,并且要使得这m个数的或值最小. 思路: 从二进制的角度分析,如果这m个数中有一个数某一位为1,那么最后或起来这一位肯定是为1的, ...

  9. 第21月第9日 windows下使用vim+ctags+taglist

    1. windows下使用vim+ctags+taglist 最近在公司的同事指导下,学会使用这个东西编写代码,效率提高了不少.所以记录下来,方便大家使用. 1. 下载gvim74.exe文件,并安装 ...

  10. Apache的域名配置

    配置独立域名有什么好处呢?我们在本地做程序开发,要同时用很多开源程序.CMS.框架,或者自己写的管理系统,那么给他们每一个都配置一个独立的域名,在测试的时候只要在浏览器输入设置好的域名就可以了,非常方 ...