Nginx安全优化

摘要

将Nginx服务器名称修改为任意名字,可以稍微的伪装一下。

一般修改都是在nginx编译之前修改,修改完了之后需要重新编译。

文件一:src/core/nginx.h

1
2
3
4
5
6
7
#define NGINX_VER          "nginx/" NGINX_VERSION
//修改为
#define NGINX_VER          "bwcx/" NGINX_VERSION

#define NGINX_VAR          "NGINX"
//修改为
#define NGINX_VAR          "BWCX"

文件二:src/http/ngx_http_header_filter_module.c

1
2
3
static u_char ngx_http_server_string[] = "Server: nginx" CRLF;
//修改为
static u_char ngx_http_server_string[] = "Server: bwcx" CRLF;

文件三:src/http/ngx_http_special_response.c

1
2
3
"<hr><center>nginx</center>" CRLF
//修改为
"<hr><center>bwcx</center>" CRLF

文件四:src/http/v2/ngx_http_v2_filter_module.c

1
2
3
"http2 output header: \"server: nginx\"");
//修改为
"http2 output header: \"server: bwcx\"");

通过修改上面4个文件,我们已将nginx服务器名修改为了bwcx,如果不想去找到文件一个一个修改,也可以使用sed命令直接替换:

1
2
3
4
sed -i "s#\"NGINX\"#\"BWCX\"#" src/core/nginx.h
sed -i "s#\"nginx/\"#\"bwcx/\"#" src/core/nginx.h
sed -i "s#Server: nginx#Server: bwcx#" src/http/ngx_http_header_filter_module.c
sed -i "s#\"<hr><center>nginx<\/center>\"#\"<hr><center>bwcx<\/center>\"#" src/http/ngx_http_special_response.c

除了随意修改版本号之外,还可以隐藏版本号:

修改nginx.conf

http{}加入

1
2
3
http {
    server_tokens off;
}

就可以隐藏版本号了。