以下是详细讲解如何修改Nginx版本名称伪装任意web server的完整攻略:
什么是Nginx版本名称伪装?
在HTTP响应头部中,Nginx默认会将其版本信息显示出来,例如:
Server: nginx/1.19.4
为了增加服务器的安全性,我们可以通过修改Nginx版本名称,来达到伪装任意web server的目的,使攻击者无法确定服务器环境,从而增加服务器的安全性。
如何修改Nginx版本名称?
修改Nginx版本名称可以通过两种方式,一是使用模块,二是在编译Nginx时进行。
使用模块
- 下载ngx_http_headers_module模块
wget https://nginx.org/download/ngx_http_headers_module-0.33.tar.gz
tar zxvf ngx_http_headers_module-0.33.tar.gz
- 在编译Nginx的时候启用ngx_http_headers_module模块
./configure --add-module=/path/to/ngx_http_headers_module-0.33
make
make install
- 修改nginx.conf文件,在HTTP块中添加如下配置
http {
server_tokens off;
more_set_headers 'Server: MyWebServer/1.0';
...
}
server_tokens off;
用于关闭Nginx默认的版本信息显示,more_set_headers 'Server: MyWebServer/1.0';
用于添加伪装的版本信息。
在编译Nginx时进行
- 下载Nginx源代码
wget https://nginx.org/download/nginx-1.19.4.tar.gz
tar zxvf nginx-1.19.4.tar.gz
- 修改源代码
在src/http/ngx_http_header_filter_module.c
文件中,修改以下代码:
static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
将以上代码中的“nginx”或“nginx/版本号”修改为你想要的字符串,保存修改。
- 编译Nginx
./configure
make
make install
示例说明
示例一:伪装为Apache
使用上面提到的方法,可以将Nginx伪装成Apache的服务器。修改nginx.conf文件,在HTTP块中添加如下配置
http {
server_tokens off;
more_set_headers 'Server: Apache/2.2.10 (Linux/SUSE)';
...
}
示例二:伪装为IIS
同样使用上面提到的方法,可以将Nginx伪装成IIS服务器。修改源代码src/http/ngx_http_header_filter_module.c
文件中的
static char ngx_http_server_string[] = "Server: nginx" CRLF;
修改为:
static char ngx_http_server_string[] = "Server: Microsoft-IIS/7.5" CRLF;
编译安装后,在nginx.conf文件中添加如下配置
http {
server_tokens off;
...
}
最后,重新加载Nginx配置即可。
希望这篇文章能够详细地讲解如何修改Nginx版本名称伪装为任意web server,并且示例丰富,有助于大家更好地理解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何修改Nginx版本名称伪装任意web server - Python技术站