西数超哥博客
运维经验教程分享

Nginx如何修改版本信息或者隐藏版本号

nginx版本漏洞可能导致整个服务器瘫痪,有时候隐藏版本还是很有效的办法.改成其他web engine信息。

一,隐藏版本号。
首先说明,这个是某一方面隐藏,不是彻底隐藏。未隐藏之前查看nginx信息:

隐藏方法:
修改nginx.conf配置文件,在http { } 标签里边加入字段:

server_tokens off;

重启nginx,查看nginx信息:

通过curl已经无法查看到nginx具体版本信息。

说明:这个指标不治本,比如php探针,还是可以看到nginx具体版本信息:

原因是php的配置文件fastcgi.conf中读取的变量是:

fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

鉴于此,我们如果需要php也要显示这些信息,那么需要将这里注释或者从根源上修改nginx版本信息(修改源码,重新编译或者是安装直接就修改)。个人不建议这么搞,毕竟还有nginx错误页面或者其他地方都有可能直接暴露出来。所以,要么简单隐藏,要么彻底改掉nginx信息(下边第二种方法)。

二,根源上修改nginx版本号。
这个比较彻底,一般是安装之前就修改源码,如安装过的,就要修改源码重新编译。一般修改三个地方:
1,修改src/core/nginx.h(Nginx内部名称的)

#define NGINX_VERSION      "1.12.0"#define NGINX_VER          "nginx/" NGINX_VERSION

2,修改src/http/ngx_http_header_filter_module.c(HTTP ResponseHeader)

static u_char ngx_http_server_string[] = "Server: nginx" CRLF

3,修改src/http/ngx_http_special_response.c(修改错误页的底部Footer)

static u_char ngx_http_error_tail[] = 下的nginx信息

修改完这些以后编译安装,或者重新编译。nginx版本信息则彻底修改。

赞(0)
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥博客 » Nginx如何修改版本信息或者隐藏版本号