nginx安全漏洞(CVE-2021-23017)
- 详细描述
Nginx是美国Nginx公司的一款轻量级Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 nginx存在安全漏洞,该漏洞源于一个离一错误在该漏洞允许远程攻击者可利用该漏洞在目标系统上执行任意代码。 受影响版本:0.6.18-1.20.0
-
解决办法
- 厂商补丁: 目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://www.nginx.com/blog/updating-nginx-dns-resolver-vulnerability-cve-2021-23017/
- 根据补丁链接的提示:可将nginx升级为1.20.1或者是1.21
-
开始干活
-
前往官网http://nginx.org/en/download.html查看对应的版本
-
由于服务器是centos,所以选择框中nginx版本下载,当时选的是nginx-1.20.1版本
-
下载完成后如何替换成了一个问题,当时想的是夜深人静的时候替换默默流下加班的泪水。后来发现到生产环境可以平滑升级
参考一: 生产环境nginx平滑升级演示.
参考二: nginx 的平滑升级. -
由于是生产环境,为了避免出现意外,还是选择在下班后开始实施。
-
查看nginx和OpenSSL版本
[root@host sbin]# ./nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module
备份原 nginx 二进制文件,切换到nginx所在目录进行备份,备份的过程系统不受影响
mv nginx nginx-1.18
将压缩包上传到服务器进行解压,上传任意位置,没有要求
tar xf nginx-1.20.1.tar.gz
切换到解压后的nginx文件夹内执行,只需要到 make,千万不要 make install 。如果make install 会将原来的配置文件覆盖
[root@host 下载]# cd nginx-1.20.1/
[root@hos nginx-1.20.1]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module
[root@host nginx-1.20.1]# make
复制nginx-1.20.1下的nginx到原来的nginx目录下,注意nginx-1.20.1中nginx在objs目录下而不是在sbin下面
[root@host nginx-1.20.1]# cd objs/
[root@host objs]# cp nginx /usr/local/nginx/sbin/
测试是否替换成功
[root@host sbin]# /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
[root@host sbin]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled