默认情况下,当你查询HTTP头文件或Nginx服务器产生的错误时,会显示Nginx版本。成都联想服务器总代理这篇快速指南解释了如何在不重启系统的情况下隐藏或删除Linux或Unix服务器上的Nginx版本。
1、使用CLI显示当前的Nginx版本。
Nginx会在错误页面和 服务器 响应头中显示版本。我们可以用下面的命令来验证。
$ curl -I https://your-domain
$ curl -I https://www.cyberciti.biz
输出结果:
下面是我的HTTP/502错误页面显示信息的输出:
2、使用server_tokens指令隐藏Nginx版本:
你需要将server_tokens设置为关闭,以隐藏Linux和Unix系统上的Nginx服务器版本。用vim/nano等文本编辑器编辑nginx.conf文件。
$ sudo vim /etc/nginx/nginx.conf
我们可以只在http、server或location上下文中设置server_tokens。我将在http部分添加。
server_tokens off;
如下图:
正常重启或重新加载Nginx服务器:
$ sudo nginx -t
$ sudo nginx -s reload
3、验证Nginx版本是否隐藏
使用curl命令,如下所示:
curl -I https://your-domain-name-here
curl -I https://www.cyberciti.biz
看起来没有显示版本:
Firefox浏览器也没有显示Nginx版本:
4、隐藏Nginx版本的其他可能值
语法如下:
server_tokens on | off | build | string。
在Linux、*BSD和Unix上的默认设置如下:
server_tokens on.在Linux、*BSD和Unix上,默认设置如下: server_tokens on;
5、从服务器头和错误页面中删除版本
我们可以更改以下值来启用或禁用nginx版本。
on : 显示版本号。
off : 关闭显示版本号。
build : 确保我们在发布nginx版本的同时也发布了一个版本名。你必须有Nginx 1.11.10版本。
string : 只适用于商业订阅,从1.9.13版本开始,错误页面的签名和 服务器 响应头的值可以使用字符串变量明确设置。空字符串则会禁用 服务器 字段。
6、在Nginx中设置自定义版本号
例如,商业订阅(Nginx Plus)用户可以按以下方式设置,伪造服务器版本和自定义名称。
server_tokens NixCraft_WWW;
重新加载Nginx服务器。
# service nginx reload
使用curl命令进行测试
curl -I http://127.0.0.1/
以上是通过隐蔽性功能实现的安全性。它是深度防御的方法之一。但它不应该是主要的防御方式。你需要编写安全的代码。安装一个防火墙,尤其是WAF(Web应用防火墙)。没有必要公开Nginx或PHP或Python版本,因为它可能对攻击者有用。请记住,无论Nginx版本是否公开,Linux / Unix操作系统,Web应用程序/ Nginx都应保持安全
成都联想服务器代理【公司名称】成都鸿盛广达科技有限公司
【代理级别】成都联想服务器总代理
【销售经理】成都鸿盛广达科技有限公司
【联系方式】座机:028-85952921 手机:13981931555
【公司地址】成都市武侯区人民南路四段一号时代数码广场A座17楼