Nginx版本升级
问题:
由于之前遇到过使用检测软件对web url进行检测的时候,提示存在安全隐患,并且详情为“空指针间接引用漏洞出现个数超出,resolver存在释放后重利用漏洞。远程攻击者通过CNAME响应处理相关的构造的DNS响应,可造成worker进程崩溃,拒绝服务”。具体如下:
解决方案
升级nginx版本即可。
1、下载最新的nginx版本
[root@aliyun ~]# wget -c http://nginx.org/download/nginx-1.21.3.tar.gz
--2022-05-10 13:39:16-- http://nginx.org/download/nginx-1.21.3.tar.gz
正在解析主机 nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:edb:5704::6, ...
正在连接 nginx.org (nginx.org)|3.125.197.172|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1066609 (1.0M) [application/octet-stream]
正在保存至: “nginx-1.21.3.tar.gz”
100%[=============================================================================================>] 1,066,609 1.15MB/s 用时 0.9s
2022-05-10 13:39:18 (1.15 MB/s) - 已保存 “nginx-1.21.3.tar.gz” [1066609/1066609])
2、查看当前nginx版本号
[root@aliyun ~]# cd /usr/local/nginx/
[root@aliyun nginx]# ./sbin/nginx -V
nginx version: nginx/1.1.18
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
3、解压新版本的tar包
[root@aliyun ~]# tar -xzf nginx-1.21.3.tar.gz
[root@aliyun ~]# ls
interview myLog.py nginx-1.1.18.tar.gz nginx-1.21.3 nginx-1.21.3.tar.gz tools
[root@aliyun ~]# cd nginx-1.21.3
4、执行编译
[root@aliyun nginx-1.21.3]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #编译选项与老版本./sbin/nginx -V查询的相同
[root@aliyun nginx-1.21.3]# make #(不要执行make install,否则一些配置文件都会更新)
5、替换老版本的nginx可执行文件
#备份
[root@aliyun nginx-1.21.3]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
#复制新版本编译出来的nginx
[root@aliyun nginx-1.21.3]# cp ./objs/nginx /usr/local/nginx/sbin/
#查看
[root@aliyun nginx-1.21.3]# ll /usr/local/nginx/sbin/
总用量 6828
-rwxr-xr-x 1 root root 6031856 5月 10 13:54 nginx
-rwxr-xr-x 1 root root 957104 5月 10 10:01 nginx.old
6、验证新版本nginx
[root@aliyun 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
7、重启nginx
[root@aliyun nginx]# sbin/nginx -s stop
nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
[root@aliyun nginx]# sbin/nginx
[root@aliyun nginx]# ps -aux | grep nginx
root 13441 0.0 0.0 46008 1124 ? Ss 14:01 0:00 nginx: master process sbin/nginx
nginx 13442 0.0 0.0 46440 1880 ? S 14:01 0:00 nginx: worker process
root 13662 0.0 0.0 112824 984 pts/0 R+ 14:01 0:00 grep --color=auto nginx
[root@aliyun nginx]# sbin/nginx -v
nginx version: nginx/1.21.3
至此,nginx升级版本完成