可不可以不隐藏nginx版本号

 

  • 原理和思路

  • 实现步骤

  • 测试

  • 网上常用隐藏方法

 

在写文章前先申明,本文是原创,受一个同行启发,而想到的,一般我们在使用nginx时,为了减少漏洞,减少***针对有版本进行***,我们会去隐藏nginx版本号,将http请求响应头里的nginx版本号信息隐藏掉。从安全的角度来说,隐藏版本号会相对安全些!可是换个位思考,一定安全吗?可不可以不隐藏啊,我将它显示为其它的,显示为Apache/2.2.15,或者Lighttpd 1.4.36呢? 当然可以啊。

 

原理和思路

在nginx的源码包./nginx-1.8.0/src/core/nginx.h 中可以修改nginx的版本信息,修改它为我们想要的版本,再编译安装,最后为了保险点,我们在nginx.conf加入server_tokens on;(注意:默认是开的可以不加) 。

实现步骤

首先我们去官网下载最新的nignx版本,并解包。

[root@mfsmaster ~]# wget –Onginx-1.8.0.tar.gzhttp://nginx.org/download/nginx-1.8.0.tar.gz

[root@mfsmaster ~]# tar -zxvfnginx-1.8.0.tar.gz && cd ./nginx-1.8.0/src/core/

[root@mfsmaster core]# cpnginx.h  nginx.h.bak

接下来我们修改 nginx.h,执行vim ./nginx.h

   

wKiom1XLGy7jyJeDAAFfgb4D2vg347.jpg

wKioL1XLHTHxE2jSAAF-ihMZmMM012.jpg




最后我们编译安装并启动nginx

[root@mfsmaster ~]#useradd  -M -s /sbin/nologin nginx

[root@mfsmaster ~]# mkdir/usr/local/nginx

[root@mfsmaster ~]# cd./nginx-1.8.0  

[root@mfsmaster ~]# ./configure--user=nginx --group=nginx --prefix=/usr/local/nginx   --with-http_ssl_module--with-http_realip_module --with-http_gzip_static_module   --with-http_stub_status_module

[root@mfsmaster ~]# make&& make install && /usr/local/nginx/sbin/nginx

[root@mfsmaster ~]# netstat-tlunp |grep 80

tcp       0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      4575/nginx 

至此,nginx显示版本安装成功。

 

测试

我总共装了两台nginx,一台是上面修改显示版本这台ip 10.0.8.1,一台是一般安装的.ip 10.0.8.2.

先来测试10.0.8.1

wKiom1XLG46SZW_WAAEhiVsIJd0468.jpg

再来看一般安装的10.0.8.2

  wKioL1XLHZ7Cj_HeAAD7Pj6RAj0815.jpg

我们还可以用一些浏览器来测试,如firefox , 假如Firefox里的服务器信息也不是显示出nginx版本号,而是显示为Apache/2.2.15,说明我们显示版本号成功(其实这个工具也是利用curl 命令侦查的)

wKiom1XLG66QzV87AAEjZCIaCf0015.jpgwKioL1XLHbzy8pWXAAElxJ7wte8003.jpg

再看下一般安装的

网上常用隐藏方法

如果,你还是喜欢隐藏,你可以看下这编文章:

http://www.ha97.com/1095.html  彻底隐藏Nginx版本号的安全性与方法

http://www.cnblogs.com/buffer/p/3204763.html  隐藏nginx 版本号信息

申明“网上常用隐藏方法” 是我在网上找的,如有侵权,请告知,谢谢。

 

本文是 巧妙绝情 一个字一个图打出来,参考了好多资料,感谢他们的分享,基于open source分享精神,转载请注明出出。
支持我,请点击 巧妙绝情 谢谢