Nginx这个信息暴露,无异于向攻击者明牌

引言

        在网络安全领域,服务器信息的暴露常常被视为一种潜在的风险。具体来说,Nginx服务器的版本号暴露无异于向攻击者明牌,增加了被针对性攻击的风险。本文将介绍一种比关闭server_tokens更灵活、更隐蔽的方法 。

暴露版本号的危害

        有时候我们可能会质疑,泄露nginx的版本号有什么大不了?但实际上主要通过恶意构造的请求就能产生致命的威胁,如 1.15.6 和 1.14.1 版本之前的 nginx 在 HTTP/2 实现中存在漏洞,构造之后的请求就可能导致nginx内存消耗过大,严重者出现拒绝服务(Dos)。

图片

大型网站的做法 

        大型的网站基本会隐藏版本号,更有甚者会自定义web引擎的名称,我们先看下天猫和京东的做法。

天猫:

图片

京东:

图片

        从上面的截图,我们可以看出,没有一家是显示web引擎的版本号的。

实用方法介绍 

        在上一篇文章中,我们已经介绍了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模块还有其他实用的指令,都看一下吧:

1. more_clear_headers:用于删除指定的HTTP头。

location / {    more_clear_headers 'Server';}

这将删除响应头中的Server字段。

2. more_set_input_headers:用于修改传入请求的HTTP头。

location / {    more_set_input_headers 'X-Forwarded-Proto: https';}

这将为所有传入请求添加或修改X-Forwarded-Proto头。

3. more_clear_input_headers:用于删除传入请求的指定HTTP头。

location / {    more_clear_input_headers 'User-Agent';}

这将删除传入请求中的User-Agent头。

结语

        通过合理配置Nginx的server_tokens指令和使用more_set_headers模块,我们可以有效隐藏Nginx版本号,并进一步伪装服务器信息。这不仅提升了服务器的隐蔽性,也增加了攻击者识别和攻击的难度,从而提高了整体安全性。此外,我们往往可能认为nginx的安装很简单,但要构建一套能抗能打的nginx还是需要有实用的插件加持,欢迎阅读上一篇文章,下期将继续为大家分享nginx的实用模块的具体实战。

欢迎订阅我的公众号「SRE运维手记」,可扫下方二维码,或者微信搜“SRE运维手记”

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值