关闭nginx的版本号的另一种方法,比关闭server_tokens更灵活、更隐蔽
nginx的编译方法,其中就包含了headers-more-nginx-module模块,其中有个指令more_set_headers可以实现灵活隐藏web引擎版本号,倘若公司的安全防护等级降低,甚至可以自定义名称,下面是实现的方法:
# 在http块中添加,全局生效
http {
more_set_headers 'Server: SRE';
}
# 在server块中添加,局部生效,更加灵活
server {
more_set_headers 'Server: SRE';
}
通过上面的配置后,站点反馈的response headers的server头将返回值为SRE,黑客的攻击成本将大大提高。
当然,headers-more-nginx-module模块还有其他实用的指令,都看一下吧:
- more_clear_headers:用于删除指定的HTTP头。
location / {
more_clear_headers 'Server';
}
这将删除响应头中的Server字段。
- more_set_input_headers:用于修改传入请求的HTTP头。
location / {
more_set_input_headers 'X-Forwarded-Proto: https';
}
这将为所有传入请求添加或修改X-Forwarded-Proto头。
- more_clear_input_headers:用于删除传入请求的指定HTTP头。
location / {
more_clear_input_headers 'User-Agent';
}
这将删除传入请求中的User-Agent头。
通过合理配置Nginx的server_tokens指令和使用more_set_headers模块,我们可以有效隐藏Nginx版本号,并进一步伪装服务器信息。这不仅提升了服务器的隐蔽性,也增加了攻击者识别和攻击的难度,从而提高了整体安全性。