隐藏Nginx版本号!

Posted l1-5551

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了隐藏Nginx版本号!相关的知识,希望对你有一定的参考价值。

在生产环境中,需要隐藏 nginx 的版本号,以避免安全漏洞的泄漏

一旦有黑客知道Nginx版本号便可以利用Nginx漏洞进行攻击,严重影响到了公司的安全

查看隐藏版本号命令:curl -I http://ip地址

========================================================

安装Nginx后查看:

[root@localhost nginx-1.16.0]# curl -I http://192.168.200.120
HTTP/1.1 200 OK
Server: nginx/1.16.0
Date: Thu, 12 Sep 2019 03:55:10 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 12 Sep 2019 01:08:46 GMT
Connection: keep-alive
ETag: "5d799a9e-264"
Accept-Ranges: bytes

隐藏方法1【基于源码包】:(安装Nginx后要修改文件必须先卸载Nginx再安装)

[root@localhost ~]# killall -9 nginx                                            //杀死nginx进程
[root@localhost ~]# rm -rf /usr/local/nginx/     
[root@localhost ~]# cd /usr/src/nginx-1.16.0/
[root@localhost nginx-1.16.0]# make clean
rm -rf Makefile objs                                                                
[root@localhost nginx-1.16.0]# cd
[root@localhost ~]# rm -rf /usr/src/nginx-1.16.0/                    //卸载完成

[root@localhost ~]# tar xf nginx-1.16.0.tar.gz -C /usr/src

[root@localhost ~]# cd /usr/src/nginx-1.16.0/

[root@localhost nginx-1.16.0]# vim src/core/nginx.h

修改文件前图示:

技术图片

修改文件后图示:

技术图片

[root@localhost nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

[root@localhost nginx-1.16.0]# make

[root@localhost nginx-1.16.0]# make install

[root@localhost nginx-1.16.0]# curl -I http://192.168.200.120
curl: (7) Failed connect to 192.168.200.120:80; 拒绝连接
[root@localhost nginx-1.16.0]# netstat -anpt | grep nginx
[root@localhost nginx-1.16.0]# nginx
[root@localhost nginx-1.16.0]# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21446/nginx: master
[root@localhost nginx-1.16.0]# curl -I http://192.168.200.120
HTTP/1.1 200 OK
Server: apache/2.4.31
Date: Thu, 12 Sep 2019 04:15:38 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 12 Sep 2019 04:13:25 GMT
Connection: keep-alive
ETag: "5d79c5e5-264"
Accept-Ranges: bytes

 方法2【修改配置文件】(不卸载Nginx隐藏版本号,直接修改配置文件)

[root@localhost nginx-1.16.0]# curl -I http://192.168.200.115                           
HTTP/1.1 200 OK  
Server: nginx/1.16.0                                                                               //原版本号
Date: Thu, 12 Sep 2019 05:38:07 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 12 Sep 2019 05:37:35 GMT
Connection: keep-alive
ETag: "5d79d99f-264"
Accept-Ranges: bytes

[root@localhost nginx-1.16.0]# vim /usr/local/nginx/conf/nginx.conf

在sendfile on;后添加一行命令:

server_tokens off;

[root@localhost nginx-1.16.0]# 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@localhost nginx-1.16.0]# killall -HUP nginx                                     //重新加载配置
[root@localhost nginx-1.16.0]# curl -I http://192.168.200.115                  
HTTP/1.1 200 OK
Server: nginx                                                                                            //修改后的版本号
Date: Thu, 12 Sep 2019 05:45:43 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 12 Sep 2019 05:37:35 GMT
Connection: keep-alive
ETag: "5d79d99f-264"
Accept-Ranges: bytes

以上是关于隐藏Nginx版本号!的主要内容,如果未能解决你的问题,请参考以下文章

Nginx的版本号隐藏

隐藏Nginx版本号!

Nginx服务优化隐藏版本号

Nginx隐藏标识以及其版本号

隐藏Nginx版本号的安全性与方法

Nginx隐藏版本号,Nginx隐藏软件名称