微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx漏洞分析与升级修复

一 、此次漏洞分析

1 Nginx HTTP/2漏洞

[Nginx-announce] Nginx安全公告(CVE-2018-16843,CVE-2018-16844)
Nginx HTTP / 2实现中发现了两个安全问题,
漏洞对服务器的影响:
可能会导致过多的内存消耗(CVE-2018-16843)和cpu使用率(CVE-2018-16844)。
影响范围:
这些问题会影响使用ngx_http_v2_module编译的Nginx(不是认情况下编译)如果“listen”指令的“http2”选项是用于配置文件
影响版本:
这些问题会影响Nginx 1.9.5 - 1.15.5。
解决方法
问题在Nginx 1.15.6,1.14.1中得到修复。建议升级到最新稳定版

以上内容参考:
 http://mailman.Nginx.org/pipermail/Nginx-announce/2018/000220.html

2 ngx_http_mp4_module漏洞

[Nginx-announce] Nginx安全公告(CVE-2018-16845)
漏洞对服务器的影响:
在ngx_http_mp4_module中发现了一个安全问题,可能是这个问题允许攻击者在工作进程中导致无限循环,导致攻击工作进程崩溃,或者可能导致工作进程内存使用特制的mp4文件(CVE-2018-16845)进行披露。
影响范围:
如果使用ngx_http_mp4_module构建,则该问题仅影响Nginx认情况下不构建模块)并使用“mp4”指令配置文件。此外,只有在攻击时才能进行攻击,攻击者能够触发特制的mp4文件的处理使用ngx_http_mp4_module。
影响版本:
该问题影响Nginx 1.1.3 +,1.0.7 +。
解决方法
该问题在1.15.6,1.14.4中得到修复。建议升级到最新稳定版

该问题的补丁可以在这里找到:
http://Nginx.org/download/patch.2018.mp4.txt
以上内容参考:
http://mailman.Nginx.org/pipermail/Nginx-announce/2018/000221.html

3 模块ngx_http_mp4_module介绍

作用:为H.264(一种视频编码格式)/AAC(一种音频编码格式)文件,主要是以 .mp4、.m4v、和.m4a为扩展名的文件, 提供伪流媒体服务端支持

二、Nginx升级

1 备份原有文件

cp -a /usr/local/Nginx /tmp/Nginx_back

2 下载并解压Nginx-1.14.1.tar.gz文件

wget http://Nginx.org/download/Nginx-1.14.1.tar.gz
tar
-xf Nginx-1.14.1

3 进入Nginx-1.14.1目录

cd Nginx-1.14.1

4 编译配置

(1)请先使用Nginx -V 命令查看原有Nginx编译的选项,

# Nginx -V

Nginx version: Nginx/1.0.15
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/Nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_flv_module --add-module=/usr/local/src/Nginx-auth-ldap --with-http_realip_module

(2)故保持和原有一样的编译配置,根据自己情况具体而定

./configure --user=www --group=www --prefix=/usr/local/Nginx --with-http_stub_status_module 
--with-http_ssl_module --with-http_gzip_static_module --with-http_flv_module --with-http_realip_module
--with-http_auth_request_module --with-http_auth_request_module --add-module=/usr/local/src/Nginx-auth-ldap
--add-module=/usr/local/src/headers-more-Nginx-module-master --with-cc-opt=-Wno-error

5 编译

make

6 备份原来sbin/Nginx

cd /usr/local/Nginx/sbin/
mv Nginx Nginx.back

7 复制Nginx-1.14.1/objs/Nginx到/usr/local/Nginx/sbin/

cp Nginx-1.14.1/objs/Nginx /usr/local/Nginx/sbin/

8 升级

cd Nginx-1.14.1
make upgrade

输出如下:

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`

或者输出为以下内容: 

/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
make: *** [upgrade] Error 1    

看到 Error 1也不用太在意,已经升级成功

如果Nginx关闭的请情况输出如下:

/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`
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
make: *** [upgrade] Error 1

9 查看升级是否成功

# /usr/local/Nginx/sbin/Nginx -v

Nginx version: Nginx/1.14.1

如果想隐藏版本号,可参考 https://www.cnblogs.com/Sunzz/p/9962891.html

原文地址:https://www.cnblogs.com/Sunzz/p/9953443.html

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

相关推荐