漏洞介绍:

2017-07-12 nginx 发布高危漏洞通报,并提供了修复方法及数据包。

漏洞信息:

漏洞编号:CVE-2017-7529
漏洞名称:Nginx敏感信息泄露
官方评级:高危
漏洞描述:当使用nginx标准模块时,允许攻击者如果从缓存返回响应,则获取缓存文件头,在某些配置中,缓存文件头可能包含IP地址的后端服务器或其他敏感信息,从而导致信息泄露。
漏洞利用条件和方式:远程利用
漏洞影响范围:Nginx 0.5.6 - 1.13.2
修复建议:升级到Nginx 1.13.3, 1.12.1。
漏洞详情查看:http://mailman.nginx.org/pipermail/nginx-announce/2017/000200.html

漏洞修复方法:

Centos7:

  • 查看当前版本:

    1
    nginx -V
  • 下载漏洞修复软件包:

    1
    wget -Sc http://nginx.org/download/nginx-1.12.1.tar.gz
  • 解压程序源码包

    1
    tar -zxf nginx-1.12.1.tar.gz
  • 进入解压后的文件目录:

    1
    cd nginx-1.12.1
  • 使用原有参数(nginx -V查看)进行配置:

    1
    ./configure  --prefix=/opt/webserver/nginx --without-http_memcached_module --user=nginx --group=nginx --with-http_image_filter_module --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.2l --with-zlib=/usr/local/src/zlib-1.2.11/ --with-pcre --with-http_sub_module --add-module=/usr/local/src/nginx-accesskey --add-module=/usr/local/src/ngx_http_geoip2_module --with-http_realip_module --with-http_mp4_module
  • 然后编译,但不要make install,切记

    1
    make
  • 编译完成后可以在objs目录下看到有个名为nginx执行文件

    1
    2
    3
    ls objs/nginx
    [root@fqptuo nginx-1.12.1]# ls -l objs/nginx
    -rwxr-xr-x 1 root root 9031768 Jul 12 13:57 objs/nginx
  • 备份原有的nginx

    1
    mv /opt/webserver/nginx/sbin/nginx{,.1.12.0}
  • 复制编译后的nginx文件到原有目录

    1
    cp objs/nginx /opt/webserver/nginx/sbin/nginx
  • 查看升级后的版本

    1
    nginx -v
  • 检查升级后的nginx版本与当前配置是否测试通过

    1
    nginx -t
  • 优雅的平滑升级nginx

    1
    make upgrade
    • 正常情况下会有类似以下的输出:
      1
      2
      3
      4
      5
      6
      7
      /opt/webserver/nginx/sbin/nginx -t
      nginx: the configuration file /opt/webserver/nginx/conf/nginx.conf syntax is ok
      nginx: configuration file /opt/webserver/nginx/conf/nginx.conf test is successful
      kill -USR2 `cat /opt/webserver/nginx/logs/nginx.pid`
      sleep 1
      test -f /opt/webserver/nginx/logs/nginx.pid.oldbin
      kill -QUIT `cat /opt/webserver/nginx/logs/nginx.pid.oldbin`
  • 查看当前nginx服务状态

    1
    systemctl status nginx

至此,nginx服务升级完成。