Nginx安全优化

警告
本文最后更新于 2022-09-14,文中内容可能已过时。

摘要

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

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

文件一:src/core/nginx.h

c++

#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

c++

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

c++

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

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

c++

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

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

bash

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{}加入

text

http {
    server_tokens off;
}

就可以隐藏版本号了。